[quote=« Kif, post:4, topic: 29100 »]Arf… épineux problème…
Un NAT « classique » ne sera pas suffisant.
Un NAT modifie les adresses dans les paquets au niveau 2 (routage).
Or, SIP écrit l’adresse IP des parties en conversation au niveau 4 (applicatif)… Ce ne sera donc pas l’adresse publique qui y sera inscrite, mais ton adresse privée, d’où le malaise.
En milieu pro., on utilise des « ALG » pour Application Layer Gateway. Ils rentrent à l’intérieur des paquets (jusqu’au niveau 4) pour modifier les adresses (un peu comme le fait un NAT au niveau 2). Et encore, ça reste bancal.
Le truc, c’est que les protocoles ne sont généralement pas très normalisés et que chaque constructeur y va de sa sauce dans ce niveau 4…
Par ailleurs, si la négociation SIP à proprement parler passera via le port 5060 (et donc ton firewall), les sessions media (trames RTP) passent généralement par des ports UDP dynamiques difficiles à identifier (surtout si tu n’as aucun contrôle sur la config, vu qu’elle est chez Free).
Bref, good luck.
-Kif.[/quote]
Heu du calme, hein.
Le NAT, sapue, c’est clair. Mais on arrive généralement à se démerder, surtout en UDP.
Le problème du NAT est, comme tu le dis, que le client passe son adresse dans les paquets SIP.
Sauf que les clients ne sont pas si cons, et savent généralement détecter qu’ils sont derrière un NAT, puis détecter automatiquement les mappings effectués par le NAT.
Un protocole à même été standardisé pour effectuer cette tache : STUN.
STUN distingue 4 types de NATs, selon leur niveau de chianitude. Et seul un est vraiment génant (nats symétriques, qui ne permettent pas la detection des mappings).
Les problèmes ne viennent donc pas, a mon sens, du NAT, mais plutot du firewall.
Les solutions, donc :
- Commencer par autoriser STUN (deux ports UDP), et l’activer dans le client (on trouve pas mal de serveurs stuns public via google).
-
verifier le comportement d’ISA. Si ISA n’est pas symétrique, ca devrais suffire (dans le cas symétrique, c’est juste plus emmerdant si le correspondant est dans le même cas, ici, pour utiliser la téléphonie free, cela ne devrait arriver que pour des appels IP SIP->IP SIP).
Note à Kif : dans le milieu pro, on va plutot utiliser un Proxy SIP, qui va soit faire proxy RTP/RTCP, soit faire le nécessaire au niveau du firewall, ce qui est une solution beaucoup plus propre qu’une « simple » ALG. (on note d’ailleurs que les ALG font un peu n’importe queud, et que ca marche de toutes facons plus sur du secure SIP).