[Megoldva] Freeswitch OpenWRT NAT mogott

Fórumok

Udv,

Feltelepiettem egy Freeswitch 1.7-et, ami egy OpenWRT (15.05) router mogott van, dinamikus DNS a kivulrol torteno elereshez. A Freeswitch default telepites, a SIP profile default internal, 5060-as port, az RTP portok szamat korlatoztam a default 16k-rol par tizre. A routeren engedelyezve a port forwarding az 5060-as SIP es az RPT portokra.

A problema az, hogy ha a kliens az Interneten van, tehat nem a LAN-on, akkor ha hivok egy melleket, a kapcsolat felepul, de hang nem megy at (LAN-on belul, vagy VPN-en keresztul minden mukodik).

Ha jol ertem, ez egy altalanos problema, ami a NAT miatt van. Mondhatnam, hogy TL;DR, es csak segitsen valaki, de igazabol mar par napja probalok talani valami megoldast, es a google dob is rengeteg talalatot, kulonbozo megoldasokkal amiket nem feltetlen ertek teljesen / nem tudom melyik uton induljak el.

Szoval a kerdes az, hogy a jelenlegi kialakitassal van-e egyszeru megoldasa a problemanak (olyan ra gondolok, hogy: valtoztatni a Freeswitch konfiguraciojan, allitani a router-en (pl. mas portokat engedelyezni kifele, stb.)).

Ami nem latszik megoldasnak: kitenni a Freeswitch szervert kivulre. Amit kevesse szeretnek: kulso (pl. STUN) szervert igenybe venni.

Tehat a kerdes az volna, megoldhato-e ez a problema egyszeruen?

Koszi,

/sza2

Szerk:

Ez lett a megoldas: https://hup.hu/node/152883#comment-2084459 ("opkg install kmod-nf-nathelper-extra")

Hozzászólások

Aki hivja a NAT mogott levo melleket annak publikus IP-cime van?

ip_tables 10168 4 iptable_nat
iptable_nat 780 1
nf_conntrack 46732 11 nf_nat_ipv4
nf_conntrack_ftp 5428 1 nf_nat_ftp
nf_nat 9860 5 nf_nat_ipv4
nf_nat_ftp 1292 0
nf_nat_ipv4 3912 1 iptable_nat
nf_nat_masquerade_ipv4 1324 1 ipt_MASQUERADE
xt_nat 1060 20

A tcpdump-ot egyelore nem tudom, hogy vitelezhetnem ki.

/sza2

Ha van elég hely az eszközön, akkor "opkg install kmod-nf-nathelper-extra", van benne két érdekes modul:
- nf_nat_sip
- nf_conntrack_sip

Az nf_conntrack_sip-et paraméterezd fel: ports=5060

Elvileg ezek után mennie kellene. Bár nem 100%, mert nem teszteltem és nincs kéznél hasonló rendszer.

Ugy tunik ez megoldotta a problemat.

Raadasul a parameter sem kell (az install utan elosszor kiszedtem a modult majd parameterrel betoltottem (command line-bol, insmod-dal), mukodott, azutan gondoltam egyet, ujrainditottam a routert es tovabbra is mukodott, megneztem a modules.d-ben, nincs atadva a nf_conntrack_sip-nek paramerter).

Koszi!

/sza2

Elképzelhető, hogy azért működik ports nélkül is, mert ha nincs megadva ports, akkor az 5060-at veszi alapértelmezettnek.

Örülök, hogy működik. Sejtettem, hogy valami ilyesmi lesz mögötte. Viszont a VPN-t ne vesd el teljesen, ahogy bennyh is javasolta. A legjobb megoldás az lenne.

Még egy: ha régebbi OpenWrt-d lett volna, akkor ott kmod-ipt-nathelper-extra lett volna a csomag neve.

RTP-t szerintem nem kell forwardolni!

sip.conf
directmedia?
localnet?

STUN nem igazán kell, rport megoldja

Pusztan az RTP nem-forward-olasa nem oldotta meg a problemat.

A tobbi (sip.conf, directmedia, localnet) nekem ugy tuni Asterisk-re vonatkoznak, nem Freeswitch-re, biztos vannak ezeknek megfelelo paramerterei a FS-nek is, de meg nem jottem ra, hogy mik.

Az rport-ot nem tudom, hogy mi, azt sem, hogy ez a szerver, router vagy kliens beallitashoz kapcsolodik.

/sza2

Két lehetőség:
Ha van fix publikus IP címed akkor Externip opció a sip.conf-ban
Ha nincs, Akkor meg a routeren a SIP NAT helper.

Azt hiszem mind a sip.conf mind az externip opcio az Asterisk-hez tartozik.

Miert kell fix publikus IP? A dinamikus DNS miert nem jo? Valahol mintha azt olvastam volna, hogy (legalabbis a FS) tud olyat, hogy nezi a domain nevhez tartozo IP-t es frissiti ha kell.

Nezegettem, hogy hol lehetne beallitani NAT helpert OpenWRT-ben de eddig nem talaltam meg.

/sza2

Az a gond, hogy a SIP protokol közli a helyi RTP peer címét (vagy valami ilyesmi, rég olvasgattam erről), ami ha belső hálón van, nagy szopacs. Ezért kell a STUN vagy az ExternIP vagy a NAT helper, hogy más címet közöljön a központ (vagy a router át tudja írni utóbbinál, bár nem tudom, hogy titkosítás esetén ez egyáltalán müxik-e, viszont interneten kell! a titkosítás, pláne ha néha felcsatlakozik a kliens idegen WIFI-re).
Bocs, nem ismerem a Freeswitch-et, de biztos van hasonló ExternIP benne is. Persze lehet, hogy domain nevet is tud közölni a Freeswitch, meg kell nézni.
A legegyszerűbb az lenne, ha VPN-en keresztül tolnád. Tudom ez akkor gáz, ha a mobil klienst akarod hívni.
Ha tud a FreeSwitch IAX-ot a SIP helyett akkor azzal kevesebb a vesződség, az nem érzékeny a NAT-ra.
Másik lehetőség, mind mobil, mind helyi oldalon át kell állni IPv6-ra (mobiltelón T-mobil esetén biztosan müxik), csak akkor jól be kell lőni a tűzfalat, de nem lesz címfordítás és így sz*pás sem ezzel.
Bocs a szétszort HSz-ért, próbálok ötletelni meg felvázolni a lehetőségeket. Összességében a SIP mimóza ha NAT-ról van szó.

Szerkesztve: 2019. 12. 30., h - 04:24

Próbálnám OpeWRT alatt az nf_conntrack_sip modulos megoldást, de nem tudom a PORTS értékét megadni! Hiába hozok létre egy fájlt az /etc/modules.d mappában az "options nf_conntrack_sip ports=15060" tartalommal, a /sys/module/nf_conntrack_sip/parameters/ports -ban az alapértelmezett 5060 van.
A system log-ban semmi nyoma a dolognak.

Próbáltam az /etc/modules.conf-ba is beletenni a sort, de az sem hozott eredményt...

Nem működik openwrt alatt a modul paraméter megadás?