|
What do you think about the proposed configuration?
|
|
|
Sometimes, static routes must be configured on networks to enforce certain paths. Consider the six routers network shown in the figure below.
|
|
|
In this network, we will focus on four IPv6 prefixes :
|
|
|
``p:0000::/64`` used on the link ``A1-R1``. ``A1`` uses address ``p:0000::A1/64``
|
|
|
``p:0001::/64`` used on the link ``A2-R3``. ``A2`` uses address ``p:0001::A2/64``
|
|
|
``p:0002::/64`` used on the link ``B1-R5``. ``B1`` uses address ``p:0002::B1/64``
|
|
|
``p:0003::/64`` used on the link ``B2-R6``. ``B2`` uses address ``p:0003::B2/64``
|
|
|
Can you configure the forwarding tables of the six routers to achieve the following network objectives :
|
|
|
All packets sent by ``B1`` and ``B2`` to ``A1`` and ``A2`` are always forwarded via ``R2`` while all packets from ``A1`` and ``A2`` are always forwarded via ``R4``
|
|
|
The packets whose destinations are ``A1``, ``A2``, ``B1`` or ``B2`` are never forwarded via router ``R4``
|
|
|
The packets sent by ``A1`` or ``A2`` towards ``B1`` are always forwarded via ``R2`` while the packets towards ``B2`` are always forwarded via ``R4``.
|
|
|
When creating these forwarding tables, try to minimize the number of entries that you install on each router.
|
|
|
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.
|
|