Portál AbcLinuxu, 13. května 2025 03:45

Dotaz: Problem s NAT (SIP)

Cupy avatar 3.1.2008 11:01 Cupy | skóre: 9
Problem s NAT (SIP)
Přečteno: 1075×
Odpovědět | Admin

Konfigurace A: Linux router (FC5) s eth0 smer LAN (ip_eth0), eth1 WAN (ip_eth1), wlan0 down. V ramci LAN je SIP brana (ip_SIP). Vse funguje OK, vcetne SIP telefonu

Zmena konfigurace (bez restartu systemu, scriptem) na Konfiguraci B: Linux router s eth0 smer LAN (ip_eth0), eth1 down, wlan0 WAN (ip_wlan0). V ramci LAN je SIP brana (ip_SIP). Vse funguje OK.

vratim zpet konfiguraci A (opet bez restartu systemu) a prestane fungovat NAT pro SIP.
tcpdump -n -i eth1 port 5060
10:06:46.093893 IP ip_wlan0.sip > ip_SIP_SERVER.sip: SIP, length: 497
zde by melo prece byt (!):
10:06:46.093893 IP ip_eth1.sip > ip_SIP_SERVER.sip: SIP, length: 497

Jinak NAT funguje, napr. pro browseni z laptopu pripojeneho do LAN.

iptables -t nat -L nevypise zadne pravidlo kde by se vyskytovala adresa ip_wlan0, naopak

iptables -v -L -t nat
...
   59  5067 SNAT       all  --  any    eth1    172.16.0.0/24        anywhere            to:10.25.9.228
...
pritom system zarputile NATuje ip_SIP na ip_wlan0, diky cemuz samozrejme prestane fungovat SIP telefon.
Jedina cesta z toho ven je reboot. Zkousel jsem stopnout iptables,
rmmod ipt_MASQUERADE iptable_nat ip_tables xt_state xt_tcpudp x_tables xt_multiport
a pak start iptables, nepomuze, stale to NATuje blbe, nejakym neviditelnym pravidlem :-(

Dotaz: JAK toto vyresit bez rebootu? Jak disgnostikovat funkci iptables v takoveto situaci?

---------------
System: FC5 
Kernel: 2.6.20-1.2320.fc5smp
iptables -V
iptables v1.3.5

NAT nastavuju takto:
$IPT -t nat -A POSTROUTING -s net_eth0/24 -o eth1 -j SNAT --to ip_eth1
resp.
$IPT -t nat -A POSTROUTING -s net_eth0/24 -o wlan0 -j SNAT --to ip_wlan0
pri restartu iptables vsechny chainy flushuju vcetne nat:
iptables -F 
iptables -X 
iptables -Z 
iptables -t nat -F 
iptables -t nat -X 
iptables -t nat -Z 
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.1.2008 11:31 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Problem s NAT (SIP)
Odpovědět | | Sbalit | Link | Blokovat | Admin
iptables můžete diagnostikovat buď (složitěji ale přesněji) přes target LOG nebo ULOG nebo přes počítadla paketů v jednotlivých řetězcích (jednodušší, ale mně to zatím vždy stačilo).

Jak vypadá routování na tom stroji – používá se pouze hlavní routovací tabulka, nebo jsou tam nějaká pravidla? Jak vypadají pakety na vstupu do routeru – tcpdump -n -i eth0 port 5060 – mají očekávané IP adresy?

Nevím, zda jde o TCP nebo UDP, ale nemůže být problém v tom, že NAT si myslí, že jde pořád o stejné spojení a tudíž natuje podle stále stejných pravidel (což je správné chování)? Zkuste tabulku spojení vyprázdnit přes conntrack -F.
Cupy avatar 3.1.2008 13:28 Cupy | skóre: 9
Rozbalit Rozbalit vše Re: Problem s NAT (SIP)
Routovani - zadna pravidla.
tcpdump na eth0 - dle ocekavani
... IP ip_SIP.sip > ip_SIP_SERVER.sip: SIP, length: XXX
SIP je UDP.
conntrack: bylo to mysleno jako
iptables -t conntrack -F ?
zadnou tabulku conntrack nemam:
iptables v1.3.5: can't initialize iptables table `conntrack': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.
3.1.2008 13:37 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Problem s NAT (SIP)
conntrack: bylo to mysleno jako
iptables -t conntrack -F
?
Ne, conntrack je samostatná utilita, není přímo součástí iptables, ale je v samostatném balíku conntrack-tools.
Cupy avatar 3.1.2008 15:09 Cupy | skóre: 9
Rozbalit Rozbalit vše Re: Problem s NAT (SIP)

Diky moc za nasmerovani. Pridal jsem do scriptu na rekonfiguraci spojeni conntrack -F a funguje to jako vino.
navazane SIP spojeni je pekne videt pomoci
conntrack -L | grep 5060

Pozn: conntrack tools v FC5 nebyly, ale spravilo to trivialni "yum install conntrack", natahly se z extras.

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.