Portál AbcLinuxu, 12. května 2025 12:40

Dotaz: SNAT v iptables - Invalid argument

26.6.2007 10:24 dustin | skóre: 63 | blog: dustin
SNAT v iptables - Invalid argument
Přečteno: 665×
Odpovědět | Admin
Mohu poprosit místní guru o radu ohledně SNATu?

Ve finále budu řešit provoz přes dvě internetová připojení současně, ale zatím si testuji na lokální síti. Zasekl jsem se na dle mého pohledu triviální věci:

eth0 má několik adres:
sara:/home/pavel# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:13:20:2f:3e:e3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.20/24 brd 192.168.1.255 scope global eth0
    inet 192.168.11.1/24 brd 192.168.11.255 scope global eth0
    inet 192.168.12.1/24 brd 192.168.12.255 scope global eth0
    inet6 fe80::213:20ff:fe2f:3ee3/64 scope link 
       valid_lft forever preferred_lft forever
Chci, aby odchozí packety odcházely z adresy 192.168.12.1 (defaultně chodí ze 192.168.1.20).

Zkusím tedy SNAT:
iptables -v -t nat -A OUTPUT -j SNAT --to-source 192.168.12.1
SNAT  0 opt -- in * out *  0.0.0.0/0  -> 0.0.0.0/0  to:192.168.12.1 
iptables: Invalid argument
V syslogu se objeví:
kernel: ip_tables: SNAT target: bad hook_mask 8
Zřejmě má SNAT nějaká omezení, která jsem však nedokázal vyčíst. Předem díky za radu.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.6.2007 10:45 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: SNAT v iptables - Invalid argument
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nemělo by to být nějak takhle ?

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.12.1
26.6.2007 10:50 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: SNAT v iptables - Invalid argument
Díky moc, teď jsem se teprve dočetl, že SNAT funguje jenom pro chain POSTROUTING. Škoda, že chybové hlášky iptables jsou tak zbytečně stručné.

Ještě jednou díky za radu, mořil bych se s tím hodiny.
26.6.2007 10:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: SNAT v iptables - Invalid argument
Odpovědět | | Sbalit | Link | Blokovat | Admin

1. Zdrojovou adresu nemůžete překládat v chainu OUTPUT, k tomu slouží POSTROUTING.

2. V daném případě by pravděpodobně bylo vhodnější definovat preferovanou zdrojovou adresu u položky směrovací tabulky, např. 'ip route add default via ... src ...'. Ale to by chtělo trochu přesnější popis toho, jak vypadá konfigurace a čeho chcete docílit.

26.6.2007 11:03 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: SNAT v iptables - Invalid argument
Také díky. Ve finále půjde o dvě linky do netu z jedné gw, přes značkování paketů a doplňkové routovací tabulky. Navíc na gw běží služby dostupné zvenku z obou linek současně. Na jedné se musí forwardovat z ADSL modemu, který neumí vypnout NAT a jehož možnosti konfigurace jsou hodně omezené :( . Druhá linka jede přes bridgovací kabelový modem, tam je to jednodušší. Ještě jednou díky.

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.