Portál AbcLinuxu, 8. května 2024 14:28


Dotaz: maskarada

4.7.2005 17:31 vetron
maskarada
Přečteno: 146×
Odpovědět | Admin
Zdravim,

potrebujem presmerovat v sieti, P2P spojenia cez rozhranie(eth3), zvysok cez eth0, do netu.Siet vyzera takto:

----eth0(IP1)-||-eth2---(LAN) ----eth3(IP2)-||

na eth0,eth3 su staticke IP, su to rozhrania cez ktore idem k dvom PROVIDEROM, Z LAN, P2P traffic rutujem von cez providera za rozhranim eth3,problem ktory mam je v tom,ze ked snifujem na rozhrani eth3,tak su tam pakety maskovane IP-ckou rozhrania eth0,aj ked ja potrebujem aby boli maskovane IP-ckou rozhrania eth3.

Maskaradu mam nastavenu takto: iptables -A POSTROUTING -o eth0 -j SNAT --to-source IP1 iptables -A POSTROUTING -o eth3 -j SNAT --to-source IP2

Aj napriek tomu pakety iduce cez rozhranie eth3 maju vzdy zmenenu zdrojovu adresu na IP1,ja potrebujem vsak IP2

dik
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.7.2005 17:35 vetron
Rozbalit Rozbalit vše Re: maskarada
Odpovědět | | Sbalit | Link | Blokovat | Admin
----eth0(IP1)--||

---------------||---eth2(LAN)

----eth3(IP3)--||
4.7.2005 17:49 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: maskarada
Ta pravidla vypadají dobře, spíš bude problém někde ve směrování. Jak řešíte ten policy routing?
wake avatar 4.7.2005 17:47 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: maskarada
Odpovědět | | Sbalit | Link | Blokovat | Admin
to je uplne divne. dejte sem vypis iptables -L -v -n, iptables -t nat -L -v -n a ip route, pak se snad bude dat neco vymyslet. takhle clovek ani nepozna, co kam vlastne chcete posilat.
Tento příspěvek má hlavičku i patičku!
4.7.2005 17:50 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: maskarada
A pro jistotu asi i 'ip rule'.
4.7.2005 18:08 vetron
Rozbalit Rozbalit vše Re: maskarada
v NAT tabulke:

Chain POSTROUTING (policy ACCEPT 177K packets, 13M bytes)

pkts bytes target prot opt in out source destination

350 17930 SNAT all -- * eth3 0.0.0.0/0 0.0.0.0/0 to:192.168.1.2

49301 2649K SNAT all -- * eth0 0.0.0.0/0 0.0.0.0/0 to:217.119.117.28

# ip rule

0: from all lookup local

32763: from all fwmark 3 lookup p2p

2766: from all lookup main

32767: from all lookup default

# ip route show table p2p

default via 192.168.1.1 dev eth3

#este to znackovanie

${IPTS} -A PREROUTING -t mangle -i eth2 -p tcp -j CONNMARK --restore-mark

${IPTS} -A PREROUTING -t mangle -i eth2 -p tcp -m mark ! --mark 0 -j ACCEPT

${IPTS} -A PREROUTING -t mangle -i eth2 -p tcp -m ipp2p --ipp2p -j MARK --set-mark 3

${IPTS} -A PREROUTING -t mangle -i eth2 -p tcp -m mark --mark 3 -j CONNMARK --save-mark

IP1 - 217.119.117.28

IP2 - 192.168.1.2 (192.168.1.1 je IP ADSL router pripojeneho k eth3)
wake avatar 4.7.2005 18:29 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: maskarada
v te tabulce p2p pridejte k existujicimu pravidlu source s adresou toho eth3
Tento příspěvek má hlavičku i patičku!
wake avatar 4.7.2005 19:29 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: maskarada
totiz toho eth2, samozrejme.
Tento příspěvek má hlavičku i patičku!
4.7.2005 22:00 vetron
Rozbalit Rozbalit vše Re: maskarada
skusal som:

