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 2.6.30.9-102 quagga 0.99.12-2 net-snmp 1:5.4.2.1-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 - 1.4.3.1-1 is in Fedora 11) snort 2.8.5.1-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
Origination, change:
For a complete list of the current kernel instrumentation,
see the design documentation.
The current instrumented kernel version is 2.6.30.9-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.
kernel-2.6.30.9-102.usgtest.2.fc11
2a. Instrumentation example
/proc/sys/net/ipv6/conf/all/router_solicitations
from 3 to 5, and/or change:
/proc/sys/net/ipv6/conf/all/router_solicitation_interval
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
http://fedoraproject.org/wiki/Anaconda/Kickstart
==================================================================
# Kickstart file automatically generated by anaconda.
#version=F11
install
cdrom
lang en_US.UTF-8
keyboard us
# 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
firewall --service=ssh
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.
selinux --disabled
# 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
# configuration.
#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.
%packages
@admin-tools
@base
@core
@dns-server
@development-libs
@development-tools
@editors
@ftp-server
@fonts
@gnome-desktop
@gnome-software-development
@games
@graphical-internet
@graphics
@hardware-support
@input-methods
@java
@java-development
@mail-server
@network-server
@office
@online-docs
@perl
@printing
@ruby
@server-cfg
@sound-and-video
@system-tools
@text-internet
@web-development
@web-server
@x-software-development
@base-x
xfsprogs
mtools
gpgme
gpm
pax
gnupg2
tcsh
aspell
bind
libusb-devel
expect
lua
cpan-upload
perltidy
openoffice.org-opensymbol-fonts
gvfs-obexftp
gnome-vfs2-devel
libsigc++20-devel
libart_lgpl-devel
gnuchess
thunderbird
ImageMagick
dcraw
netpbm-progs
gypsy
hdparm
m17n-db-tamil
m17n-db-gujarati
m17n-db-kannada
m17n-db-hindi
gok
m17n-db-oriya
m17n-db-bengali
m17n-contrib-sinhala
m17n-db-assamese
m17n-db-punjabi
iok
m17n-db-telugu
m17n-db-malayalam
pmd
dhcp
radvd
quagga
dhcpv6
dnsmasq
openswan
jack-audio-connection-kit
vbetool
gssdp
geoclue
createrepo
radeontool
nmap-frontend
net-snmp-utils
snort
wireshark-gnome
iptraf
festival
ntpdate
ip6sic
gupnp
fuse
vnstat
iperf
tin
lynx
alpine
tftp
rubygem-rails
velocity
mesa-libGLU-devel
gdm
-padauk-fonts
dhcpv6
dhcpv6-client
dnssec-tools
To return to the IPv6 software distribution main page:
https://www-x.antd.nist.gov/ipv6
webmaster@antd.nist.gov