Bon, je vous remets a contribution…
J’ai là un petit programme a tester, c’est un morceau de test d’un projet plus gros de VoIP dont je vous ai déja parlé.
Le but est de déterminer automatiquement si le programme est derriere un NAT ou non, et si oui, de trouver de quel type de NAT il s’agit. Le tout pour que le programme puisse être utilisé par monsieur tout le monde avec un minimum de configuration (ala MSN : user/pass, eventuellement addresse du serveur, point barre).
[quote name=‹ Moktar › date=’ 12 Apr 2005, 12:28’]« L’application n’a pas réussi à s’initialiser correctement (0xc0000135) »
mais ça plante pas
[right][post=« 349528 »]<{POST_SNAPBACK}>[/post][/right][/quote]
Ouais , je précise : Faut le framework .net, hein…
Si vraiment vous voulez pas installer le framework, vous pouvez aussi tester http://crashmachine.tzim.net/tmp/WinStun.zip
Sinon, les autres, vous pouvez comparer les résultats des deux programmes.
Detection du type de NAT
Port UDP local 3930
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 82.254.232.232:3930
Serveur 2 : 66.7.238.213:3479
Test 2 : 66.7.238.213:3479 reporte le port UDP 82.254.232.232:3930
IP locale Publique -> Acces Direct
Type de NAT : NoNat
Machine 2
Win Xp SP1
Detection du type de NAT
Port UDP local 1048
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 82.254.232.232:1048
Serveur 2 : 66.7.238.213:3479
Test 2 : Pas de réponse.
Test 3 : 66.7.238.213:3479 reporte le port UDP 82.254.232.232:1048
Test 4 : Pas de réponse -> PortRestrictedCone NAT
Type de NAT : PortRestrictedCone
Detection du type de NAT
Port UDP local 1224
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 82.254.121.9:1048
Serveur 2 : 66.7.238.213:3479
Test 2 : Pas de réponse.
Test 3 : 66.7.238.213:3479 reporte le port UDP 82.254.121.9:1048
Test 4 : Pas de réponse -> PortRestrictedCone NAT
Type de NAT : PortRestrictedCone
(sachant que je suis derrière un routeur mais que j’ai crée un DMZ sur mon pc )
Detection du type de NAT
Port UDP local 1894
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 84.4.82.3:1894
Serveur 2 : 66.7.238.213:3479
Test 2 : 66.7.238.213:3479 reporte le port UDP 84.4.82.3:1894
Mapping ouvert -> FullCone
Type de NAT : FullCone
Detection du type de NAT
Port UDP local 2694
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 194.51.105.62:22008
Serveur 2 : 66.7.238.213:3479
Test 2 : 66.7.238.213:3479 reporte le port UDP 194.51.105.62:22008
Mapping ouvert -> FullCone
Type de NAT : FullCone
Soft framework :
Detection du type de NAT
Port UDP local 1254
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 81.56.53.130:62853
Serveur 2 : 66.7.238.213:3479
Test 2 : 66.7.238.213:3479 reporte le port UDP 81.56.53.130:62853
Mapping ouvert -> FullCone
Type de NAT : FullCone
Soft sans framework :
Cone Nat detect - VoIP will work with STUN
Does not preserve port number
Supports hairpin of media
Public IP address: 81.56.53.130
Detection du type de NAT
Port UDP local 4388
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 81.56.226.186:4388
Serveur 2 : 66.7.238.213:3479
Test 2 : Pas de réponse.
Test 3 : 66.7.238.213:3479 reporte le port UDP 81.56.226.186:4388
Test 4 : 66.7.238.210:3479 reporte le port UDP 81.56.226.186:4388
-> RestrictedCone NATType de NAT : RestrictedCone
Donc, xp sp2, livebosque wifi sans firewall, toussa toussa :
Detection du type de NAT
Port UDP local 4542
STUN Server : larry.gloo.net <66.7.238.210:3478>
Test 1 : 66.7.238.213.3479 reporte le port UDP 83.193.102.78:4542
Serveur 2 : 66.7.238.213:3479
Test 2 : Pas de réponse.
Test 3 : 66.7.238.213:3479 reporte le port UDP 83.193.102.78:56558
Mapping Symétrique -> NAT Symétrique.
Type de NAT : SymetricNat
Bon, les ceusses qui ont du symetric NAT (le pire cas possible, en fait), merci de préciser : modele du routeur, firmware custom, support de UPnP, firewall actif (oui/non)…
[quote name=‘Tzim’ date=’ 12 Apr 2005, 16:19’]Bon, les ceusses qui ont du symetric NAT (le pire cas possible, en fait), merci de préciser : modele du routeur, firmware custom, support de UPnP, firewall actif (oui/non)…
[right][post=“349640”]<{POST_SNAPBACK}>[/post][/right][/quote]
ZyWALL70 ver 3.63(WM.2), pour info la derniere version 3.64(WM.0) change ça en port restricted cone NAT, firewall statefull actif, supporte SIP ALG (si port 5060), supporte UPnP et le mappage de port en ‘port triggering’.
Certaines appli SIP et certains matériels SIP comme des WIFI phone ont une fonction qui permet de renseigner l’IP publique pour qu’elle soit utilisée directement dans les trames à la place de l’IP locale.
Si ça peut te servir, n’ayant pas de détails sur ton projet!
Windows XP Sp2, firewall SP2, branché direct sur freebox :
Detection du type de NAT
Port UDP local 3305
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 82.67.133.98:3305
Serveur 2 : 66.7.238.213:3479
Test 2 : 66.7.238.213:3479 reporte le port UDP 82.67.133.98:3305
IP locale Publique -> Acces Direct
Type de NAT : NoNat
Detection du type de NAT
Port UDP local 1659
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 82.253.124.68:1659
Serveur 2 : 66.7.238.213:3479
Test 2 : 66.7.238.213:3479 reporte le port UDP 82.253.124.68:1659
IP locale Publique -> Acces Direct
Type de NAT : NoNat
@Raoul : En fait, l’IP publique, y’a aucun soucis pour le connaitre (pour preuve, le soft là, la trouve). Par contre, le port, c’est un peu plus compliqué. Hors symetric, pas de soucis, la correspondance port public/privé est unique, donc on peut le connaitre par reflection. Dans le cas symetric, le port change en fonction de la source ET de la destination. Du coup, plus moyen pour l’application de connaitre le port public.
De plus, le but ici est de minimiser le nombre de paramètres a faire rentrer a l’utilisateur dans son (soft ou hard)phone. Si en plus il faut qu’il paramètre son routeur… (cela dit, c’est toujours fesable, hein…)
Sinon, oui, l’alg, c’est bien, mais ca marche pas a tout les coups. de plus, ca commence à déconer lorsque l’on veux utiliser plusieurs phones indépendants sur le LAN (ce qui reste possible sinon), et le phone se demande aussi ce qu’il se passe. Au passage, la modif de la trame casse la signature de l’envoyeur si les paquets sont signés, signature que je souhaite utiliser (ne pas prévoir de systeme anti-spoofing, on a bien vu les merdes que ca à causé avec les mails…).
Ok, ok, la fonction dont je te parle permet de modifier directement l’IP dans le paquet SIP dans le cas ou tu mets les utilisateurs en liaison via un serveur mais qui ne se charge pas de relayer les coms. Mais tu avais certainement compris.
Sinon le must c’est de fournir un outbound proxy aux utilisateurs, ce qui doit règler tous les problèmes de NAT et simplifie les config utilisateurs. Je sais, faut avoir les moyens…
Windows XP, firewall SP2, branché direct sur modem cable U.S.R.
Detection du type de NAT
Port UDP local 2181
STUN Server : larry.gloo.net (66.7.238.210:3478)
Test 1 : 66.7.238.210:3478 reporte le port UDP 62.43.64.251:2181
Serveur 2 : 66.7.238.213:3479
Test 2 : 66.7.238.213:3479 reporte le port UDP 62.43.64.251:2181
IP locale Publique -> Acces Direct
Type de NAT : NoNat
Ok, ok, la fonction dont je te parle permet de modifier directement l’IP dans le paquet SIP dans le cas ou tu mets les utilisateurs en liaison via un serveur mais qui ne se charge pas de relayer les coms. Mais tu avais certainement compris.
Sinon le must c’est de fournir un outbound proxy aux utilisateurs, ce qui doit règler tous les problèmes de NAT et simplifie les config utilisateurs. Je sais, faut avoir les moyens…
Raoul qui rentre chez lui…
[right][post=“349672”]<{POST_SNAPBACK}>[/post][/right][/quote]
Oui, c’est bien ce que je dit… mais pour modifier la trame il faut avoir des infos que tu peux pas forcement avoir (et reste le probleme de signature). Et pour l’outbound proxy, oui… a condition d’être en environnement maitrisé. Ici, le but est de faire du grand public. Un outbound proxy ne reglera rien (a moins qu’il serve aussi de relai RTP, mais ca deviens trop lourd). Au cas ou ca aurrait pas été compris, le but est de faire du GRAND PUBLIC, avec zero (ou presque) config.
Tu ouvres un compte SIP sur un site web, comme tu peux le faire pour un compte mail (ex sip:tzim@machinphone.net), tu choisis ton mot de passe, et tu fous ca dans ton telephone (ou dans le softphone) avec eventuellement l’outbound proxy(sip.machinphone.net) mais là, on peux toujours le “deviner” a partir du domaine de l’URI sip, et faut que ca marche.