From Fedora Project Wiki

Revision as of 04:30, 1 June 2011 by Sschmit (talk | contribs) (Added information about how to control the tunnel via ifup/ifdown or start by default.)

Fedora Test Days
World IPv6 Test Day

Date June-08-2011
Time all day

Website http://isoc.org/wp/worldipv6day/
IRC #fedora-test-day (webirc)
Mailing list test


Can't make the date?
If you come to this page before or after the test day is completed, your testing is still valuable, and you can use the information on this page to test, file any bugs you find at Bugzilla, and add your results to the results section. If this page is more than a month old when you arrive here, please check the current schedule and see if a similar but more recent Test Day is planned or has already happened.

What to test?

Since June 8, 2011 is the World IPv6 Day, today's installment of Fedora Test Day will focus on IPv6 testing.

Who's available

The following cast of characters will be available testing, workarounds, bug fixes, and general discussion...

Prerequisite for Test Day

List any prerequisite needs for the test event.

  • An up-to-date Fedora 15 system with IPv6 enabled
  • An internet connection via an ISP who supports IPv6 and an IPv6 address from that ISP, or an IPv6 tunnel broker (see below for instructions on this)

How to test?

Update your machine

If you're running Fedora 15, make sure you have all the current updates for it installed, using the update manager.

Live image

Optionally, you may download a non-destructive Rawhide live image for your architecture. Tips on using a live image are available at FedoraLiveCD. Live images can be found here.

Prepare an IPv6 connection

Native IPv6

  1. Check if your ISP offers native IPv6 connectivity. If so, follow the instructions of your ISP. If not, you are going to need a tunnel broker: see below.

Tunnel Broker via Hurricane Electric

For this example we are going to use http://www.tunnelbroker.net/ by Hurricane Electric but any tunnel broker will work.

  1. Go to http://www.tunnelbroker.net/register.php and fill out the form to create a new account.
  2. Login to your account and click on Create Regular Tunnel.
  3. Enter your public IPv4 address in the IPv4 Endpoint field. To find this address, visit http://www.whatismyip.com (Note: You can change your endpoint address later any time if your address is not 100% static). Select the tunnel server closest to you and click on the Create Tunnel button.
  4. You will be given multiple example scripts to set up the tunnel on your end or you can use the script provided below. (Select OS: linux-route2)
  5. Click on Main Page to find a list of your tunnels at the end. You can modify your tunnel, allocate your own /48 or set up rDNS delegation by clicking on the tunnel.
  6. Feel free to enable forwarding on your tunnel machine and assign addresses from your own /64 or /48 to the machines on your network to provide IPv6 connectivity to your own network.
Example tunnel script

Go to the configuration page of your tunnel (Main Page => Click on your tunnel) to find the settings needed to fill into the sample script below to replace the places where the word CHANGE!!! appears. Then save the script to your home directory or to /usr/local/bin - for example, /usr/local/bin/ipv6-tunnel.sh - and make it executable: chmod ugo+x /usr/local/bin/ipv6-tunnel.sh. Then simply run the script to bring up the IPv6 tunnel.

#!/bin/sh

LOCAL=CHANGE!!!                     # Client Ipv4 address
ADDR=CHANGE!!!                      # Client Ipv6 address
REMOTE=CHANGE!!!                    # Server IPv4 address

ip tunnel del he-ipv6 > /dev/null 2>&1

ip tunnel add he-ipv6 mode sit remote ${REMOTE} local ${LOCAL} ttl 255
ip link set he-ipv6 up

ip addr add ${ADDR} dev he-ipv6
ip route add ::/0 dev he-ipv6

Network configuration file

The tunnel can also be configured like any other physical interface. Once this is done, the tunnel can be started and stopped via ifup/ifdown, and the interface can be configured to start on boot. To do so, use the settings from the script above to create the file, /etc/sysconfig/network-scripts/ifcfg-he-ipv6, as follows:

DEVICE=he-ipv6
TYPE=sit
BOOTPROTO=none
ONBOOT=yes                         # set to "no" if you prefer to start the tunnel manually
IPV6INIT=yes
IPV6TUNNELIPV4=CHANGE!!!           # Server IPv4 address
IPV6ADDR=CHANGE!!!                 # Client IPv6 address

Also, add the following to /etc/sysconfig/network:

IPV6_DEFAULTDEV=he-ipv6

This ensures that IPv6 traffic is sent via the tunnel interface.

To bring up the interface, run ifup he-ipv6. To bring the interface down, run ifdown he-hpv6.

Tunnel Broker via Sixxs.net

For this example, we are going to use http://www.sixxs.net/ which provides tunnels to ISP-hosted servers in several countries.

  1. Request a new account at https://www.sixxs.net/main/ and select "Signup for new users". See https://www.sixxs.net/faq/account/?faq=10steps for further details on creating and configuring your account, and requesting your first tunnel. Account requests are processed manually and may take a few days, so start early.
  2. Install aiccu. sudo yum install aiccu
  3. Configure your /etc/aiccu.conf file with your sixxs.net username, password, and optionally, your tunnel ID as obtained above.
  4. Test your aiccu configuration. sudo /usr/sbin/aiccu autotest
  5. Start aiccu. sudo /sbin/chkconfig aiccu on; sudo /sbin/service aiccu start
  6. If you provide sixxs.net a LinkedIn or Xing profile, you will be given enough credits to request a /48 subnet delegation immediately. Once approved, you may enable forwarding on your tunnel machine and assign addresses from your own /48 to the machines on your network to provide IPv6 connectivity to your own network.
Security
The default firewall will also apply to IPv6 traffic but be aware that if you assigned public addresses to the machines on your network, those machine may now be reachable directly from the outside, whereas before they were inaccessible except via explicit port forwarding from your gateway.

Exploratory testing

  1. ifconfig your interface to make sure your IPv6 address are setup correctly.
  2. ping various external ipv6 websites such as 'ipv6.google.com' to see if you can download the web content through your ipv6 connection
  3. run test program here: http://test-ipv6.com/

Reporting results

Send email to kernel-network-list@redhat.com.

Test Cases

Provide a list of test areas or test cases that you'd like contributors to execute. For other examples, see Category:Test_Cases.

Test Results

Construct a table or list to allow testers to post results. Each column should be a test case or configuration, and each row should consist of test results. Include some instructions on how to report bugs, and any special instructions. Here's an example, from a Palimpsest test day:

If you have problems with any of the tests, report a bug to Bugzilla usually for the component udisks, or gnome-disk-utility for bugs in the Palimpsest graphical front end itself. If you are unsure about exactly how to file the report or what other information to include, just ask on IRC and we will help you. Once you have completed the tests, add your results to the Results table below, following the example results from the first line as a template. The first column should be your name with a link to your User page in the Wiki if you have one, and the second should be a link to the Smolt profile of the system you tested. For each test case, use the result template to enter your result, as shown in the example result line.

User Smolt Profile Sample test 1 Sample test 2 Sample test 3 Sample test 4 References
Sample User HW
none
Pass pass
Warning warn
[1]
Fail fail
[2]
  1. Test pass, but also encountered RHBZ #54321
  2. RHBZ #12345