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