Setting up IPv6 routing on OpenBSD

Setting up IPv6 routing on OpenBSD

Post by Cory C. Albrec » Fri, 21 Jun 2002 08:56:15

Hello all,

OK, I had my little internal mini-LAN doing IPv6 just perfectly until a number
of ISP service outages Monday (26 hours) and today (1 hour) and now I just
can't seem to get things workign again. My physical setup looks like this:

  ISP --> Cable Modem --> (fxp0)OpenBSD box(le0) --> Win2K box

My provider makes me use DHCP, but since the OpenBSD box is running 24/7 in
practice my IPv4 number doesn't change unless there's a connection problem.
After the 26 my internal IPv6 was still working fine, but I don't remember if I
could connect to outside IPv6 hosts.

Now, today, after the 1 outage, I noticed that I couldn't ping6 outside hosts
(but DNS was properly getting the IPv6 addresses sine that was going across
IPv4). So I checked my IPv4 number, changed hostname.gif0, and then I rebooted
the OpenBSD machine. (Don't ask me why I just didn't do "ifconfig gif0..."
commands - I don't know myself. :-( )

So now from the OpenBSD box I can ping6, traceroute6 and telnet to outside IPv6
hosts, but I cannot ping6 the Win2K box. I never touched the Win2K box's
working IPv6 setup, so I doubt that is the problem, but I have been changing
OpenBSD box's IPv6 setup with ifconfig & route, trying as many permutations &
combinations I could think of. All to no avail.

Hopefully everything I've added below will be enough for somebody to tell me
what I forgot to do this time that I must have done last time to get IPv6
working my internal LAN. Thanks in advance.

hostname.gif0 (to the tunnel broker):
up giftunnel
up inet6 2001:470:1F00:FFFF::171 2001:470:1F00:FFFF::170 prefixlen 128 alias

hostname.fxp0 (to the cablemodem):
dhcp media 10baseT mediaopt full-duplex

hostname.le0 (to the Win2K box):
inet 0xffffff00 NONE
inet6 alias 2001:470:1f00:284:2000::1 prefixlen 80

The Win2K box's IPv6 address is  2001:470:1f00:284:2000::2

I thought I hadn't needed to use route to set things up explicitly for IPv6
between the OpenBSD & Win2K boxes, but even so I tried things like

route add -inet6 2001:470:1f00:284:2000::2 2001:470:1f00:284:2000::1


route add -inet6 2001:470:1f00:284:2000:: 2001:470:1f00:284:2000::1


route add -inet6 2001:470:1f00:284:2000:: 2001:470:1f00:284:2000::1
route add -inet6 2001:470:1f00:284:2000::2 2001:470:1f00:284:2000::1

and many others, using route flush -inet6 between every round of changes. I
used ifconfig to remove & add IPv6 addresses from the network cards and to shut
down and bring back up the tunnel link on gif0. I would ping6 the Win2K box
every round to check if teh connection was working.

PING6(56=40+8+8 bytes) 2001:470:1f00:284:2000::1 --> 2001:470:1f00:284:2000::2
32 bytes from 2001:470:1f00:284:2000::2: Neighbor Adverti*t
32 bytes from 2001:470:1f00:284:2000::2: Neighbor Solicitation
32 bytes from 2001:470:1f00:284:2000::2: Neighbor Solicitation
32 bytes from 2001:470:1f00:284:2000::2: Neighbor Solicitation

--- 2001:470:1f00:284:2000::2 ping6 statistics ---
1 packets transmitted, 0 packets received, 100% packet loss

Didn't those neighbour advertisment and solicitation messages mean there
actually was IPv6 communication happening between the 2 machines? And if so,
why couldn't pinging actually occur?

After doing rout flush -inet6 and trying some new route add's, the line from
route show "2001:470:1f00:284:2000::2 0:0:b4:91:c5:76 UH" never appeared until
_after_ doing the ping6 - even if I hadn't added any new routes.

route show -inet6:
Routing tables

Destination      Gateway            Flags
default          2001:470:1f00:ffff::170 UG
::1              ::1                UH
2001:470:1f00:284:1000:: link#1             U
2001:470:1f00:284:1000::1 ::1                UH
2001:470:1f00:284:2000:: link#2             U
2001:470:1f00:284:2000::1 ::1                UH
2001:470:1f00:284:2000::2 0:0:b4:91:c5:76    UH <-- only appears after ping6
2001:470:1f00:284:3000:: link#3             U
2001:470:1f00:284:3000::1 ::1                UH
2001:470:1f00:ffff::170 2001:470:1f00:ffff::171 UH
2001:470:1f00:ffff::171 ::1                UH
fe80::%fxp0      link#1             U
fe80::%le0       link#2             U
fe80::200:b4ff:fe91:c576%le0 0:0:b4:91:c5:76    UH
fe80::%ne0       link#3             U
fe80::%lo0       fe80::1%lo0        U
fe80::%gif0      link#12            U
fe80::204:acff:fe9b:1d39%gif0 ::1                UH
ff01::           ::1                U
ff02::%fxp0      link#1             U
ff02::%le0       link#2             U
ff02::%ne0       link#3             U
ff02::%lo0       fe80::1%lo0        U
ff02::%gif0      link#12            U

ifconfig -a:
lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 32972
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
        inet6 ::1 prefixlen 128
        inet netmask 0xff000000
lo1: flags=8008<LOOPBACK,MULTICAST> mtu 32972
        media: Ethernet 10baseT full-duplex
        status: active
        inet6 fe80::204:acff:fe9b:1d39%fxp0 prefixlen 64 scopeid 0x1
        inet netmask 0xffffff80 broadcast
        inet netmask 0xffffff00 broadcast
        inet6 fe80::1200:5aff:fe5b:48f9%le0 prefixlen 64 scopeid 0x2
        inet6 2001:470:1f00:284:2000::1 prefixlen 80
        media: Ethernet manual
        inet netmask 0xffffff00 broadcast
        inet6 fe80::250:baff:fee2:1030%ne0 prefixlen 64 scopeid 0x3
        inet6 2001:470:1f00:284:3000::1 prefixlen 80
tun0: flags=10<POINTOPOINT> mtu 3000
tun1: flags=10<POINTOPOINT> mtu 3000
enc0: flags=0<> mtu 1536
bridge0: flags=0<> mtu 1500
bridge1: flags=0<> mtu 1500
gre0: flags=8010<POINTOPOINT,MULTICAST> mtu 1450
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
        physical address inet -->
        inet6 fe80::204:acff:fe9b:1d39%gif0 -> :: prefixlen 64 scopeid 0xc
        inet6 2001:470:1f00:ffff::171 -> 2001:470:1f00:ffff::170 prefixlen 128
gif1: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif2: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif3: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

Cory C. Albrecht
Star Trek episdoes! (I need testers for things I add to client sites :-)


1. kernel hangs after setting up Ipv6-ipv6 tunnel

Hi All,

Does anybody have any experience with setting up a IPv6-in-ipv6 tunnel
in linux?

My situation is like this:

I have a tunnel from my homenetwork to a our ipv6 test-network using an
apple airport express.
As that device does not support IPv6 multicast, I want to set up a
IPv6-over-IPv6 tunnel from my linux-box to the Ipv6-router and tunnel
IPv6 multicast traffic over it.

I followed the steps found here (sse linkg below), with the difference
that I set up a tunnel between a linux-box and a cisco-router, and not
between two linux boxes.

On the cisco-side, I set up a standard ipv6-over-ipv6 tunnel, with PIM
configured on it.

On the linux-side, it works OK up to the point where I create the
tunnel, and then do a "ifconfig mytunnel multicast up".
Then the box hangs. :-(

Does anybody have simular experience, and -more interesting to me- also
have a solution?

On the linux-side, I run the ubuntu 8.04.1 with the latest kernel

Cheerio! Kr. Bonne.

2. Which ftp server wu-ftp or proftpd?

3. IPv6 and fec0::/64 network route - why did I have to manually add this route?

4. large files

5. pf: ipv6 route-to (source-based routing)

6. question of udp and select()

7. best place to set-up static routes on OpenBSD; Newbie

8. mgetty only get 9600bps

9. Shape Ups,Men's Shape Ups,Men's Skechers Shape Ups - new styles!

10. IPv6: Miscellaneous clean-ups

11. OpenBSD and IPv6

12. IPv6 address resolver missing in OpenBSD?

13. Disable IPV6 on OpenBSD