<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" version="1.1">
  <file original="NoName" source-language="en" datatype="plaintext" target-language="fr">
    <body>
      <trans-unit xml:space="preserve" approved="no" id="ec8352b586faaa1f" weblate-flags="rst-text">
        <source>Exploring routing protocols</source>
        <target state="translated">Découverte des protocoles de routage</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">7</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="72d1835cd3ba8eb8" weblate-flags="rst-text">
        <source>Routing protocols play a key role in the Internet since they ensure that all the routers have valid routing tables. In this section, we use IPMininet_ to explore how intradomain and interdomain routing protocols work in practice. IPMininet_ adds an abstraction layer above the actual configuration of the FRRouting daemons that implement these routing protocols.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">9</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="13b85d6bc51f6b7e" weblate-flags="rst-text">
        <source>Exploring OSPF</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">13</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="519920ba049c51b6" weblate-flags="rst-text">
        <source>We first use IPMininet_ to explore the operation of OSPFv3, the version of OSPF that supports IPv6. We create a simple network with three routers and two hosts as shown in the figure below.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">15</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="e77ce713c5a4c1fe" weblate-flags="rst-text">
        <source>The code is very simple as by default IPMininet_ enables OSPF on routers. We introduce two specific parameters. First, the interface that connects a router to a host is flagged as a passive interface (``igp_passive=True``). This indicates to the router that there are no other routers attached to this interface and that it should not send or accept OSPF Hello messages on this interface. The second configuration parameter is that we set the IGP cost on each link.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">80</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="f4317b67b6064dd4" weblate-flags="rst-text">
        <source>We use this mininet_ topology to collect packet traces that show the packets that OSPF routers exchange. For this, we add the following ``post_build`` method that IPMininet_ starts after having constructed the network and before launching the daemons. It simply starts tcpdump_ on each router to collect the first 100 OSPF packets that they send/receive.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">83</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="26330ae5b671dd70" weblate-flags="rst-text">
        <source>Finally, we can start the IPMininet_ topology and launch the daemons. The entire script is available from :download:`/exercises/ipmininet_scripts/ospf6.py`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">94</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="ad19afb07917c39c" weblate-flags="rst-text">
        <source>The script starts the routers and hosts.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">106</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="8ed051cde76598ee" weblate-flags="rst-text">
        <source>We can easily verify that the paths used to forward packets are the expected ones according to the configured IGP weights.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">120</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="edb4ff4b94490128" weblate-flags="rst-text">
        <source>We can also connect to the OSPFv3 daemon running on the routers to observe its state. For this, we use the ``noecho r1 telnet localhost ospf6d`` command.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">135</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="6d021007c184a337" weblate-flags="rst-text">
        <source>The password to access this daemon is `zebra`. It supports various commands that are described in the `FRRouting documentation &lt;http://docs.frrouting.org/en/latest/ospf6d.html#showing-ospf6-information&gt;`_ We briefly illustrate some of them below.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">152</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="726cf662b2c91d63" weblate-flags="rst-text">
        <source>The ``show ipv6 ospf6`` command reports the general state of the OSPFv3 daemon. The ``show ipv6 ospf6 neighbor`` command reports the state of the connected neighbors.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">175</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="69e58a366550cdaa" weblate-flags="rst-text">
        <source>In its output, we see that ``r1`` is attached to two different routers. Finally, the ``show ipv6 ospf6 database`` returns the full OSPFv3 database with all the link state information that was distributed by OSPFv3.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">186</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="1a76f64d01a3c67f" weblate-flags="rst-text">
        <source>We can also use the packet traces that were collected by tcpdump_ to observe the packets that the OSPFv3 daemons exchange. OSPFv3 is a more complex protocol that the basic link state protocol that we have described in this book, but you should be able to understand some of these packets. The packet traces are available as :download:`/exercises/traces/ospf6-r1-trace.pcap`, :download:`/exercises/traces/ospf6-r2-trace.pcap` and :download:`/exercises/traces/ospf6-r3-trace.pcap`. Here are a few interesting packets collected on router ``r1``.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">239</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="a188a3d15c845b87" weblate-flags="rst-text">
        <source>The first packet that this router received his a Hello packet that was sent by router ``r2``. There are several interesting points to note about this packet. First, its source address is the link-local address (``fe80::68bc:b4ff:fe19:42b7``) of router ``r2`` on this interface. The destination address of the packet is reserved IPv6 multicast address for OSPFv3, i.e. ``ff02::5``. The Hop Limit of the packet is set to 1 and OSFPv3 uses a next header of type 89.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">241</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="54c8a8c0955fa3b6" weblate-flags="rst-text">
        <source>The Hello packet contains some parameters such as the `Hello interval` that is set to 1 second. This interval is the delay between the transmission of successive Hello packets. Since the `Router Dead Interval` is set to 3 seconds, the router will consider the link as down if it does not receive Hello packets during a period of 3 seconds. The second packet of the trace is sent by router ``r1``.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">245</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="97b2bfb5dafb81e2" weblate-flags="rst-text">
        <source>We can then observe the Database description packet that is sent by routers to announce the state of their OSPFv3 database. The details of this packet are beyond the scope of this simple exercise.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">249</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="7d192e7f3857592e" weblate-flags="rst-text">
        <source>This packet is updated when new information is added in the router's OSPFv3 database. A few seconds router, this router sends another Database description packet that announces more information.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">253</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="38b1dbb9490a3768" weblate-flags="rst-text">
        <source>Router ``r2`` reacts to this updated Database description packet by requesting the link state information that it does not already know. For this, it sends a `LS Request` packet.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">257</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="8b156a0c668b037c" weblate-flags="rst-text">
        <source>The requested information is sent in a `LS Update` packet shortly after that.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">261</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="f115a3ad74e0ddf9" weblate-flags="rst-text">
        <source>OSPFv3 also includes `LS Acknowledge` packets that acknowledge the correct reception of link state information.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">265</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="863b91f9634ce9f2" weblate-flags="rst-text">
        <source>A more detailed discussion of the packets that routing protocols exchange may be found in [Goralski2009]_.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">269</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="e6a6acc404686546" weblate-flags="rst-text">
        <source>Exploring RIP</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">272</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="9750a5b1aa990638" weblate-flags="rst-text">
        <source>IPMininet_ can also be used to perform experiments with RIP. A simple script that uses RIPng is provided below.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">274</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="70e59dedf7fc0029" weblate-flags="rst-text">
        <source>As RIP messages are exchanged using UDP on port 521, we filter this port in the tcpdump_ trace. RIPng distributes the routes and our two hosts can exchange packets. The entire script is available from :download:`/exercises/ipmininet_scripts/ripng.py`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">336</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="ae27bc53e60a5d6a" weblate-flags="rst-text">
        <source>We can observe the RIPng messages that are exchanged over the network. :rfc:`2080` defines two types of RIPng messages:</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">357</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="120e67014ea372a9" weblate-flags="rst-text">
        <source>the requests</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">359</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="b7d569b2cbe99175" weblate-flags="rst-text">
        <source>the responses that contain the router's routing table</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">360</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="78ef20db854fee80" weblate-flags="rst-text">
        <source>When a router starts, it sends a request message. This is illustrated in the figure below with the first message sent by router ``r2``. This message is sent inside an IPv6 packet whose source address is the link-local address of the router and the destination address is ``ff02::9`` which is the reserved multicast address for RIPng.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">362</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="3b6fefe3146b03b6" weblate-flags="rst-text">
        <source>Router ``r2`` receives a similar request from ``fe80::481a:48ff:fed7:292e`` and replies by sending its routing table in a response message. Note that this message is sent to the link-local address of the requesting router.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">366</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="07e6ec5ef8976b97" weblate-flags="rst-text">
        <source>Later, router ``r2`` will regularly transmit its distance vector inside an unsolicited response message that is sent towards the IPv6 multicast address ``ff02::9``.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">370</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="1b138da61fdd95c1" weblate-flags="rst-text">
        <source>The packet traces collected on the three routers of this example are available from :download:`/exercises/traces/ripng-r1-trace.pcap`, :download:`/exercises/traces/ripng-r2-trace.pcap` and :download:`/exercises/traces/ripng-r3-trace.pcap`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">374</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="e5af7df81a5b5bed" weblate-flags="rst-text">
        <source>Exploring BGP</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">378</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="4bfac9a663e176f0" weblate-flags="rst-text">
        <source>To explore the configuration of BGP, let us consider a network that contains three ASes: ``AS1``,  ``AS2`` and ``AS3``. To simplify the tests, we identify one host inside each of these ASes.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">380</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="dee0841d42c2e841" weblate-flags="rst-text">
        <source>As in the previous examples, we create the routers and associate one IPv6 prefix to each AS:</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">434</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="e44c255fcb3fd69b" weblate-flags="rst-text">
        <source>``AS1`` is assigned ``2001:cafe:1::/48``</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">436</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="59d801ad6f8edee6" weblate-flags="rst-text">
        <source>``AS2`` is assigned ``2001:cafe:2::/48``</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">437</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="a310095ca3482766" weblate-flags="rst-text">
        <source>``AS3`` is assigned ``2001:cafe:3::/48``</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">438</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="83a59cba0d023922" weblate-flags="rst-text">
        <source>The `addDaemon` method adds a BGP daemon on each router and configures it to advertise the IPv6 prefix allocated to this AS. We then create all the links and manually assign one IPv6 subnet to each link and one IPv6 address to each interface. For the interdomain links, we use an IPv6 prefix that belongs to one of the attached ASes.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">454</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="cd52c0309602842f" weblate-flags="rst-text">
        <source>The last step is to specify to which AS each router belongs and to configure the eBGP sessions and their routing policies. IPMininet_ abstracts most of the complexity of the configuration of these policies by supporting two policies</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">491</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="e2257658d7cb833b" weblate-flags="rst-text">
        <source>The script ends by launching the full topology. The entire script is available from :download:`/exercises/ipmininet_scripts/ebgp-simple.py`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">510</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="5db9167de3ef698d" weblate-flags="rst-text">
        <source>We can now run this simple network.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">512</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="2adbea137e215208" weblate-flags="rst-text">
        <source>If you launch the script and immediately type ``ping6all`` to check the connectivity, you might obtained the following result.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">518</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="a79dac96be7e8a2c" weblate-flags="rst-text">
        <source>Remember that BGP is a distributed protocol and that it takes some time to launch the daemons and exchange the messages. After some time, the same command will confirm that everything works as expected.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">529</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="8769dbd116189c9f" weblate-flags="rst-text">
        <source>We can also use :manpage:`traceroute6(8)` to check the path followed by the packets. Before doing that, think about the configuration of the BGP routing policies and try to predict the output of :manpage:`traceroute6(8)`. This is a good exercise to check your understanding of BGP.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">540</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="2378cf2ceae6f4c2" weblate-flags="rst-text">
        <source>We have configured the following addresses on the hosts.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">542</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="b832c897645c0d82" weblate-flags="rst-text">
        <source>We can now explore the routes in this small Internet. Host ``h1`` can reach directly host ``h3``.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">559</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="0d0538f6e76690d8" weblate-flags="rst-text">
        <source>Note that the path preferred by ``AS3`` to reach ``AS1`` is different.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">569</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="f6eddda8c23e085b" weblate-flags="rst-text">
        <source>The same applies for the paths between ``h1`` and ``h2``</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">581</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="5dbdc3a890d9958b" weblate-flags="rst-text">
        <source>Besides :manpage:`ping6(8)` and :manpage:`traceroute6(8)`, it is also useful to interact with the BGP daemon that runs on each of our routers. This is done by connecting on the Command Line Interface of the BGP router using telnet.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">598</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="220c4f9b9a5f2562" weblate-flags="rst-text">
        <source>The password for the BGP daemon is `zebra`. The `noecho` command indicates that mininet_ does not need to echo the characters that you type. You then enter the Quagga VTY that enables you to type commands. The `help` commands gives you some information about the available commands as well as `?`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">619</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="7dc5976ee4d22151" weblate-flags="rst-text">
        <source>In these exercises, we mainly consider the ``show`` that extracts information from the BGP daemon. We type `show bgp` and press the `tabulation` key to see the available commands in the `show bgp`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">649</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="13c1dcdb710f0ef5" weblate-flags="rst-text">
        <source>A useful command to start is `show bgp summary` which provides a summary of the state of the BGP daemon.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">663</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="1384ccb853609da3" weblate-flags="rst-text">
        <source>This router (`as1`) has two BGP neighbors: ``2001:cafe:1:12::2`` and ``2001:cafe:1:13::3``. Both BGP sessions are established using the current version of the protocol (version 4). About 50 messages were sent/received over each session. These messages are mainly the BGP Keepalive messages that are exchanged every 30 seconds. The last column indicates that two prefixes were received over each session. We can see more details about these two eBGP sessions with the `show bgp neighbors` command.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">685</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="32794392cb2f3450" weblate-flags="rst-text">
        <source>We can now observe the BGP-Loc-RIB of the router with the ``show bgp ipv6 command`` command.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">812</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="ccf5d9f456357471" weblate-flags="rst-text">
        <source>It is interesting to look at the output of this command in details. Router `as1` has routes for three different IPv6 prefixes. The first prefix is its own prefix, ``2001:cafe:1::/48``. It has no nexthop since this prefix is originated by the router. Then, `as1` has received two paths for ``2001:cafe:2::/48``. In the BGP Loc-RIB, the `&gt;` character indicates the best route according to the BGP decision process.  ``2001:cafe:2::/48`` was learned over two different BGP sessions:</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">838</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="1cbccf9d49780017" weblate-flags="rst-text">
        <source>the eBGP session with ``fe80::3c81:2eff:fe19:465d`` with an AS-Path of ``AS3:AS2`` (see last column)</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">840</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="edf3a35ec593ca1b" weblate-flags="rst-text">
        <source>the eBGP session with ``fe80::c001:dcff:fe49:a512`` with an AS-Path of ``AS2`` (see last column)</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">841</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="e608e0fa5eefec5b" weblate-flags="rst-text">
        <source>The first of these two routes is preferred as indicated by the `&gt;` character because it has a higher ``local-preference` (150) than the second one (100). For prefix ``2001:cafe:3::/48``, the route learned via ``fe80::3c81:2eff:fe19:465d`` is also preferred for the same reason.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">843</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="8d84d6c75fb11442" weblate-flags="rst-text">
        <source>IPMininet_ also allows to explore the dynamics of BGP by looking at the packets that the routers exchange. For this, we slightly modify the example above and add delays to the interdomain links as follows.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">845</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="9eef1042532fbf40" weblate-flags="rst-text">
        <source>We also add a ``post_build`` method to launch tcpdump_ and capture the BGP packets exchanged by the routers. A BGP session runs over a TCP connection. Let us examine a few of the BGP messages exchanged on the BGP session between ``AS1`` and ``AS2``. The traces collected on the three routers are available from :download:`/exercises/traces/bgp-as1-trace.pcap`, :download:`/exercises/traces/bgp-as2-trace.pcap` and :download:`/exercises/traces/bgp-as2-trace.pcap`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">854</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="4564bdd24f63d404" weblate-flags="rst-text">
        <source>The BGP session starts with a TCP three-way handshake. Once the session has been established, both BGP daemons send an ``OPEN`` message describing their capabilities and the BGP extensions that it supports. The details of these extensions go beyond the scope of this book. However, it is important to note that the ``OPEN`` message contains the ``AS`` number of the router that sends the message and its identifier as a 32 bits IPv4 address. This router identifier uniquely identifies the router. The last mandatory parameter of the ``OPEN`` message is the `Hold Time`, i.e. the maximum delay between two successive messages over this BGP session. A BGP router should send ``KEEPALIVE`` messages every one third of the `Hold Time` to keep the session up.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">856</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="27761b4f5b8b21b7" weblate-flags="rst-text">
        <source>The ``UPDATE`` message can be used to withdraw and advertise routes. The packet below is sent by ``AS2`` to advertise its route towards `2001:cafe:2::/48` on the BGP session with ``AS1``.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">861</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="33296f4c6fef34fe" weblate-flags="rst-text">
        <source>Another interesting utilization of IPMininet_ is to explore how routers react to link failures. We start from the same network as with the previous example and disable the link between ``AS2`` and ``AS3``. For this, we log on one of the two routers and issue the following commands.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">866</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="2306dd61f51167a8" weblate-flags="rst-text">
        <source>We first connect to the BGP daemon on router `as2`. In addition to the `show` commands that have been described earlier, the router also supports privileged commands that can change its configuration. Before executing these commands, we must enter the privileged mode with the `enable` command. On production routers, this command requires a password to verify the credentials of the network administrator. The `#` prompt indicates that we are allowed to execute privileged commands. We first check the state of the BGP sessions with the `show bgp summary` commands. There are two BGP sessions configured on this router.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">898</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="298e74bcefe4b03e" weblate-flags="rst-text">
        <source>We can now disable one of the BGP sessions on router `as2` as follows.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">900</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="59d1bacabc8a9b8b" weblate-flags="rst-text">
        <source>We start indicate that we will use the terminal to change the router configuration with `configure terminal`. We then enter the BGP part of the configuration with `router bgp 2` (`2` is the AS number of `as2`). Then we use the `neighbor 2001:cafe:2:23::3 shutdown` that takes as parameter the IP address of the peer of the session that we want to stop. We then leave the BGP part of the configuration (first `exit`) and the configuration menu (second `exit` command). At this point, the BGP session between ``AS2`` and ``AS3`` is down.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">911</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="e751512a1c7c5a49" weblate-flags="rst-text">
        <source>Without a BGP session between ``AS2`` and ``AS3``, there are reachability problems in this simple Internet.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">930</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="929304db03412482" weblate-flags="rst-text">
        <source>We can fix them by enabling again the BGP session with the `no neighbor 2001:cafe:2:23::3 shutdown` command.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">941</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="1d97688b164b9577" weblate-flags="rst-text">
        <source>Exercises</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">989</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="34de2c6124501326" weblate-flags="rst-text">
        <source>We can use IPMininet_ to prepare some networks with problems that need to be analyzed and corrected.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">991</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="bf3207a3e6fdb0a5" weblate-flags="rst-text">
        <source>Our first example is a small Internet with 5 ASes. A subset of the script that configures this network is shown below. There is one host attached to each AS and this host has the same number as its AS. The entire script is available from :download:`/exercises/ipmininet_scripts/ebgp-bug.py`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">993</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="5af9135086d82e94" weblate-flags="rst-text">
        <source>When this network is launched, `ping6all` reports connectivity problems. Hosts `h1` and `h4` cannot exchange packets. Can you fix the problem by changing the routing policy used on only one interdomain link ? Justify your answer</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1016</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="7ea6c23c6a657371" weblate-flags="rst-text">
        <source>Another interesting utilization IPMininet_ is to explore the impact of a link failure. We start from a small variant of the above topology.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1029</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="e915aca74fc18524" weblate-flags="rst-text">
        <source>When this network starts, all hosts can reach all other hosts.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1052</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="a8d840f05bd3e14b" weblate-flags="rst-text">
        <source>Draw the network and try to predict how it will react to a shutdown of any of the customer-provider links ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1066</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="68a8923e8a217f16" weblate-flags="rst-text">
        <source>What are the BGP messages that will be exchanged when the link between ``AS1`` and ``AS2`` fails ? How does this affect the reachability of the different hosts ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1068</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="e3e64ac88b71609b" weblate-flags="rst-text">
        <source>What are the BGP messages that will be exchanged when the link between ``AS1`` and ``AS3`` fails ? How does this affect the reachability of the different hosts ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1098</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="510da66478812d18" weblate-flags="rst-text">
        <source>What are the BGP messages that will be exchanged when the link between ``AS1`` and ``AS5`` fails ? How does this affect the reachability of the different hosts ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1128</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="80160d78eff96d8a" weblate-flags="rst-text">
        <source>What are the BGP messages that will be exchanged when the link between ``AS3`` and ``AS4`` fails ? How does this affect the reachability of the different hosts ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1158</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="4b781bd2dfbf9596" weblate-flags="rst-text">
        <source>Let us now consider another example. The network contains nine ASes with one host per AS. Assuming that ``AS9`` announces prefix `p9` and that ``AS2`` announces prefix `p2`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1190</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="34bfcf7c0835a4a3" weblate-flags="rst-text">
        <source>What is the Loc-RIB of ``AS6`` for prefix `p9` ? Indicate which is the best route towards this prefix.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1228</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="42ed94d6a71aacf6" weblate-flags="rst-text">
        <source>What is the Loc-RIB of ``AS9`` for prefix `p2` ? Indicate which is the best route towards this prefix.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1230</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="65ad9e51fa6de4d1" weblate-flags="rst-text">
        <source>The network below contains nine ASes with one host per AS. Assuming that ``AS1`` announces prefix `p1` and that ``AS2`` announces prefix `p2`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1232</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="1df114afffc7cc28" weblate-flags="rst-text">
        <source>What is the Loc-RIB of ``AS6`` for prefix `p1` ? Indicate which is the best route towards this prefix.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1265</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="985b733eae88fdcd" weblate-flags="rst-text">
        <source>What is the Loc-RIB of ``AS8`` for prefix `p2` ? Indicate which is the best route towards this prefix.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1267</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="8a512f322d576af1" weblate-flags="rst-text">
        <source>Let us now consider another example, also implemented using an IPMininet_ script. The network contains eight ASes with one host per AS. This small Internet is shown below and the script is available from :download:`/exercises/ipmininet_scripts/ebgp-bug-3.py`.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1272</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="00327b0856f8b365" weblate-flags="rst-text">
        <source>The network does not provide a full connectivity. The hosts attached to ``AS5`` cannot ping the hosts attached to ``AS8``.</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1312</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="c26f0038b47ef6cd" weblate-flags="rst-text">
        <source>What is the path that packets follow from a host attached to ``AS1`` to a host attached to ``AS8`` ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1327</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="62eec40e97d1a5a0" weblate-flags="rst-text">
        <source>What is the path that packets follow from a host attached to ``AS8`` to a host attached to ``AS1`` ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1339</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="7b84378ef79da92b" weblate-flags="rst-text">
        <source>What is the path that packets follow from a host attached to ``AS8`` to a host attached to ``AS2`` ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1351</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="17a91ed5131efc90" weblate-flags="rst-text">
        <source>What is the path that packets follow from a host attached to ``AS2`` to a host attached to ``AS7`` ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1364</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" id="3ce967abe0f9308e" weblate-flags="rst-text">
        <source>We now disable the interdomain link between ``AS3`` and ``AS4``. What are the hosts that ``AS1``, ``AS5`` and ``AS6`` are still able to ping ?</source>
        <target></target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">../../exercises/routing-protocols.rst</context>
          <context context-type="linenumber">1375</context>
        </context-group>
      </trans-unit>
    </body>
  </file>
</xliff>
