Prestahovanie serveru za NAT

Marian Cerny jojo at matfyz.cz
Mon Apr 27 20:27:22 CEST 2009


On 27.4.2009 15:58, Dan Lukes wrote:
>> IP adresu mozem pridelit inemu serveru, ktory zostava v hostingu. V 
>> kancelariach mame jednu IP adresu a sme za NATom.
>
> Jinymi slovy, ty chces puvodni adresu prendat na jiny pocitac, 
> stavajici pocitac kamsi odnest a zajistit, aby pri pristupu na puvodni 
> IP na novem pocitaci dotaz obdrzel stary, prestehovany, pocitac kdesi 
> jinde.

Ano, je to presne tak.

Vysvetlim trosku pozadie. Mame niekolko serverov. Jeden z tych serverov 
je stary Linuxovy server (ostatne su FreeBSD). Ten linuxovy server som 
zdedil - ani presne neviem, co vsetko na nom bezi ;-). Ako jedno z 
protikrizovych opatreni sa firma rozhodla zrusit nejaky server ;-). Dlho 
som nevahal, ze ktory. Vecsinu dolezitych sluzieb som premigroval ale 
zostalo tam par, ktore nepojde premigrovat tak jednoducho - naklady na 
migrovanie by boli mnoho krat vyssie nez je zisk z danych sluzieb. 
Bohuzial tie sluzby len tak zrusit nemozeme. Napadol ma teda diabolsky 
plan, ze ten server z hostingu premiestnim do kancelarii.

Myslienka bola taka, ze "vezmem vsetky IP pakety pre dany server, 
nejakym sposobom ich prepravim do kancelarie a tam ich hodim tomu 
serveru". Trafficu nie je vela, takze s kapacitou linky nebude problem. 
Ale nejde iba o nejake TCP sluzby (napr. http server), tie by som si 
dokazal jednoducho presmerovat. Potreboval by som to urobit co najviac 
transparentne, napriklad prave aj kvoli tomu IPsecu. Proste idealne aby 
na tom Linuxovom serveri nebolo potrebne menit skoro ziadnu konfiguraciu.

Konkretnejsie som si to predstavoval takto:
1. Poziadam hosting, aby mi nastavili staticke smerovanie starej IP 
adresy Linuxoveho serveru na FreeBSD server - to ale asi nebude mozne. 
Da sa to zariadit aj inac? Napriklad cez ARP? Aby vsetky pakety pre 
staru IP adresu dostaval FreeBSD server, ale aby ich dalej routoval?
2. Medzi FreeBSD serverom a FreeBSD routerom v kancelarii rozbeham 
nejaky tunel. Ten tunel by na jednom konci mal lokalnu adresu napr. 
10.0.0.1 a na druhom 10.0.0.2.
3. Na FreeBSD serveri nastavim staticke smerovanie starej IP adresy na 
10.0.0.2.
4. Na FreeBSD routeri pridam IP adresu o jedna mensiu nez staru IP 
adresu Linuxoveho serveru s co najmensou maskou... ze tym nebudu 
dosiahnutelne nejake IP adresy nevadi, jedna sa o backendovy stroj ktory 
aj tak komunikuje iba s par vybranymi servermi.
5. Na Linuxovom serveri nastavim default router staru IP adresu o 
jednotku nizsiu.
6. Nejakym sposobom pakety z IP adresy Linuxoveho serveru na FreeBSD 
routeri poslem zase tunelom na 10.0.0.1. (Uz viem, ze sa zrejme bude 
jednat o source-routing. Ten ipfw fwd si k tomu nastudujem.)
7. Na FreeBSD serveri sa pakety budu dalej smerovat klasicky na default 
router.

Dava to takto zmysel? Alebo je tam nieco, co takto principialne nepojde 
urobit? Asi moze byt problem s tunelom, teda konkretne asi s IPsec-om. 
Myslel som, ze sa mi podari zabalit IPsec do IPsec-u... ale to mozno 
nejde. Samozrejme musim poriesit 1. aby sa to dalo smerovat. Ak by to 
neslo, tak by som musel na FreeBSD serveri staru IP adresu nahodit na 
rozhranie a potom to riesit nejako inac, len presne neviem ako 
(napriklad binatom, lenze to by sa musela menit konfiguracia na 
Linuxovom serveri).

>> napriklad je tam niekolko pripojeni cez IPsec
>
> To je hezke, ze neco tak duleziteho zminis jen tak, mezi reci uplne na 
> konci.

Heh, sorry.

> Transparentni redirect IPSEC paketu nekam uplne jinam ? Ty pakety musi 
> na cilove misto dorazit nezmenene - to znamena tady zabalit do neceho, 
> tam vybalit - a zpracovat s puvodni IP adresou tak, jako by na novem 
> miste byla lokalni. A na tom starem se za lokalni povazovat nesmi, 
> vyjma toho, ze ten pocitac musi odpovidat na ARP pro tuto IP. Pak by 
> vhodnym nastavenim routivaci tabulky melo byt mozne nacpat prichozi 
> pakety do GIF (IP-in-IP) tunelu. Zaplatis fragmentaci, ale to je 
> popravde receno u takhle nestastneho problemu zanedbatelna cena.

Ako sa takyto GIF tunel vytvori? Mozes ma odkazat na nejaku vhodnu 
dokumentaciu?

> Nevim, jak na Linuxu rozchodis aby odpovidal na ARP dotazy pro adresu, 
> ktera mu nepatri, ale "info arp" to pri trose stesti asi prozradi. 
> Stejne tak nevim, jestli jak tam rozchodit IP-in-IP tunel - a jestli 
> tam vubec je (na FreeBSD je to soucast systemu a je to odvozenina 
> RFC2893 IPv6-in-IPv4 tunelu). Pokud tam nebude, potrebujes jiny IP 
> tunel, ktery z hlediska systemu vypada jako interface (to kvuli tomu 
> routovani). Treba PPPoE.
>
> Na druhe strane bude zahnani odpovidajicich paketu do tunelu zrejme 
> otazka source-routingu a tudiz asi nejlip ipfw fwd.
>
> Zni mi to celkove jako strasna bejkarna. I kdyz to rozchodis, bude 
> takrka nemozne v tom ladit poblemy. Videl's nedavnou debatu na tema 
> IPSEC - to se ladi blbe i za normalnich okolnosti. Ja samozrejme 
> nevim, proc jsi se rozhodnul prave pro takovehle reseni, protoze jsi 
> nenaznacil jaky problem resis. Ale at si predstavim jakykoliv problem, 
> u ktereho by toto mohlo byt resenim, vzdycky bych se pokusil usilovne 
> hledat nejake jine reseni...

Bejkarna to samozrejme je ;-). Dufam, ze sa este nejake sluzby podari 
premigrovat a ostatne vyhniju skor nez za par rokov.

Kazdopadne Dane dakujem velmi pekne za odpoved.

Marian



More information about the Users-l mailing list