ip rule add default via 192.168.1.1 src IP(eth2) table p2p

ale nic sa nezmenilo(ked som tu odporucanu opravu dobre pochopil),neviem preco to pravidlo na SNAT nezafunguvalo,ked paket na rozhrani eth3 som zachytil,a zmena jeho zdrojovej adresy nenastala aj napriek tomu ze pravidlu

iptables -A POSTROUTING -o eth3 -j SNAT --source-to 192.168.1.2

vyhovuje.
wake avatar 5.7.2005 00:33 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: maskarada
dejte to iptables pravidlo do tabluky nat (tj. iptables -t nat -A POSTROUTING -o eth3 -j SNAT --to-source ip.et.h.2). to vam to nekrici, kdyz tam date takovyhle nesmysl ? ;-) (a ano, mel jsem si vsimnout, ze ty pravidla jsou blbe, tj. jednak je --to-source misto --source-to a druhak SNAT muze byt jen v tabulce nat.)
Tento příspěvek má hlavičku i patičku!
5.7.2005 11:08 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: maskarada
Nejjednodušší je používat jen --to a nemusíte přemýšlet nad tím, jestli je to source-to nebo to-source. Že se přepisuje zdrojová adresa, je jasné už z toho, že je tam target SNAT…
wake avatar 5.7.2005 11:32 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: maskarada
a to jste zjistil ctenim zdrojaku ? protoze man iptables, sekce SNAT mi zadnou takovou moznost nenabizi. (iptables v1.3.1)
Tento příspěvek má hlavičku i patičku!
5.7.2005 11:40 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: maskarada
Pokud si dobře vzpomínám, bylo to v Netfilter NAT HOWTO, které jsem četl jako první, takže mne později poněkud zaskočilo, že se většina ostatních vypisuje s -to--source a --to-destination
wake avatar 5.7.2005 00:40 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: maskarada
a dalsi vec - tu predchozi radu jste pochopil spatne (nerikam, ze ja jsem to dobre vysvetlil) - mel jste tu routu v tabulce p2p nahradit routou stejnou, jen s pridanym src ip.et.h.2. (byvalo by to takhle zafungovalo - melo by to byt ekvivalentni tomu korektnimu SNATu.) presnou syntaxi jsem si nebyl zcela jist a nechtelo se mi mrsit si svoji routovaci tabulku experimenty.
Tento příspěvek má hlavičku i patičku!
5.7.2005 11:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: maskarada
Ono by to asi chtělo celé trochu pročistit:

  • používání targetu ACCEPT mimo tabulku filter není příliš dobrý zvyk
  • pravidla pro překlad adres by měla být omezena jen na ty pakety, kterých se mají týkat; doporučuji přidat podmínku -s
  • v tabulce p2p by neměla být jen default route, protože pak se podle ní odroutují veškeré pakety, které mají mark 3 bez ohledu na jejich cílovou adresu
