Configuring 6bone Connectivity with Microsoft Research IPv6

January 13, 2000 (Check here for the latest version.)

Actually, the best way to connect to the 6bone is to configure 6to4 and use MSR's 6to4 relay router. See our 6to4 documentation.

Another approach is to use a "tunnel broker" service. The tunnel broker will create a tunnel for you and give you a script that automates your configuration. See www.freenet6.net.

Using either 6to4 or a tunnel broker, you can ping other machines on the 6bone. For example,

ping6 6bone-gw.ipv6.sics.se
ping6 sipper.ipv6.zk3-x.dec.com
ping6 www.6bone.net
ping6 carmen.ipv6.cselt.it
ping6 ipv6.research.microsoft.com
The ipv6.org web site has a list of IPv6-accessible web sites. Also, the 6bone registry contains the names of other 6bone machines.

Note that many 6bone sites may be inaccessible. The 6bone is notoriously flaky. If you experience connectivity problems, the tracert6 -d command may be helpful. (The -d argument says not to perform reverse-DNS lookup on the resulting addresses.) Report problems with 6bone connectivity to the 6bone mailing list, 6bone@isi.edu.

If you want to connect to the 6bone the hard way, the first thing you need is for someone already on the 6bone to setup a tunnel for you. You need to find a contact person for a 6bone site topologically near you, and ask them. The only way I know to do this is by perusing the 6bone registry. See http://www.6bone.net/6bone_hookup.html and ftp://whois.6bone.net/6bone/6bone.db.gz. If you do connect to the 6bone, then you should create the appropriate entries in the 6bone registry to describe your connection. See http://www.6bone.net/RIPE-registry.html.

Once you have a tunnel, there are three things you will know:

  1. The IPv4 address of the 6bone node to which you are connecting.
  2. The IPv4 address of your node, which you are connecting to the 6bone. Your 6bone contact needs to know this, so he can setup the tunnel to you.
  3. The IPv6 address prefix that your 6bone connection has given you.

So to make this concrete, we have a machine connected to the 6bone via NWNET. I am using the following values:

  1. 192.220.249.249 - the IPv4 address of the machine at NWNET.
  2. 131.107.65.121 - the IPv4 address of my 6bone machine here at Microsoft Research.
  3. 3ffe:a00:6::/48 - the address prefix assigned to Microsoft Research by NWNET.

(Note if you tried to use these values, you could set up a tunnel to NWNET, but they wouldn't have a tunnel back to you and so it wouldn't work. You need to get your own values from your own 6bone contact.)

From the address prefix, you derive an IPv6 address to assign to your machine. It's pretty much up to you how you do that, but I like to use the IPv4 address as the interface identifier for tunnels. So continuing the example, my IPv6 address is 3ffe:a00:6::131.107.65.121, which can also be written as 3ffe:a00:6::836b:4179.

Once you have these values, you can use the ipv6.exe command to create a configured tunnel and connect to the 6bone. This requires two commands:

ipv6 rtu ::/0 2/::192.220.249.249 pub life 1800

The ipv6 rtu command performs a routing table update operation. It can be used to add, remove, or update a route. In this case it is establishing a default route to the 6bone.

The ::/0 argument is the route's prefix - the zero-length prefix means it is a default route.

The 2/::192.220.249.249 argument specifies the next-hop neighbor for this prefix. It says to forward packets that match the prefix to address ::192.220.249.249 using interface #2. Interface #2 is the "pseudo-interface" used for configured and automatic tunneling. Forwarding a packet to ::192.220.249.249 causes it to be encapsulated with a v4 header and sent to 192.220.249.249.

The pub argument makes this a published route. This is only relevant for routers, so unless/until routing is enabled it has no effect. Similarly, the 30 minute lifetime is only relevant if routing is enabled.

ipv6 adu 2/3ffe:a00:6::131.107.65.121

The ipv6 adu command performs an address update operation. It can be used to add, remove, or update an address on an interface. In this case it is configuring the machine's 6bone address.

The 2/3ffe:a00:6::131.107.65.121 argument specifies the interface and the address. It says to configure address 3ffe:a00:6::131.107.65.121 on interface #2.

To verify that these commands had the desired effect, try ipv6 if 2 to examine the addresses assigned to interface #2, and try ipv6 rt to examine the routing table.

See our configuration documentation for more information about ipv6.exe.