[linux] neposlusny source routing
Rybarik, Michal
mrybarik na tronet.sk
Pondělí Prosinec 22 11:53:40 CET 2003
hello all,
mam jeden problem, ktoremu neviem prist na koren. stravil som na nom uz desiatky
hodin, manualy k iproute2 a iptables poznam uz pomaly naspamat, google dostal
riadne zabrat. a nic. pritom to bude nejaka jednoducha volovina, asi pre oci nevidim.
mam router s dvoma vonkajsimi a jednym vnutornym interface. vsetci useri z vnutorneho
interface maju ist vonku cez prvy vonkajsi interface (ISP1, NAT 1:n), okrem niektorych
- ti maju ist von cez druhy verejny iface (ISP2), a maju mat robeny NAT 1:1.
default route mam na routeri nastavenu na ISP1, a podla toho ako je to popisane v
http://www.linuxdocs.org/HOWTOs/Adv-Routing-HOWTO-4.html#ss4.1
som spravil dalsiu routovaciu tabulku, v nej je akurat default route na ISP2,
a hadzem do nej pakety omarkovane podla zdrojovej adresy. na oboch vonkajsich
interfacoch robim v POSTROUTINGU SNAT.
problem je ten, ze to nechodi :o) paket sa mi spravne omarkuje, spravne vlezie do
inej routovacej tabulky, spravne odide spravnym verejnym interfacom, spravne sa
preSNATuje. opacka cesta vsak nefunguje - paket mi pride verejnym interfacom
do routera, ale uz neodide na vnutorny. strati sa bohvie kde. hladal som ho na
vsetkych moznych interfacoch, nenasiel som ho nikde. na pingu to vyzera takto:
z vnutornej siete (iface eth2) z masiny 10.65.2.20 (12-bit netmask) pingam
www.sme.sk. tento host by mal byt na routeri natovany na 10.1.9.20 a odist cez
eth0. na eth0 (vonkajsi iface, ISP2) to vyzera takto:
10:33:33.810465 10.1.9.20 > www.sme.sk: icmp: echo request (DF)
10:33:33.851274 www.sme.sk > 10.1.9.20: icmp: echo reply
10:33:34.810577 10.1.9.20 > www.sme.sk: icmp: echo request (DF)
10:33:34.883375 www.sme.sk > 10.1.9.20: icmp: echo reply
echo request je spravne pre NATovany, ochadza, dostavame odpoved. odpoved vsak
uz smerom k stroju ktory request povodne poslal nedorazi (vypis z routera,
vnutorny if, host este nie je preNATovany, requesty prichadzaju, reply nie):
10:33:50.811625 10.65.2.20 > www.sme.sk: icmp: echo request (DF)
10:33:51.811725 10.65.2.20 > www.sme.sk: icmp: echo request (DF)
10:33:52.811760 10.65.2.20 > www.sme.sk: icmp: echo request (DF)
zistil som ze ked zmenim na routeri default gw na eth0, zacne to chodit.
routovacia tabulka (vynechal som ostatne veci ktore s tym nesuvisia):
Destination Gateway Genmask Flags Metric Ref Use Iface
62.65.x.y 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.1.9.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.64.0.0 0.0.0.0 255.240.0.0 U 0 0 0 eth2
0.0.0.0 62.65.x.y 0.0.0.0 UG 0 0 0 ppp0
markovanie paketov (divoku masku si nevsimajte, je to tak naschval, tu problem nie je):
iptables -t mangle -A PREROUTING -s 10.64.2.0/255.240.7.0 -i eth2 -j MARK --set-mark 0x1a
# ip rule show
0: from all lookup local
32765: from all fwmark 1a lookup ISP2
32766: from all lookup main
32767: from all lookup default
# ip route show table ISP2
default via 10.1.9.1 dev eth0
// prenatovanie ip-cky
iptables -t nat -A POSTROUTING -o eth0 -s 10.65.2.20 -j SNAT --to-source 10.1.9.20
# ip addr show (je tu nahodena ta ip-cka za ktoru natujem)
2: eth0: <BROADCAST,MULTICAST,ALLMULTI,UP> mtu 1500 qdisc pfifo_fast qlen 100
link/ether 00:06:29:b0:1b:22 brd ff:ff:ff:ff:ff:ff
inet 10.1.9.10/24 brd 10.1.9.255 scope global eth0
inet 10.1.9.20/24 brd 10.1.9.255 scope global secondary eth0
(10.1.9.10 je moj ruter, 10.1.9.1 router providera, 10.1.9.20 je klientske PC)
skusal som zapnut proxy-arp, skusal som tiez zduplikovat celu routovaciu tabulku
(okrem defaultroute) do routovacej tabulky ISP2, nic nepomohlo. trapne a zbytocne
som v zufalstve skusal aj DNATovat prichodzie pakety. rozmyslal som aj na stateless
NATovanim ktore je sucast iproute2, bohuzial to bolo len v 2.2 jadrach. osobne mam
dojem ze bud nefunguje de-SNATovanie, alebo je nieco nedobre v routovacej tabulke a
de-SNATnuty paket nevie najst cestu kam ma ist. hladal som ho na vsetkych interfacoch,
nenasiel som ho nikde. po zmene default route na ISP2 to zacne chodit. ked nahodim
staticku route na nejake adresy ktore su u ISP2, zacnu fungovat aj tie.
prosim poradte, ja uz neviem kadial von z konopi..
michal rybarik
Další informace o konferenci linux