IPv6 Internetworking

Created by: Lyndon Pierson.
Contents
  1. Overview
  2. Assignment Instructions
    1. Setup
    2. Tasks
  3. Submission Instructions

Overview

Lab exercise incorporating IPv6.

Assignment Instructions

Setup

    1. If you don't have an account, follow the instructions here.

    2. Create an instance of this exercise by following the instructions here, using ipv6 as Lab name. Your topology will look like below:

      .

    3. After setting up the lab, access your nodes.

Tasks

Always follow your teacher's guidelines around the use of AI. If use of AI is permitted for this exercise submit additional materials as indicated below for the AI-option.

Your task is to enable IPv6 addresses between the nodes in your experiment.

  1. Run:
        ifconfig
      
    on each node, discover and note the interface for each IPv4 address shown in the topology diagram above. Also note the IPv6 address assigned to each interface that you just discovered.
  2. Ping the router from client and server using the link-local addresses and using the interfaces on client and server node that face the router.
    ping6 -I ethx -c 1 fe80::/64 (use the addresses from your experiment)
    
  3. Verify that IPv6 kernel is running on the router, client and server nodes.
    test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
    
  4. Install netplan on router, client and server (use sudo):
    apt update -y
    apt install netplan.io network-manager -y
    
    Edit /etc/netplan/config.yaml file on router, client and server nodes to include script for each interface.

    Note: remember the router has two interfaces; replace ethx and ethy below with the correct ethernet interfaces from your experiment!

    Router node:

    # This file describes the network interfaces available on your system
    # For more information, see netplan(5).
    network:
      version: 2
      renderer: NetworkManager
      ethernets:
        ethx:
          dhcp4: false
          dhcp6: false
          addresses:
              - 5.6.7.2/24
              - 2001:0db8:0100:f101::250/64
        ethy:
          dhcp4: false
          dhcp6: false
          addresses:
              - 1.1.2.2/24
              - 2001:0db8:0100:f102::250/64
    

    Client node:

    # This file describes the network interfaces available on your system
    # For more information, see netplan(5).
    network:
      version: 2
      renderer: NetworkManager
      ethernets:
        ethx:
          dhcp4: false
          dhcp6: false
          gateway6: 2001:0db8:100:f102::2
          addresses:
              - 1.1.2.3/24
              - 2001:0db8:0100:f102::2/64
    

    Server node:

    # This file describes the network interfaces available on your system
    # For more information, see netplan(5).
    network:
      version: 2
      renderer: NetworkManager
      ethernets:
        ethx:
          dhcp4: false
          dhcp6: false
          gateway6: 2001:0db8:100:f101::1
          addresses:
              - 5.6.7.8/24
              - 2001:0db8:0100:f101::1/64
    
    After installing netplan and editing yaml file, apply all settings on router, client and server nodes.
    netplan apply
    
  5. Run ifconfig on router, client and server to see the IPv6 addresses added. Run ip command from router to see the link-local addresses of client and server.
    ip -6 neigh show
    
    /sbin/ip -6 route show dev ethx
    
  6. Configure your router node as a IPv6 router. Enable forwarding by typing:
        sysctl -w net.ipv6.conf.all.forwarding=1
        
  7. Try pinging client from server, using the client's IPv6 address.

    Submission Instructions

    Submit the following, all in one tar-gzipped file
    1. Annotated topology with IPv4 and IPv6 addresses and interface names (e.g., eth1)
    2. Your netplan configuration files
    3. Output of the following command, ran at client node:
          traceroute -6 2001:db8:100:f101::1
          
    AI-option: If you have used AI to find and patch the buffer overflow, you must provide hand-written answers to the following questions. You can write the answers on a piece of paper, take a picture of that paper and then add the picture to your submission, in a separate "AI" folder. Note: you can ask AI to provide answers to the learning questions below.
    1. Which AI you have used? How many tokens did you spend overall? How much time did you spend overall?
    2. How many times did you have to prompt the AI to get the final answer? Did you let it run commands for you or just suggest commands and answers
    3. Submit all your prompts. Prompts do not have to be hand-written. You can copy-paste the prompts and the results into a file called prompts.txt in the "AI" folder.
    4. Learning question: Which command did you run to identify the interfaces that should be IPv6 enabled? Did the command show multiple interfaces? How did you know which one to choose?
    5. Learning question: What does netplan do? Is this routing software?