wake avatar 5.7.2005 11:28 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: bullet(3)
ale tak je to mysleno, ne ?
Tento příspěvek má hlavičku i patičku!
5.7.2005 11:41 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: bullet(3)
Kterého z těch tří bodů se vaše poznámka týká?
wake avatar 5.7.2005 11:45 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: bullet(3)
${SUBJ} (bullet 3)
Tento příspěvek má hlavičku i patičku!
5.7.2005 11:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: bullet(3)
Myšleno to tak možná bylo, ale obecně to není příliš šťastný nápad. Problém je v tom, že člověk je zvyklý automaticky předpokládat, že default route se aplikuje jen na "ostatní" pakety a že např. pakety do bezprostředně přiléhajících sítí se budou routovat automaticky na příslušné rozhraní; to ale při popsané konfiguraci není pravda, protože pravidlo o přednosti položek s delším prefixem platí pouze v rámci jedné tabulky a paket, který skončí v tabulce p2p, se k těm automatickým už vůbec nedostane. Tady by to možná nemuselo tak úplně vadit, protože značkuje jen pakety došlé na eth2, což by měly být vesměs pakety "ven" (položky typu local jsou v tabulce local, která se prohledává jako první), ale stejně bych doporučoval přidat tam pravidla pro bezprostředně přiléhající segmenty. Otázkou je například zpracování paketů na nezmiňované rozhraní eth1.
wake avatar 5.7.2005 12:00 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: bullet(3)
ale ty se do tabulky p2p IMHO vubec nedostanou ?
Tento příspěvek má hlavičku i patičku!
5.7.2005 12:08 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: bullet(3)
Ale dostanou. Tedy za předpokladu, že v tom výpisu je překlep a místo 2766 je tam obvyklá hodnota 32766. Jinak by se totiž pro změnu do tabulky p2p nedostalo vůbec nic.
6.7.2005 14:56 vetron
Rozbalit Rozbalit vše Re: bullet(3)
Ano, bol tam preklep.Skusal som pridat na konci k tomu pravidlu src,aj som skusal pridat v tabulke routy do prilahlych segmentov.Aj ked toto som skusal uz predtym ako som pisal a nepomohlo.Toto skor uz je riesenie problemu, ze by sa mi dostavali cez eth3 veci z LAN-ky ktore nechcem aby tam boli,len man trapi trochu fundamentalnejsi problem, ze preco aj to malo co tam na to eth3 pride,tak je maskovane adresou IP1,pricom pravidlu :

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source IP1 to nemoze vyhovovat lebo to odchadza cez eth3 a nie eth0

Chcem len aby ked snifnem traffic na eth3 tam boli pakety maskovane zdrojovou adresou IP2, nie IP1 -(ako sa to deje teraz pri tom nastaveni co som hore uvadzal)

Ked pridam ip rule fwmark 3 table p2p, tak sa prevadzka P2P pekne odrutuje na eth3, len to blbo maskuje, pritom to maskovanie by sa malo v retazci POSTROUTING prevadzat po prerutovani a kedze su odrutovane cez eth3 tak by sa mali aj patricne zamaskovat podla korektneho pravidla. Neviem kde je problem.
6.7.2005 17:13 vetron
Rozbalit Rozbalit vše Re: bullet(3)
Skusal som este nasimulovat jednu vec a to rutovat na to rozhranie eth3 nie P2P traffic,ale traffic konkretne z jedneho stroja v LAN. zobral som pokusne Ip 192.168.5.122, pouzil som tu istu tabulku p2p,ale:

v nej som este aj nastavil routy pre okolite segmenty,takze spolu som tam pridal:

ip route add 192.168.5.0/24 dev eth2 src 192.168.5.1 table p2p

ip route add 192.168.1.0/24 dev eth3 src 192.168.1.2 table p2p

ip route add default via 192.168.5.1.1 table p2p

potom som skusal cez tuto tabulku smerovat traffic z 122, najprv tak ze som pouzil pravidlo:

ip rule add from 192.168.5.122 table p2p

v tom to pripade bolo vsetko v poriadku a traffic isiel z 122 pekne zec eth3

v druhom pripade som skusal:

ip rule add fwmark 3 table p2p

pricom pred tym som ich znackoval:

iptables -t mangle -A PREROUTING -s 192.158.5.122 -j mark --set-mark 3

a to uz neslo,ked som snifoval rozhranie eth3 tak pakety boli spravne maskovane IP-ckou 192.168.1.2 aj naspat sa vracli cez to rozhranie ale skoncili na routeri, pricom firewall ich nezahadzoval,takze k pocitacu 122 nedosli.

Neviem kde tu tiez bola chyba,pricom vzhladom na ten povodny problem s P2P keby som neznackoval traffic z 122 ale ten P2P cez connmark,tak dokonca ani to maskovanie nejde.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.