|
To correctly understand the operation of IPv6, it is sometimes important to remember the packet format and how the different fields are used.
|
|
|
The syntax of IPMininet_ is relatively simple and can be learned by looking at a few examples.
|
|
|
The students have configured the following forwarding tables on these six routers.
|
|
|
The same can be done for the three links between the different routers.
|
|
|
The routers have one address inside each network :
|
|
|
There are three routes in this table. The first two correspond to the two prefixes that are used over the ``a-eth0`` interface. These routes are automatically created when an IPv6 address is configured on an interface. The last route is the default route (``::/0``) which points towards ``2001:db8:1341:1::1``, i.e. router ``r1``.
|
|
|
The problem can be detected by using :manpage:`traceroute6(8)`.
|
|
|
The ``pingall`` command reveals that there is a problem in this network.
|
|
|
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``.
|
|
|
Then, you need to extend the build method that creates routers and hosts.
|
|
|
The ``nodes`` command lists the routers and hosts that have been created in the mininet topology.
|
|
|
The `Next Header` of the IPv6 packet indicates the type of the header that follows the IPv6 packet. IANA_ maintains a list of all the assigned values of this header at https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
|
|
|
The :manpage:`traceroute6(8)` software is very useful to debug network problems. It sends a series of UDP segments encapsulated inside IP packets with increasing values of the HopLimit. The first packet has a HotLimit and the first router on the path returns an ICMPv6 HopLimit exceeded message.
|
|
|
The ``links`` command lists the links that have been instantiated and shows that mapping between the named interfaces on each node.
|
|
|
The forwarding paths used in a network depend on the forwarding tables installed in the network nodes. Sometimes, these forwarding tables must be configured manually.
|
|
|
The entire script is available from :download:`/exercises/ipmininet_scripts/static-1.py`.
|
|
|
Starting from the :download:`/exercises/ipmininet_scripts/static-1.py` IPMininet_ script, we can explore classical problems when networks are configured with static routes. A first problem is when a router has an incomplete forwarding table. We configure the static routes as shown below. The entire script is available from :download:`/exercises/ipmininet_scripts/static-1-hole.py`.
|
|
|
Sometimes, static routes must be configured on networks to enforce certain paths. Consider the six routers network shown in the figure below.
|
|
|
Some of the standard mininet commands assume the utilisation of IPv4 and do not have a direct IPv6 equivalent. Here are some useful commands.
|
|