Operating systems described here:
This document doesn't cover setting up DNS info for your machine. For that, around MIT (specifically, for a ipv6.mit.edu name if you already have an mit.edu name), contact D. Jared Dominguez or Ken Raeburn. Outside MIT, you're on your own.
For some operating systems, instructions are included as to how to set up a machine to act as a router for your subnet. Please don't do this on campus without coordinating with us and/or the network group.
If you're using DHCP (for example, in locations on campus where
wireless service is available), you really should go with
autoconfiguration. Manually configuring an IPv6 address on a mobile
node is just as broken as manually configuring an IPv4 address on it.
The OS as shipped will support IPv4-compatible addresses
(::1.2.3.4), but does not support 6to4 tunnels. Unless you're talking
to other IPv4-compatible hosts, don't bother with this.
Autoconfiguration as host seems to work fine. Tunnel/router
configuration?
One possible hitch for some software: If you set up a server
running on IPv4 and IPv6 ports out of inetd, when an IPv4 connection
comes in, applying getsockname and getpeername to the network file
descriptor may give you IPv4-mapped IPv6 addresses (::ffff:1.2.3.4).
While getnameinfo can handle such addresses (and will look up the IPv4
address), a simple equality test against another representation of the
IPv4 address (say, in Kerberos tickets) will fail. The recommended
way of coping is to extract the 4 bytes at offset 12 into the IPv6
address, and construct an IPv4 address to use for comparison. (This
probably isn't AIX-specific, but AIX is the only platform where I've
actually run into the problem so far.)
For Red Hat Linux 7.1 (including Athena 9.0), and Red Hat Linux 9
(including Athena 9.2):
The version of glibc in 7.1 has a bug wherein getaddrinfo may
return not return all of the IPv4 addresses of a host that has more
than one. My only test case has been a machine with two IPv4
addresses listed, and getaddrinfo reliably returns only one of the
addresses.
It looks like /etc/sysconfig/network is generated from
/etc/athena/rc.conf in Athena 9.2, so you may need to fix it after
some updates.
Anyone want to contribute info on setting up a tunnel/router?
The "woody" distribution has a newer glibc that does not have the
getaddrinfo bug present in Red Hat 7.1.
The default is "host", with no configured addresses.
The "gifn" interfaces are the ones to use for IPv6 tunnels.
Under NetBSD 1.5, the "create" ifconfig command should be issued first
to set up the interface, then it can be configured. All this can be
done via the /etc/ifconfig.gifn file:
If you have NetBSD 1.5, the "stf0" interface (not normally built
into the kernel, you'll have to rebuild it) implements 6to4
tunnelling. Currently only one prefix is permitted on the stf0
interface, and only one stf interface is permitted, so you cannot
deploy multiple 6to4 prefixes through a single router even if you have
multiple IPv4 addresses assigned to that router.
We are using NetBSD systems for MIT's IPv6 upstream tunnel endpoint
(also the W20 network router) and the W92 network (18.18) IPv6 router.
Creating an empty /etc/hostname6.$if will cause inet6 to be brought
up for autoconfiguration on interface $if; if the file isn't empty,
"/sbin/ifconfig $if inet6 $line" will be run for each line, so you can
specify addresses or other options. (I'm not sure if
autoconfiguration still happens in that case, or if only the manually
configured addresses are used.)
On booting, the OS will turn on IPv6, and automatically configure
additional interface addresses when it receives router advertisements.
The "ifconfig -a" output looks a little funny, because it lists each
interface once for each address family:
The ifconfig man page talks about automatically adding interface
addresses on receipt of a router advertisement. What it glosses over
is that this only happens because in.ndpd is running, and in.ndpd is
not started at boot time if you don't have any ipv6 interfaces set up.
So if you're just setting up a host to do ipv6, after you bring up the
interface, either start in.ndpd manually, or reboot.
The getaddrinfo routine (the ipv6-enabled, thread-safe follow-on to
gethostbyname) checks the "ipnodes" entry in /etc/nsswitch.conf. You
should have a line like
For more details, see Volume
3 of the Solaris System Administration Guide.
To cause your machine to be an IPv6 router and tunnel endpoint, you
need to set up /etc/inet/ndpd.conf as described in its man page, and
create /etc/hostname6.ip* files as described in the ifconfig man page.
A sample ndpd.conf file:
Windows XP includes IPv6 support as shipped. You have to find the
right options to turn it on. See Microsoft's FAQ
about IPv6 for XP.
Microsoft
Research has some code online for Windows NT 4 and Windows 2000;
they have no plans to support IPv6 on earlier Windows releases.
AIX
AIX has support for IPv6. I had to fight with smit to get it to turn
on. The ifconfig options smit wanted to set didn't match those I
found in documentation. I wound up editing one of the system config
files by hand. I don't know if it's possible to turn on IPv6 through
the smit interface.
Irix
Rumor has it there's some Irix IPv6 support in existence, but it
doesn't seem to be built in to the release Athena is running. I think
you just lose.
Linux
Red Hat Linux 7.1
Debian "woody"
Some support built in, some not. I think there's a site with packages
available. Have to dig up the info....
Mac OS
Mac OS 9??
I have no idea if IPv6 is available for Mac OS 9.
Mac OS X
I'm told Mac OS X ships with IPv6 support. Whether it's turned on by
default, I don't know. I'll update this when I find out.
NetBSD 1.5
NetBSD comes with IPv6 normally built in. You should set "ip6mode" to
indicate how you want the system configured:
inet 18.101.0.225 netmask 0xffffff00 broadcast 18.101.0.255
inet6 3ffe:1ce1:0:65::1:e1 prefixlen 64
create
tunnel 208.59.178.68 18.181.0.38 mtu 1480
inet6 3ffe:1ce1:0:fe30::1 3ffe:1ce1:0:b5::1 prefixlen 48
(Q: Is the "create" line needed? Doesn't the startup script create
the interfaces anyways?)
Palm OS
Just kidding. I haven't a clue whether they're supporting IPv6.
Solaris 8
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 18.18.1.70 netmask ffff0000 broadcast 18.18.255.255
lo0: flags=2000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
inet6 ::1/128
hme0: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
inet6 fe80::a00:20ff:fe9a:26d4/10
hme0:1: flags=2080841<UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2
inet6 3ffe:1ce1:0:12:a00:20ff:fe9a:26d4/64
hme0:2: flags=2080841<UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2
inet6 2002:1212:148:12:a00:20ff:fe9a:26d4/64
The use of additional interface names with ":number" is normal
on Solaris when multiple addresses are assigned to physical
interfaces. I don't know if the numbering sequence is per address
family.
ipnodes: files dns
or getaddrinfo will not return any IPv6 addresses. It looks like IPv4
lookups through getaddrinfo may also respect the order given in the
"ipnodes" line, but if the line isn't present, IPv4 addresses will
still be retrieved (as per the "hosts" line?).
Solaris tunnel endpoint
# in.ndpd configuration for ipv6 router for W92
if hme0 AdvSendAdvertisements on
prefix 3ffe:1ce1:0:12::/64 hme0
# Solaris 8 doesn't support 6to4
#prefix 2002:1212:146:12::/64 hme0
A sample hostname6.ip.tun0 file:
tsrc 18.18.1.70 tdst 18.181.0.38 up
addif 3ffe:1ce1:0:12::1 3ffe:1ce1:0:b5::1 up
You will also need to explicitly set a default route for IPv6 traffic,
to be loaded at boot time. It appears that Solaris expects RIPng to
be used for all routing control, so the startup files don't seem to
have any easy hooks for this. Just create a new startup script in
/etc/init.d and make links to it from the relevant /etc/rc*.d
directories.
In Solaris 9 Update 3 (more recent than what Athena is using in the
9.2.7 test release), support for 6to4 routers has been added. See Chapter
2 of the IPv6 Administrator Guide for details.
Windows
Ken Raeburn,
raeburn@mit.edu
D. Jared Dominguez,
raeburn@mit.edu