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.
Napsat komentář
Pro přidávání komentářů se musíte nejdříve přihlásit.