English French
Consider the network below that contains only routers. This network has been configured by a group of students and you must verify whether the configuration is correct. All the IPv6 addresses are part of the same ``/48`` prefix that we name ``p``. The following subnets are defined in this ``/48`` prefix.
Consider the network shown in the figure below. In this network, the following addresses are used.
Consider the same network as in the previous question, but now the forwarding tables of ``R2`` and ``R3`` are configured as shown below :
Design questions
Do your forwarding tables impose the path used to reach host ``B`` which is attached to router ``R4`` or do you need to configure an additional entry in these tables ?
During the last years, `Olivier Tilmans <https://inl.info.ucl.ac.be/otilmans.html>`_ and `Mathieu Jadin <https://inl.info.ucl.ac.be/mjadin.html>`_ have developed the missing piece to enable students to use mininet_ to experiment with IPv6: ipmininet_. ipmininet_ is a python module that provides the classes that are required to automatically configure IPv6 networks with different routing protocols. It is available from PyPi from https://pypi.python.org/ipmininet.
Here is a simple example of the utilization of this Vagrant box.
host ``A`` : ``2001:db8:1341:1::A`` and its default route points to ``2001:db8:1341:1::1``
Host ``a`` has two interfaces: the standard loopback interface and a network interface named ``a-eth0`` that is attached to router ``r1``. We can also verify how the IPv6 addresses have been configured:
host ``B`` : ``2001:db8:1341:4::B`` and its default route points to ``2001:db8:1341:4::4``
How do you configure the forwarding tables on ``R1`` and ``R4`` so that ``A`` can reach ``B`` and the reverse ?
In the output of :manpage:`traceroute6(8)`, a ``!N`` indicates that host ``a`` received from ``2001:db8:1341:12::2``, i.e. router ``r2``, a Network unreachable ICMPv6 message. The forwarding table of ``r2`` confirms the root cause of this problem.
In this network, propose the forwarding tables of ``R2`` and ``R3`` that ensure that hosts ``A`` and ``B`` can exchange packets in both directions.
In this network, select `all` the rules in the shown forwarding tables that ensure that the packets sent from ``A`` to ``B`` follow the reverse path of the packets sent by ``B`` to ``A``.
In this network, we will focus on four IPv6 prefixes :
IPMininet_ simplifies the creation of the network topology by providing a simple API. For this, you simply need to declare a class that extends the ``IPTopo`` class.
IPv6 packets
It is possible to execute any of the standard Linux commands to configure the network stack on any of the hosts by prefixing the command with the corresponding host. Remember to always specify ``inet6`` as the address family to retrieve the IPv6 information.
Let us start our exploration of IPv6 routing with a simple network topology that contains two hosts and three routers and uses static routes.
Network engineers often rely on :manpage:`ping6(8)` to verify the reachability of a remote host or router. :manpage:`ping6(8)` sends ICMPv6 echo request messages and analyzes the received ICMPv6 echo responses. Each echo request message contains an identifier and a sequence number that is returned in the response.