T-110.5100 Laboratory Works in Datacommunications Software (4 cr)

Lab 4: IPv6


Description of the exercise

In this exercise you will collect knowledge about Internet Protocol version 6 (IPv6). The main task is to build a small network.

Material

  • RFC 2373 - IP version 6 Addressing Architecture
  • RFC 2375 - IPv6 Multicast Address Assignment
  • RFC 2460 - Internet Protocol, Version 6 (IPv6) Specification
  • RFC 2461 - Neighbor Discovery for IP version 6 (IPv6)
  • IPv6 HOWTO - Very much information about IPv6 and Linux
  • ifconfig manual page
  • route manual page
  • tcpdump manual page
  • Wireshark homepage
  • scp manual page

Preparation

Please familiarize yourself with the network topology before you start doing this assignment.
Network topology
When you feel ready to start the actual assignment, check that the radvd daemon is not running.
A prefix length for IPv6 addresses used in this exercise is 64. A netmask for IPv4 addresses used in this exercise is 255.255.255.0.

Work tasks

  1. Build a small network.

    Configure your network as described.
    The Virtual Machines (VM) are connected according to the network topology shown above. Each line represents a crossover connection to another machine. You must use Machine 1 as the Router and Machines 2 and 3 as Nodes.

    Check, that all VMs used in this exercise contain the following addresses in their "/etc/hosts" file. If the addresses are missing, you will need to add them.

    			::1 localhost
    	3ffe:300:10:3::2 Node1
    	3ffe:300:10:4::2 Node2
    	3ffe:300:10:3::1 Router Router-0
    	3ffe:300:10:4::1 Router-1
    	

    Set one VM (Machine 1) to act as a router. Use the following sysctl commands:

    			~> sysctl -w net.ipv6.conf.default.forwarding=1
    	~> sysctl -w net.ipv6.conf.all.forwarding=1
    	
    Run all interfaces of the Router up and add static addresses to each interface. Add necessary host routes.

    For other nodes named as Node1 and Node2: Run the interfaces up and add static addresses for the interfaces. Add necessary default routes.

    1.1 List all commands that you used to add static addresses to the router and all the nodes and interfaces. Explain one of the add address commands.
    2 p
    1.2
    List the command that you used to add the default route on Node 1, and explain it. 2 p
    1.3
    List interface information from Node 1, as well as the IPv6 routing table. Explain the IPv6 information from the interface and the routing table. 5 p
    1.4
    Start the tcpdump program on each machine. Ping the other nodes, including the Router, from Node1. (Node1->Router, Node1->Node2) You should get a return packet for each ping you have sent. If not, recheck your network configuration. Include the headers of successful ping return packets in your report. Include ping6 output as well as tcpdump output. 3 p
  2. Rebuild your network.

    Router

    Study the content of radvd.conf file.

    Modify the content of radvd.conf file to be used in your network. Start the router advertisement daemon (radvd). Note: Verify with 'ps' -command, that radvd started up properly. If radvd refuses to start up (process exits with non-zero value) then the error can be e.g. typo in radvd.conf file.

    Check that router advertisement packets are sent to each interface periodically.

    Node1, Node2:

    Remove all static addresses from the interfaces and run the interfaces down.

    Run interfaces on Node2 up.
    Start the Tshark application on Node1. Capture all packets. Run the interface up. Stop capturing the packets after five seconds.
    Ping the other node from Node1 (Node1->Node2). You should get a return packet for each ping you have sent. If not, recheck your network configuration.

    2.1
    Explain your modifications to radvd.conf.
    3 p
    2.2
    Explain one address removal command. 2 p
    2.3
    Analyse captured packets and explain what happens, when you set up the interface.
    5 p
    2.4
    Include the ping commands and their outputs in your report. Use ip addresses for pinging. 2 p