Difference between revisions of "MOOC:Auto-eval Act24-exercice"
From Livre IPv6
Line 2: | Line 2: | ||
---- | ---- | ||
__NOTOC__ | __NOTOC__ | ||
+ | <pre | ||
+ | <problem> | ||
+ | <p>Soit l'en-tête IPv6 suivant :<br /></p> | ||
+ | <span style="font-family: courier new,courier;"> | ||
+ | <pre> | ||
+ | <tt> 60 00 00 00 04 7E 2B 1A 20 01 0D B8 AB D0 00 0F </tt> | ||
+ | <tt> 00 00 00 00 FF 01 00 01 20 01 0D B8 00 78 02 34 </tt> | ||
+ | <tt> DC 20 8E EB 23 42 52 DF 06 04 00 01 00 00 00 00 </tt> | ||
+ | <tt> 20 01 0D B8 00 78 00 01 00 00 00 00 00 00 00 01 </tt> | ||
+ | <tt> 20 01 0D B8 00 82 02 03 00 00 00 00 00 00 03 85 </tt> | ||
+ | <tt> 00 14 00 50 00 00 00 00 00 00 00 00 50 02 20 00 </tt> | ||
+ | <tt> 83 20 00 00 </tt> | ||
+ | </pre> | ||
+ | </span> | ||
+ | <br /> | ||
+ | <i>Note : Les données ci-dessus sont représentées en hexadécimal, une ligne pour 16 octets, soit 128 bits.</i> | ||
+ | <i>Note : Pour les questions qui suivent, la valeur d'un champ est à donner en hexadécimal, avec le préfixe 0x, ou en décimal. </i> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <p>A24Ex01 : Quelle est la valeur du champ <b>Version</b> ?</p> | ||
+ | <stringresponse type="ci" answer="6"> | ||
+ | <additional_answer>0x6</additional_answer> | ||
+ | <additional_answer>0x06</additional_answer> | ||
+ | <textline label="A24Ex01" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex02 : Quelle est la valeur du champ <b>Classe de trafic</b> ?</p> | ||
+ | <stringresponse type="ci" answer="0"> | ||
+ | <additional_answer>0x0</additional_answer> | ||
+ | <additional_answer>0x00</additional_answer> | ||
+ | <textline label="A24Ex02" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex03 : Quelle est la valeur du champ <b>Identificateur de flux</b> ?</p> | ||
+ | <stringresponse type="ci" answer="0"> | ||
+ | <additional_answer>0x0</additional_answer> | ||
+ | <additional_answer>0x00</additional_answer> | ||
+ | <additional_answer>0x00000</additional_answer> | ||
+ | <textline label="A24Ex03" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex04 : Quelle est la valeur du champ <b>Longueur de donnée</b> ?</p> | ||
+ | <stringresponse type="ci" answer="1150"> | ||
+ | <additional_answer>0x47e</additional_answer> | ||
+ | <additional_answer>0x047e</additional_answer> | ||
+ | <textline label="A24Ex04" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex05 : Quelle est la valeur du champ <b>En-tête suivant</b> ?</p> | ||
+ | <stringresponse type="ci" answer="43"> | ||
+ | <additional_answer>0x2b</additional_answer> | ||
+ | <textline label="A24Ex05" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex06 : À quel protocole la valeur du champ <b>En-tête suivant</b> fait-elle référence ?</p> | ||
+ | <stringresponse type="ci" answer="Routage" > | ||
+ | <additional_answer>Extension routage</additional_answer> | ||
+ | <additional_answer>Extension de routage</additional_answer> | ||
+ | <textline label="A24Ex06" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex07 : Quelle est la valeur du champ <b>Nombre maximal de sauts</b> ?</p> | ||
+ | <stringresponse type="ci" answer="0x1A"> | ||
+ | <additional_answer>26</additional_answer> | ||
+ | <textline label="A24Ex07" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | |||
+ | <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> | ||
+ | <p>A24Ex08 : Quelle est l'adresse correspondant à la valeur du champ <b>Adresse source</b> ?</p> | ||
+ | <customresponse cfn="test_address" expect="2001:db8:abd0:f::ff01:1"> | ||
+ | <textline size="40" correct_answer="11" label="Integer #1"/><br/> | ||
+ | </customresponse> | ||
+ | <p>A24Ex09 : Quelle est l'adresse correspondant à la valeur du champ <b>Adresse destination</b> ?</p> | ||
+ | <customresponse cfn="test_address" expect="2001:db8:78:234:dc20:8eeb:2342:52df"> | ||
+ | <textline size="40" correct_answer="11" label="Integer #2"/><br/> | ||
+ | </customresponse> | ||
+ | |||
+ | <p>A24Ex10 : Quel est le nom du premier champ de l'en-tête suivant ?</p> | ||
+ | <optionresponse> | ||
+ | <optioninput label="A24Ex10" options="('Version','Next Header','Source port','Destination port','Checksum')" correct="Next Header"></optioninput> | ||
+ | </optionresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex11 : Quelle est la valeur de ce champ ?</p> | ||
+ | <stringresponse answer="0x06"> | ||
+ | <additional_answer>6</additional_answer> | ||
+ | <additional_answer>0x6</additional_answer> | ||
+ | <textline label="A24Ex11" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex12 : Quelle est la valeur du troisième champ de cet en-tête ?</p> | ||
+ | <stringresponse answer="0x0"> | ||
+ | <additional_answer>0</additional_answer> | ||
+ | <additional_answer>0x00</additional_answer> | ||
+ | <textline label="A24Ex12" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex13 : Quelle est la valeur du quatrième champ de cet en-tête ?</p> | ||
+ | <stringresponse answer="0x1"> | ||
+ | <additional_answer>1</additional_answer> | ||
+ | <additional_answer>0x01</additional_answer> | ||
+ | <textline label="A24Ex13" size="20"/> | ||
+ | </stringresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex14 : Que contient le reste de cet en-tête ?</p> | ||
+ | <optionresponse> | ||
+ | <optioninput label="A24Ex14" options="('des adresses IPv6','des données applicatives','un nouvel en-tête','une somme de contrôle')" correct="des adresses IPv6"></optioninput> | ||
+ | </optionresponse> | ||
+ | <br /> | ||
+ | <p>A24Ex15 : Quel est le dernier équipement qui a fixé les champs de l'en-tête IPv6 cités précedemment ?</p> | ||
+ | <multiplechoiceresponse> | ||
+ | <choicegroup label="A24Ex15" 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> | ||
+ | <br /> | ||
+ | <p>A24Ex16 : Quel est le dernier équipement qui a fixé les valeurs de l'en-tête suivant ?</p> | ||
+ | <multiplechoiceresponse> | ||
+ | <choicegroup label="A24Ex16" type="MultipleChoice"> | ||
+ | <choice correct="false">la source</choice> | ||
+ | <choice correct="true">un des routeurs intermédiaires</choice> | ||
+ | <choice correct="false">le dernier routeur intermédiaire</choice> | ||
+ | <choice correct="false">la destination</choice> | ||
+ | </choicegroup> | ||
+ | </multiplechoiceresponse> | ||
+ | |||
+ | <solution> | ||
+ | <div class="detailed-solution"> | ||
+ | <p>Identification des champs de l'en-tête</p> | ||
+ | <p><img src="/static/A24Ex.png" style="width: 600px"/></p> | ||
+ | </div> | ||
+ | <p>Questions A24Ex15 et A24Ex16</p> | ||
+ | <p>Dans cet exercice, nous sommes en présence d'une extension de routage de type 0, donc utilisant la fonctionnalité de routage par la source. Comme présenté dans la vidéo de l'activité, ce mécanisme utilise l'extension de routage pour y stocker les adresses des routeurs à emprunter jusqu'à la destination. L'en-tête IPv6 est utilisée pour cibler le prochain routeur par l'adresse destination. Ce routeur, lorsqu'il reçoit le paquet, intervertit son adresse avec l'adresse pointée dans l'extension de routage, et y modifie ce pointeur vers le prochain saut. Il modifie donc l'en-tête et l'extension.</p> | ||
+ | </solution> | ||
+ | |||
+ | </problem> | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | ---- | ||
60 00 00 00 04 7E 2B 1A 20 01 0D B8 AB D0 00 0F | 60 00 00 00 04 7E 2B 1A 20 01 0D B8 AB D0 00 0F |
Revision as of 01:58, 20 March 2017
<p>Soit l'en-tête IPv6 suivant :<br /></p> <span style="font-family: courier new,courier;"> <pre> <tt> 60 00 00 00 04 7E 2B 1A 20 01 0D B8 AB D0 00 0F </tt> <tt> 00 00 00 00 FF 01 00 01 20 01 0D B8 00 78 02 34 </tt> <tt> DC 20 8E EB 23 42 52 DF 06 04 00 01 00 00 00 00 </tt> <tt> 20 01 0D B8 00 78 00 01 00 00 00 00 00 00 00 01 </tt> <tt> 20 01 0D B8 00 82 02 03 00 00 00 00 00 00 03 85 </tt> <tt> 00 14 00 50 00 00 00 00 00 00 00 00 50 02 20 00 </tt> <tt> 83 20 00 00 </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, ou en décimal.
A24Ex01 : Quelle est la valeur du champ Version ?
<stringresponse type="ci" answer="6">
<additional_answer>0x6</additional_answer> <additional_answer>0x06</additional_answer> <textline label="A24Ex01" size="20"/>
</stringresponse>
A24Ex02 : Quelle est la valeur du champ Classe de trafic ?
<stringresponse type="ci" answer="0">
<additional_answer>0x0</additional_answer> <additional_answer>0x00</additional_answer> <textline label="A24Ex02" size="20"/>
</stringresponse>
A24Ex03 : 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="A24Ex03" size="20"/>
</stringresponse>
A24Ex04 : Quelle est la valeur du champ Longueur de donnée ?
<stringresponse type="ci" answer="1150">
<additional_answer>0x47e</additional_answer> <additional_answer>0x047e</additional_answer> <textline label="A24Ex04" size="20"/>
</stringresponse>
A24Ex05 : Quelle est la valeur du champ En-tête suivant ?
<stringresponse type="ci" answer="43">
<additional_answer>0x2b</additional_answer> <textline label="A24Ex05" size="20"/>
</stringresponse>
A24Ex06 : À quel protocole la valeur du champ En-tête suivant fait-elle référence ?
<stringresponse type="ci" answer="Routage" >
<additional_answer>Extension routage</additional_answer> <additional_answer>Extension de routage</additional_answer> <textline label="A24Ex06" size="20"/>
</stringresponse>
A24Ex07 : Quelle est la valeur du champ Nombre maximal de sauts ?
<stringresponse type="ci" answer="0x1A">
<additional_answer>26</additional_answer> <textline label="A24Ex07" 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>
A24Ex08 : Quelle est l'adresse correspondant à la valeur du champ Adresse source ?
<customresponse cfn="test_address" expect="2001:db8:abd0:f::ff01:1">
<textline size="40" correct_answer="11" label="Integer #1"/>
</customresponse>
A24Ex09 : Quelle est l'adresse correspondant à la valeur du champ Adresse destination ?
<customresponse cfn="test_address" expect="2001:db8:78:234:dc20:8eeb:2342:52df">
<textline size="40" correct_answer="11" label="Integer #2"/>
</customresponse>
A24Ex10 : Quel est le nom du premier champ de l'en-tête suivant ?
<optionresponse>
<optioninput label="A24Ex10" options="('Version','Next Header','Source port','Destination port','Checksum')" correct="Next Header"></optioninput>
</optionresponse>
A24Ex11 : Quelle est la valeur de ce champ ?
<stringresponse answer="0x06">
<additional_answer>6</additional_answer> <additional_answer>0x6</additional_answer> <textline label="A24Ex11" size="20"/>
</stringresponse>
A24Ex12 : Quelle est la valeur du troisième champ de cet en-tête ?
<stringresponse answer="0x0">
<additional_answer>0</additional_answer> <additional_answer>0x00</additional_answer> <textline label="A24Ex12" size="20"/>
</stringresponse>
A24Ex13 : Quelle est la valeur du quatrième champ de cet en-tête ?
<stringresponse answer="0x1">
<additional_answer>1</additional_answer> <additional_answer>0x01</additional_answer> <textline label="A24Ex13" size="20"/>
</stringresponse>
A24Ex14 : Que contient le reste de cet en-tête ?
<optionresponse>
<optioninput label="A24Ex14" options="('des adresses IPv6','des données applicatives','un nouvel en-tête','une somme de contrôle')" correct="des adresses IPv6"></optioninput>
</optionresponse>
A24Ex15 : Quel est le dernier équipement qui a fixé les champs de l'en-tête IPv6 cités précedemment ?
<multiplechoiceresponse>
<choicegroup label="A24Ex15" 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>
A24Ex16 : Quel est le dernier équipement qui a fixé les valeurs de l'en-tête suivant ?
<multiplechoiceresponse>
<choicegroup label="A24Ex16" type="MultipleChoice"> <choice correct="false">la source</choice> <choice correct="true">un des routeurs intermédiaires</choice> <choice correct="false">le dernier routeur intermédiaire</choice> <choice correct="false">la destination</choice> </choicegroup>
</multiplechoiceresponse>
<solution>
Identification des champs de l'en-tête
Questions A24Ex15 et A24Ex16
Dans cet exercice, nous sommes en présence d'une extension de routage de type 0, donc utilisant la fonctionnalité de routage par la source. Comme présenté dans la vidéo de l'activité, ce mécanisme utilise l'extension de routage pour y stocker les adresses des routeurs à emprunter jusqu'à la destination. L'en-tête IPv6 est utilisée pour cibler le prochain routeur par l'adresse destination. Ce routeur, lorsqu'il reçoit le paquet, intervertit son adresse avec l'adresse pointée dans l'extension de routage, et y modifie ce pointeur vers le prochain saut. Il modifie donc l'en-tête et l'extension.
</solution>
</problem>
</pre>
60 00 00 00 04 7E 2B 1A 20 01 0D B8 AB D0 00 0F 00 00 00 00 FF 01 00 01 20 01 0D B8 00 78 02 34 DC 20 8E EB 23 42 52 DF 06 04 00 01 00 00 00 00 20 01 0D B8 00 78 00 01 00 00 00 00 00 00 00 01 20 01 0D B8 00 82 02 03 00 00 00 00 00 00 03 85 00 14 00 50 00 00 00 00 00 00 00 00 50 02 20 00 83 20 00 00
Entête IPv6 avec extension à disséquer :
- Valeur Trafic Class (=0)
- Valeur Flow Label (=0)
- Longueur de donnée (0x04fe / 1150 octets)
- Type de l'en-tête suivante (0x2b / Entête Routage)
- Valeur Hop-Limit (0x1A / 26)
- Adresse source (2001:db8:abd0:f::ff01:1
- Adresse destination (2001:db8:78:234:dc20:8eeb:2342:52df)
- Extension
- Type de l'en-tête suivante (0x06 / TCP)
- Valeur Routing Type (0)
- Valeur Segment left (1)
- Combien d'adresses IPv6 à suivre ? (2 car la longueur de l'extension est de 4 mots de 64bits)