Discussion utilisateur:Gfa/STUN
Aller à la navigation
Aller à la recherche
Principe
STUN est un système client/serveur permettant de faire traverser les packets UDP au travers des routeurs NAT, très répandus ( inclus dans les "Box" d'opérateurs ADSL). Pour la VoIP avec Jabber (par exemple Jingle), afin de faire transiter la voix, les clients ont besoin d'établir une connexion entre eux. Hélas, dans la plupart des cas, les NAT gênent la négociation permettant d'établir cette connexion.
Voici une négociation gênée par un NAT
Demande :
<iq type="set" to="gfa@jabber.gnubox.net/PsiLaptop" id="aac1a" > <jingle xmlns="urn:xmpp:jingle:1" initiator="gfa85@im.apinc.org/Psi" action="session-initiate" sid="kQVmbTlykr8RnXFc" > <content creator="initiator" name="A" senders="both" > <description xmlns="urn:xmpp:jingle:apps:rtp:1" media="audio" > <payload-type id="110" name="SPEEX" clockrate="16000" /> </description> <transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" pwd="YPCRsM3Lzqq0NqYg0edogE" ufrag="VvCJ" /> </content> </jingle> </iq>
Réponse :
<iq from="gfa@jabber.gnubox.net/PsiLaptop" type="result" xml:lang="fr" to="gfa85@im.apinc.org/Psi" id="aac1a" />
Négociation provenant de l'appelant :
<iq type="set" to="gfa@jabber.gnubox.net/PsiLaptop" id="aac2a" > <jingle xmlns="urn:xmpp:jingle:1" action="transport-info" sid="kQVmbTlykr8RnXFc" > <content creator="initiator" name="A" > <transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" pwd="YPCRsM3Lzqq0NqYg0edogE" ufrag="VvCJ" > <candidate generation="0" network="0" port="8010" protocol="udp" component="1" foundation="0" ip="192.168.0.10" priority="2130706431" type="host" id="2nSFnufIoR" /> <candidate generation="0" network="0" port="8011" protocol="udp" component="2" foundation="0" ip="192.168.0.10" priority="2130706430" type="host" id="m6GrM9lWOs" /> </transport> </content> </jingle> </iq>
Négociation, provenant de l'appelé :
<iq from="gfa@jabber.gnubox.net/PsiLaptop" type="set" xml:lang="fr" to="gfa85@im.apinc.org/Psi" id="aaeba" > <jingle xmlns="urn:xmpp:jingle:1" action="transport-info" sid="kQVmbTlykr8RnXFc" > <content creator="initiator" name="A" > <transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" pwd="MAkderMeG9g0JfsFDpN8cy" ufrag="LYaR" > <candidate generation="0" network="0" port="8010" protocol="udp" component="1" foundation="0" ip="192.168.0.12" priority="2130706431" type="host" id="PoO5Qsg2gi" /> <candidate generation="0" network="0" port="8011" protocol="udp" component="2" foundation="0" ip="192.168.0.12" priority="2130706430" type="host" id="qULtGeTTiV" /> </transport> </content> </jingle> </iq>
On remarquera les IP locales ! Inexploitables dans le cadre d'internet !