Translation

English
English French Actions
When a network is designed, an important element of the design is the IP address allocation plan. A good allocation plan can provide flexibility and help to reduce the size of the forwarding tables.
Assign IP subnets to all links in this network so that you can reduce the number of entries in the forwarding tables of all routers. Assume that you have received a ``/56`` prefix that you can use as you want. Each subnet containing a host must be allocated a ``/64`` subnet.
Configuring IPv6 Networks
With the previous exercises, you have learned how to reason about IPv6 networks "on paper". Given the availability of IPv6 implementations, it is also possible to carry out experiments in real and virtual labs. Several virtual environments are possible. In this section, we focus on mininet_. mininet_ is an emulation framework developed at Stanford University that leverages the namespaces features of recent Linux kernels. With those namespaces, a single Linux kernel can support a variety of routers and hosts interconnected by virtual links. mininet_ has been used by several universities as an educational tool, but unfortunately it was designed without IPv6 support.
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.
The syntax of IPMininet_ is relatively simple and can be learned by looking at a few examples.
Let us start our exploration of IPv6 routing with a simple network topology that contains two hosts and three routers and uses static routes.
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.
Then, you need to extend the build method that creates routers and hosts.
Although IPMininet_ can assign prefixes and addresses automatically, we use manually assigned addresses in this example.
We use five /64 IPv6 prefixes in this network topology:
``2001:db8:1341:1::/64`` on the link between ``a`` and ``r1``
``2001:db8:1341:12::/64`` on the link between ``r1`` and ``r2``
``2001:db8:1341:13::/64`` on the link between ``r1`` and ``r3``
``2001:db8:1341:23::/64`` on the link between ``r2`` and ``r3``
``2001:db8:1341:1::/64`` on the link between ``b`` and ``r3``
We can then manually configure the IPv6 addresses of each host/router on each link. Let us start with the links attached to the two hosts.
The same can be done for the three links between the different routers.
With these IP prefixes and the network topology, we can now use IPMininet_ to create the topology and assign the addresses.
We start by creating the objects that correspond to the static routes on the three routers. The second argument of the ``addDaemon`` method is a list of ``StaticRoute`` objects. Each of these objects is created by specifying an IP prefix and a nexthop.
We can now create the hosts and the routers
With this ``build`` method, we can now launch the network by using the python code below.
The entire script is available from :download:`/exercises/ipmininet_scripts/static-1.py`.
To help students to start using IPMininet, `Mathieu Jadin <https://inl.info.ucl.ac.be/mjadin.html>`_ has created a Vagrant box that launches a Ubuntu virtual machine with all the required software. See https://ipmininet.readthedocs.io/en/latest/install.html for additional information.
Here is a simple example of the utilization of this Vagrant box.
We start the network topology shown above with the ``sudo python script.py`` command. It launches the mininet_ interactive shell that provides several useful commands:
Some of the standard mininet commands assume the utilisation of IPv4 and do not have a direct IPv6 equivalent. Here are some useful commands.
The ``nodes`` command lists the routers and hosts that have been created in the mininet topology.
The ``links`` command lists the links that have been instantiated and shows that mapping between the named interfaces on each node.
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.
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:

Loading…

User avatar None

New source string

cnp3-ebook / exercises/ipv6French

New source string 3 years ago
Browse all component changes

Glossary

English French
No related strings found in the glossary.

String information

Source string location
../../exercises/ipv6.rst:615
String age
3 years ago
Source string age
3 years ago
Translation file
locale/fr/LC_MESSAGES/exercises/ipv6.po, string 68