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?
Elsodlegesen azt mondom igen, egy mobiltelefonrol van szo es a szolgaltato nem tett NAT moge.
De a vegso cel az lenne, hogy akar az Internetrol akar NAT mogotti halozatbol is mukodjon.
/sza2
Én mindkét irányból keresztülhajtanám a forgalmat egy tcpdump-on és megnézném, hogy a SIP-ben milyen portok és IP-k utaznak. Elképzelhető, hogy a router okoskodik bele.
Szerk. SSH-val belépve mit kapsz az "lsmod | grep nat" parancsra?
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
sub
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ó.
Koszi. Ez a tema nekem eleg szerteagazonak tunik, jo par buktatoval, kulonbozo megoldasi lehetoseggel.
Viszont ugy tunik lett egyszeru megoldas, ami jelenleg mukodik: https://hup.hu/node/152883#comment-2084459
/sza2
Igen, ez a NAT helper
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?