6.4.2004

GRE TUNEL

Filed under: Linux — nax @ 21:33

P??i p??ipojeni Ondry Tesa??e je??t? z??st??val jeden nevy??e??en?? probl?m: jak mu internet naroutovat. Ono toti? Awe m?? u sebe default routy kdo v? kam a a? teprve u mne je na bluehillz. Prozat?m jsem to narychlo vy??e??il pomoc? proxy serveru u m? na routeru. Konkr?tn? to byl squid, co? je proxy cache. V podstat? poslouch?? na n?jak?m portu a v??echny po?adavky a pokud je nem?? u? z d???v?j??ka na disku, tak je po??le d??l. Nev??hodou tohoto ??e??en? je, ?e pot??ebujete aby klientsk?? aplikace proxy podporovala. Nap???klad webov? prohl??eče to snad podporuj? v??echny, ale t??eba m??lokterou hru si zahrajete p??es proxy.

Proto jsem se včera rozhodl rozjet ten tunel mezi mnou a Ondrou. No a v??bec to nebylo t??k?. Konkr?tn? jsem pou?il kap??nek jednodu????? gre tunel, co? je ne??ifrovan??. V??e jsem d?lal podle čl??nku na rootu a v podstat? se d?? ???ct, ?e jsem byl za hodinku hotov. Tak p??edn? v j??d??e pot??ebujete podporu gre. Najdete j? v sekci s?t?, samoz??ejm?. Broadcast jsem neza??krtnul a funguje to, ale ??pln? jist?? jestli v n?kter??ch p???padech pot??eba nen? si nejsem. Pak jsem pokračoval takhle:

modprobe ip_gre
ip tunnel add tunel0 mode gre remote 10.27.73.13 local 10.27.0.8
ifconfig tunel0 up 10.27.72.101 netmask 255.255.255.252

U Ondry jsem postupoval zrcadlov?, akor??t ?e jsem si potom je??t? pohr??l s t?m routov??n?m.

Tak? je dobr? nezapomenout na p???padn?? NAT na to? jsem samoz??ejm? nejd???v u Ondry zapomn?l. Ale snad u? mu to chod?.

update 1:20
No a? tak moc mu to zase nechodilo. Teda pingalo to, dokonce kdy? zkou??el telnetem na po??tu, tak taky v pohod? a stejn? tak mu to nechalo korektn? po??tu odeslat, ale jak cht?l po??tu st??hnout a nebo t??eba v exploreru vypnul tu proxy, tak to nic nest??hlo.

P?kn? m? to potr??pilo ne? jsem p??i??el na to č?m to je. Navedl mi k tomu z??znam z tcpdumpu kdy? se tu po??tu pokou??el st??hnout. Objevilo se tam:

23:30:49.872278 p2.volny.cz.pop3 > 10.27.72.102.1142: . 0:1460(1460) ack 1 win 58400 (DF)
23:30:49.875594 naxroutr > p2.volny.cz: icmp: 10.27.72.102 unreachable – need to frag (mtu 1476) [tos 0xc0]

Nejd???ve jsem v??bec netu??il kter?? bije a proč sakra ten voln?? pos?l?? icmp po?adavek? Samoz??ejm? jsem docela rychlo zjistil ?e ta 102 je vid?t jen z routeru, ale to je docela logick?, proto?e ob? ty s?t? byly des?tkov? a tedy ten poč?tač u Ondry nev? jestli to m?? poslat p??es tunel a nebo norm??ln? kdy? mu to p??i??lo tunelem od des?tkov? IP.

No ale nakonec to bylo pom?rn? jednoduch?. Stačilo si po????dn? p??eč?st z??v?r o velikosti paket?? v tom čl??nku zm?n?n?m naho??e. Ono toti? ten icmp po?adavek need to frag znamen??, ?e koncov?? server dost??v?? p???li?? velk? packety a je pot??eba aby pos?lal men???. Nejpikantn?j??? na tom je, ?e ty icmp packety asi zahazoval jeden z m??ch firewall?? 😉 Budu se na to je??t? muset pod?vat a tenhle icmp po?adavek povolit. Zat?m m??m toti? z icmp protokolu povolen jen echo.

Ten ????dek p???mo z toho čl??nku pro firewall mi nejd???v nefungoval, ale pak mn? napadlo sn??it tu velikost na 1000 a najednou se to rozeb?hlo. Probl?m bylo, ?e tu velikost paket?? nav?c je??t? zv?t??oval nejsp??? NAT u Ondry tesa??e, s č?m? ten čl??nek samoz??ejm? poč?tat nemohl (kdo by si taky na konci tunelu s??? NAToval, ?e ;).

$IPTABLES -A FORWARD -p tcp -o $TUNEL_IFACE –tcp-flags SYN,RST SYN -m tcpmss –mss 1001: -j TCPMSS –set-mss 1000

Samoz??ejm? pot??ebujete p???slu??n?? modul pro kernel.

Comments are closed.

Powered by WordPress