Discussion utilisateur:Gfa/STUN : Différence entre versions

De Wiki JabberFR
Sauter à la navigation Sauter à la recherche
m (Brouillon de départ)
 
(indentation à la XEP, pour plus de lisibilité)
Ligne 7 : Ligne 7 :
  
 
Demande :
 
Demande :
  <iq type="set" to="gfa@jabber.gnubox.net/PsiLaptop" id="aac1a" >
+
  <iq type="set"
<jingle xmlns="urn:xmpp:jingle:1" initiator="gfa85@im.apinc.org/Psi" action="session-initiate" sid="kQVmbTlykr8RnXFc" >
+
    to="gfa@jabber.gnubox.net/PsiLaptop"
<content creator="initiator" name="A" senders="both" >
+
    id="aac1a" >
<description xmlns="urn:xmpp:jingle:apps:rtp:1" media="audio" >
+
  <jingle xmlns="urn:xmpp:jingle:1"
<payload-type id="110" name="SPEEX" clockrate="16000" />
+
          initiator="gfa85@im.apinc.org/Psi"
</description>
+
          action="session-initiate"
<transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" pwd="YPCRsM3Lzqq0NqYg0edogE" ufrag="VvCJ" />
+
          sid="kQVmbTlykr8RnXFc" >
</content>
+
    <content creator="initiator"
</jingle>
+
              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>
 
  </iq>
  
 
Réponse :  
 
Réponse :  
  <iq from="gfa@jabber.gnubox.net/PsiLaptop" type="result" xml:lang="fr" to="gfa85@im.apinc.org/Psi" id="aac1a" />
+
  <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 :  
 
Négociation provenant de l'appelant :  
  <iq type="set" to="gfa@jabber.gnubox.net/PsiLaptop" id="aac2a" >  
+
  <iq type="set"
<jingle xmlns="urn:xmpp:jingle:1" action="transport-info" sid="kQVmbTlykr8RnXFc" >
+
    to="gfa@jabber.gnubox.net/PsiLaptop"
<content creator="initiator" name="A" >
+
    id="aac2a" >  
<transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" pwd="YPCRsM3Lzqq0NqYg0edogE" ufrag="VvCJ" >
+
  <jingle xmlns="urn:xmpp:jingle:1"
<candidate generation="0" network="0" port="8010" protocol="udp" component="1" foundation="0" ip="192.168.0.10" priority="2130706431" type="host" id="2nSFnufIoR" />
+
          action="transport-info"
<candidate generation="0" network="0" port="8011" protocol="udp" component="2" foundation="0" ip="192.168.0.10" priority="2130706430" type="host" id="m6GrM9lWOs" />
+
          sid="kQVmbTlykr8RnXFc" >
</transport>
+
    <content creator="initiator"
</content>
+
              name="A" >
</jingle>
+
      <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>
 
  </iq>
  
 
Négociation, provenant de l'appelé :  
 
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" >
+
  <iq from="gfa@jabber.gnubox.net/PsiLaptop"
<jingle xmlns="urn:xmpp:jingle:1" action="transport-info" sid="kQVmbTlykr8RnXFc" >
+
    type="set"
<content creator="initiator" name="A" >
+
    xml:lang="fr"
<transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" pwd="MAkderMeG9g0JfsFDpN8cy" ufrag="LYaR" >
+
    to="gfa85@im.apinc.org/Psi"
<candidate generation="0" network="0" port="8010" protocol="udp" component="1" foundation="0" ip="192.168.0.12" priority="2130706431" type="host" id="PoO5Qsg2gi" />
+
    id="aaeba" >
<candidate generation="0" network="0" port="8011" protocol="udp" component="2" foundation="0" ip="192.168.0.12" priority="2130706430" type="host" id="qULtGeTTiV" />
+
  <jingle xmlns="urn:xmpp:jingle:1"
</transport>
+
          action="transport-info"
</content>
+
          sid="kQVmbTlykr8RnXFc" >
</jingle>
+
    <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>
 
  </iq>
 
  
 
On remarquera les IP locales ! Inexploitables dans le cadre d'internet !
 
On remarquera les IP locales ! Inexploitables dans le cadre d'internet !

Version du 3 février 2010 à 22:57

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 !