Difference between revisions of "MOOC:Devoir Seq2-exercice"
From Livre IPv6
(→Session 5) |
(→Session 5) |
||
Line 4: | Line 4: | ||
=Session 5= | =Session 5= | ||
<pre> | <pre> | ||
+ | |||
<problem> | <problem> | ||
<p><b>Avertissement</b> <br/> | <p><b>Avertissement</b> <br/> | ||
− | Ce devoir est à faire après avoir réalisé l'exercice de l'activité "format de l'en-tête IPv6" de cette séquence | + | Ce devoir est à faire après avoir réalisé l'exercice de l'activité "format de l'en-tête IPv6" de cette séquence.</p> |
− | + | <p>A partir de la trace du paquet IPv6 ci-dessous, retrouver la valeur de chaque champ de l'en-tête IPv6. La trace représentée est incomplète et se limite au 56 premiers octets :<br/></p> | |
<span style="font-family: courier new,courier;"> | <span style="font-family: courier new,courier;"> | ||
<pre> | <pre> | ||
Line 29: | Line 30: | ||
On respectera aussi une représentation sous forme de 8 bits ou de mots de 16 bits. Aussi par exemple, on écrira 0x07 (et non 0x7) ou 0x02a3 (et non 0x203 ou 0x02 0x03) </p> | On respectera aussi une représentation sous forme de 8 bits ou de mots de 16 bits. Aussi par exemple, on écrira 0x07 (et non 0x7) ou 0x02a3 (et non 0x203 ou 0x02 0x03) </p> | ||
<br/> | <br/> | ||
+ | |||
<br/> | <br/> | ||
<p>S2E01 : Quelle est la valeur du champ <b>Version</b> ?</p> | <p>S2E01 : Quelle est la valeur du champ <b>Version</b> ?</p> | ||
Line 92: | Line 94: | ||
</script> | </script> | ||
− | + | <p><b>Attention</b><br/> | |
− | Pour les 2 dernières questions, vous devez indiquer une adresse IPv6. Utilisez les règles de représentation d'une adresse IPv6 comme indiqué dans l'activité "La notation des adresses IPv6" ou le RFC 4291. Au minimum chaque mot de 16 bits est séparé du caractère ':' (deux points). Attention aussi de ne pas faire l'erreur de laisser des caractères espace dans l'adresse IPv6. Pour rappel, | + | Pour les 2 dernières questions, vous devez indiquer une adresse IPv6. Utilisez les règles de représentation d'une adresse IPv6 comme indiqué dans l'activité "La notation des adresses IPv6" ou le RFC 4291. Au minimum chaque mot de 16 bits est séparé du caractère ':' (deux points). Attention aussi de ne pas faire l'erreur de laisser des caractères espace dans l'adresse IPv6. Pour rappel, l'adresse IPv6 extraite du RFC4291 se note sous cette forme : </p> |
− | + | <span style="font-family: courier new,courier;"> | |
+ | <pre><tt>abcd:ef01:2345:6789:abcd:ef01:2345:6789 </tt> | ||
+ | </pre> | ||
+ | </span><br/> | ||
<p>S2E08 : Quelle est l'adresse correspondant à la valeur du champ <b>Adresse source</b> ?</p> | <p>S2E08 : Quelle est l'adresse correspondant à la valeur du champ <b>Adresse source</b> ?</p> | ||
<customresponse cfn="test_address" expect="2001:db8:d0c1:b4ca:6582:594a:1f2c:8899"> | <customresponse cfn="test_address" expect="2001:db8:d0c1:b4ca:6582:594a:1f2c:8899"> |
Latest revision as of 08:24, 26 April 2019
Session 5
<problem> <p><b>Avertissement</b> <br/> Ce devoir est à faire après avoir réalisé l'exercice de l'activité "format de l'en-tête IPv6" de cette séquence.</p> <p>A partir de la trace du paquet IPv6 ci-dessous, retrouver la valeur de chaque champ de l'en-tête IPv6. La trace représentée est incomplète et se limite au 56 premiers octets :<br/></p> <span style="font-family: courier new,courier;"> <pre> <tt> 62 80 00 00 05 1e 2c 38 20 01 0d b8 d0 c1 b4 ca </tt> <tt> 65 82 59 4a 1f 2c 88 99 20 01 0d b8 c3 f1 00 b4 </tt> <tt> 00 00 00 00 0f f0 c3 a4 11 00 00 01 00 12 d6 87 </tt> <tt> 00 35 00 35 00 08 1f a9 ... </tt>
</span>
Lecture de la trace
Les octets ci-dessus sont représentés en hexadécimal. Chaque ligne comporte 16 octets (ou 128 bits) au maximum. Une ligne se découpe en 2 parties de 8 octets.
Format de l'en-tête du paquet IPv6
Le format de l'en-tête du paquet IPv6 est donné dans le document compagnon mais également dans le RFC 8200.
Note
Pour les questions qui suivent, les réponses sont à donner en hexadécimal ou en décimal. L'hexadécimal se note avec le préfixe 0x (et le 'x' en minuscule) et les lettres de 'a' à 'f' sont à écrire en minuscule comme par exemple pour indiquer la valeur 30 en hexadécimal, on écrira 0x1e.
On respectera aussi une représentation sous forme de 8 bits ou de mots de 16 bits. Aussi par exemple, on écrira 0x07 (et non 0x7) ou 0x02a3 (et non 0x203 ou 0x02 0x03)
S2E01 : Quelle est la valeur du champ Version ?
<stringresponse type="ci" answer="6"> <additional_answer>0x6</additional_answer> <additional_answer>0x06</additional_answer> <additional_answer>0X06</additional_answer> <additional_answer>0X6</additional_answer> <textline label="S2E01" size="20"/> </stringresponse>
S2E02 : Quelle est la valeur du champ Classe de trafic ?
<stringresponse type="ci" answer="40"> <additional_answer>0x28</additional_answer> <additional_answer>0X28</additional_answer> <textline label="S2E02" size="20"/> </stringresponse>
S2E03 : Quelle est la valeur du champ Identificateur de flux ?
<stringresponse type="ci" answer="0"> <additional_answer>0x0</additional_answer> <additional_answer>0x00</additional_answer> <additional_answer>0x00000</additional_answer> <textline label="S2E03" size="20"/> </stringresponse>
S2E04 : Quelle est la valeur du champ Longueur de donnée ?
<stringresponse type="ci" answer="1310"> <additional_answer>0x51e</additional_answer> <additional_answer>0x051e</additional_answer> <textline label="S2E04" size="20"/> </stringresponse>
S2E05 : Quelle est la valeur du champ En-tête suivant ?
<stringresponse type="ci" answer="44"> <additional_answer>0x2c</additional_answer> <textline label="S2E05" size="20"/> </stringresponse>
S2E06 : À quel en-tête la valeur de ce champ En-tête suivant fait-elle référence ?
<optionresponse> <optioninput label="S2E06" options="('Hop-by-Hop extension','Routing extension','Fragment extension','Destination extension','TCP protocol','UDP protocol')" correct="Fragment extension"/> </optionresponse>
S2E07 : Quelle est la valeur du champ Nombre maximal de sauts ?
<stringresponse type="ci" answer="0x38"> <additional_answer>56</additional_answer> <textline label="S2E07" size="20"/> </stringresponse>
<script type="loncapa/python">
import socket
def test_address(expect, ans):
try: a = socket.inet_pton(socket.AF_INET6, expect) b = socket.inet_pton(socket.AF_INET6, ans) return a == b except socket.error: return False
</script>
Attention
Pour les 2 dernières questions, vous devez indiquer une adresse IPv6. Utilisez les règles de représentation d'une adresse IPv6 comme indiqué dans l'activité "La notation des adresses IPv6" ou le RFC 4291. Au minimum chaque mot de 16 bits est séparé du caractère ':' (deux points). Attention aussi de ne pas faire l'erreur de laisser des caractères espace dans l'adresse IPv6. Pour rappel, l'adresse IPv6 extraite du RFC4291 se note sous cette forme :
<tt>abcd:ef01:2345:6789:abcd:ef01:2345:6789 </tt>
S2E08 : Quelle est l'adresse correspondant à la valeur du champ Adresse source ?
<customresponse cfn="test_address" expect="2001:db8:d0c1:b4ca:6582:594a:1f2c:8899"> <textline size="40" correct_answer="11" label="S2E08"/>
</customresponse>
S2E09 : Quelle est l'adresse correspondant à la valeur du champ Adresse destination ?
<customresponse cfn="test_address" expect="2001:db8:c3f1:b4::ff0:c3a4"> <textline size="40" correct_answer="11" label="S2E09"/>
</customresponse>
</problem>
</pre>
Session 3
<problem> <p>Soit l'en-tête IPv6 suivant :<br /></p> <span style="font-family: courier new,courier;"> <pre> <tt> 62 80 00 00 05 1E 2C 38 20 01 0D B8 D0 C1 B4 CA </tt> <tt> 65 82 59 4A 1F 2C 88 99 20 01 0D B8 C3 F1 00 B4 </tt> <tt> 00 00 00 00 0F F0 C3 A4 11 00 00 01 00 12 D6 87 </tt> <tt> 00 35 00 35 00 08 1F A9 </tt>
</span>
Note : Les données ci-dessus sont représentées en hexadécimal, une ligne pour 16 octets, soit 128 bits. Note : Pour les questions qui suivent, la valeur d'un champ est à donner en hexadécimal (avec le préfixe 0x (et le 'x' en minuscule)), ou en décimal.
S2E01 : Quelle est la valeur du champ Version ?
<stringresponse type="ci" answer="6"> <additional_answer>0x6</additional_answer> <additional_answer>0x06</additional_answer> <additional_answer>0X06</additional_answer> <additional_answer>0X6</additional_answer> <textline label="S2E01" size="20"/> </stringresponse>
S2E02 : Quelle est la valeur du champ Classe de trafic ?
<stringresponse type="ci" answer="40"> <additional_answer>0x28</additional_answer> <additional_answer>0X28</additional_answer> <textline label="S2E02" size="20"/> </stringresponse>
S2E03 : Quelle est la valeur du champ Identificateur de flux ?
<stringresponse type="ci" answer="0"> <additional_answer>0x0</additional_answer> <additional_answer>0x00</additional_answer> <additional_answer>0x00000</additional_answer> <textline label="S2E03" size="20"/> </stringresponse>
S2E04 : Quelle est la valeur du champ Longueur de donnée ?
<stringresponse type="ci" answer="1310"> <additional_answer>0x51e</additional_answer> <additional_answer>0x051e</additional_answer> <textline label="S2E04" size="20"/> </stringresponse>
S2E05 : Quelle est la valeur du champ En-tête suivant ?
<stringresponse type="ci" answer="44"> <additional_answer>0x2c</additional_answer> <textline label="S2E05" size="20"/> </stringresponse>
S2E06 : À quel protocole la valeur de ce champ En-tête suivant du fait-elle référence ?
<optionresponse> <optioninput label="S2E06" options="('Hop-by-Hop extension','Routing extension','Fragment extension','Destination extension','TCP protocol','UDP protocol')" correct="Fragment extension"/> </optionresponse>
S2E07 : Quelle est la valeur du champ Nombre maximal de sauts ?
<stringresponse type="ci" answer="0x38"> <additional_answer>56</additional_answer> <textline label="S2E07" size="20"/> </stringresponse>
<script type="loncapa/python"> import socket
def test_address(expect, ans):
try: a = socket.inet_pton(socket.AF_INET6, expect) b = socket.inet_pton(socket.AF_INET6, ans) return a == b except socket.error: return False
</script>
S2E08 : Quelle est l'adresse correspondant à la valeur du champ Adresse source ?
<customresponse cfn="test_address" expect="2001:db8:d0c1:b4ca:6582:594a:1f2c:8899"> <textline size="40" correct_answer="11" label="Integer #1"/>
</customresponse>
S2E09 : Quelle est l'adresse correspondant à la valeur du champ Adresse destination ?
<customresponse cfn="test_address" expect="2001:db8:c3f1:b4::ff0:c3a4"> <textline size="40" correct_answer="11" label="Integer #2"/>
</customresponse>
S2E10 : Quel est le nom du premier champ de l'en-tête suivant ?
<optionresponse> <optioninput label="S2E10" options="('Version','Next Header','Source port','Destination port','Checksum')" correct="Next Header"></optioninput> </optionresponse>
S2E11 : Quelle est la valeur du premier champ de l'en-tête suivant ?
<stringresponse answer="0x11"> <additional_answer>17</additional_answer> <textline label="S2E11" size="20"/> </stringresponse>
S2E12 : Quel est l'équipement qui a fixé les valeurs des champs de l'en-tête suivant ? (une seule réponse valide)
<multiplechoiceresponse> <choicegroup label="S2E12" type="MultipleChoice"> <choice correct="true">la source</choice> <choice correct="false">un des routeurs intermédiaires</choice> <choice correct="false">le dernier routeur intermédiaire</choice> <choice correct="false">la destination</choice> </choicegroup> </multiplechoiceresponse>
</problem>
</pre>
Session 2
62 80 00 00 05 1E 2C 38 20 01 0D B8 D0 C1 B4 CA 65 82 59 4A 1F 2C 88 99 20 01 0D B8 C3 F1 00 B4 00 00 00 00 0F F0 C3 A4 11 00 00 01 00 12 D6 87 00 35 00 35 00 08 1F A9
Entête IPv6 avec extension à disséquer :
- Valeur Traffic Class (0x28)
- Valeur Flow Label (0)
- Longueur de donnée (0x51E = 1310 octets)
- Type de l'en-tête suivante (2C / Fragmentation)
- Valeur Hop-Limit (0x38 = 56)
- Adresse source (2001:db8:d0c1:b4ca:6582:594a:1f2c:8899)
- Adresse destination (2001:db8:c3f1:b4::ff0:c3a4)
- Extension
- Type de l'en-tête suivante (11 / UDP)
- Valeur du premier champ (Offset = 0)
- Valeur du second champ (bit M = 1)