As a sample IPv6 system for test purposes, we are using Fedora 11, with test instrumentation additions. This does not represent any specific endorsement of that distribution - in fact, we anticipate that it may demonstrate some deficiencies (other than those we deliberately introduce) under testing, particularly in some areas of router and NPD functionality. We mention the distribution used simply for the sake of concreteness.
Similarly for the sake of concreteness, we list the specific package versions we are using:
kernel 22.214.171.124-102 quagga 0.99.12-2 net-snmp 1:126.96.36.199-13 iputils 20071127-8 openssh 5.2p1-2 openssl 0.9.8k-5 httpd 2.2.13-1 dhcpv6 1.2.0-2 dhcpv6-client 1.2.0-2 dnssec-tools 1.5-2 ipsec-tools 0.7.2-1 openswan 2.6.21-5 (not actually used) strongSwan 4.3.5 (non-RPM - not part of Fedora) iptables 1.4.5 (non-RPM - 188.8.131.52-1 is in Fedora 11) snort 184.108.40.206-1 snortSP 3.0.0b3 (non-RPM - not part of Fedora) SeND/CGA TBD (package needs to be generated)
For convenience, at the end of this document is a kickstart file for installing the above-mentioned configuration. It does not include the non-RPM code, which is available from these sources:
For testing purposes, we provide modified versions of several of these packages, which are instrumented to allow selective defects to be introduced into the system at runtime. This can be used to test IPv6 conformance testers - if the conformance testers are properly functioning, they should be able to detect the introduced defects.
In general, the instrumentation is controlled by entries in the /proc filesystem. Changing the value of one of the entries will change the system behavior (at runtime), introducing (or removing) a particular defect that a conformance tester should be able to detect.
Instrumented packages have usgtest.
As an example of how instrumentation works, here is one such
piece of instrumentation already present in the Linux kernel,
and how it may be used for testing:
For Core Conformance test v6LC.2.1.5, Neighbor Solicitation
For a complete list of the current kernel instrumentation,
see the design documentation.
The current instrumented kernel version is 220.127.116.11-102.usgtest.2.fc11.
We provide it in i586, i686 (PAE), x86_64, and source code versions.
Download and installation instructions
are available here. Please be aware that this is very
preliminary code, which is still undergoing testing and debugging.
Expect frequent updates to it over the next few days.
Here is the kickstart file for our test system configuration. For
information on how to use kickstart to direct an installation, see:
Point Of Contact:
Last update: Sun Dec 6 2009.
2a. Instrumentation example
from 3 to 5, and/or change:
from 4 (seconds) to 2. This should have observable results in
part A, steps 3 and 4, and part B, steps 7 and 8.
2b. Instrumented kernel
3. Sample kickstart file
# Kickstart file automatically generated by anaconda.
# This uses DHCP to set up an IPv4 address, for network install.
# If you have a local IPv6 network, with appropriate gateway for
# access to Fedora repositories, you could go straight with
# IPv6 here.
network --device eth0 --bootproto dhcp
# This creates a root password of "usg@ipv6" if you're curious.
# Probably you want your own password, though, so I'll comment
# it out.
#rootpw --iscrypted $6$Ev6r8DiZJsFAWdSL$gSnlcoJuA6c1aUNbDGzmzRgVSXMgr/tVc4qo3itzKwx52aa4vBW7T4If32RpqN00Ywf4bVfZvZ9Au7izNH9v./
# (IPv6) firewall configuration will be set up in detail in NPD testing
authconfig --enableshadow --passalgo=sha512 --enablefingerprint
# Not used for the testing system, though I don't believe selinux
# interferes with testing in any significant fashion, so you can
# probably enable it if you wish.
# Obviously, adjust based on your local circumstances.
timezone --utc America/New_York
# Same here, although sda is a fairly probable choice.
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
# Again, this would have to be adjusted for your specific system
#clearpart --all --drives=sda
#volgroup vg_ipv6tester1 --pesize=4096 pv.lbI9vk-FArc-VOz0-RqRX-Y0SE-NtNC-FhAUJj
#logvol / --fstype=ext4 --name=lv_root --vgname=vg_ipv6tester1 --grow --size=1024
#logvol swap --name=lv_swap --vgname=vg_ipv6tester1 --grow --size=2000 --maxsize=4000
#part /boot --fstype=ext3 --size=200
#part pv.lbI9vk-FArc-VOz0-RqRX-Y0SE-NtNC-FhAUJj --grow --size=1
# The repository urls will obviously need adjustment. In particular,
# this is for a 64-bit system; if yours is 32-bit, change the x86_64
# to i386. Adjust the mirror used based on your location.
repo --name="Fedora 11 - x86_64" --baseurl=http://mirrors.kernel.org/fedora/releases/11/Everything/x86_64/os/
repo --name="Fedora 11 - x86_64 - Updates" --baseurl=http://mirrors.kernel.org/fedora/updates/11/x86_64/
# These are more packages than are strictly necessary, but this is
# a convenience for building additional test tools, etc. If your
# test system is short on disk space, you may wish to edit this.
To return to the IPv6 software distribution main page:
As an example of how instrumentation works, here is one such piece of instrumentation already present in the Linux kernel, and how it may be used for testing:
For Core Conformance test v6LC.2.1.5, Neighbor Solicitation Origination, change:
For a complete list of the current kernel instrumentation, see the design documentation.
The current instrumented kernel version is 18.104.22.168-102.usgtest.2.fc11. We provide it in i586, i686 (PAE), x86_64, and source code versions. Download and installation instructions are available here. Please be aware that this is very preliminary code, which is still undergoing testing and debugging. Expect frequent updates to it over the next few days.
Here is the kickstart file for our test system configuration. For information on how to use kickstart to direct an installation, see:
Point Of Contact:
Last update: Sun Dec 6 2009.