Hi All,
Short version: Trying to provide IPv6 connectivity to my LAN via rtadvd.
Something seems amiss in my understanding or configuration handing out an
/80's worth of IP's.
Long version:
My ISP (Comcast) has started an IPv6 trial where their customers can tunnel
ipv6 traffic over ipv4 through Comcast infrastructure for ipv6 connectivity.
We're given a /64 to play with, in my context I have 2001:55c:dead:beef/64
(dead:beef inserted to obscure the innocent). My OpenBSD 4.8 router/fw is
configured with the gif0 interface as 2001:55c:dead:beef::1. This works
great from the openbsd fw itself. I can access ipv6 sites, traceroute6,
ping6, etc etc.
Now I am trying to hand out IPv6 addresses to my local LAN (mix of Linux,
Free/OpenBSD, and OSX boxes) to eventually provide them all with IPv6
connectivity out to the Internet. I figured i would carve out a /16 of
addresses for my home LAN under the subnet 2001:55c:dead:beef:10::/80. I
configured my internal LAN interface's ipv6 address as
2001:55c:dead:beef:10::1/80
ifconfig vr1 (output truncated):
inet6 2001:55c:dead:beef:10::1 prefixlen 80
and set up my rtadvd.conf as the following:
vr1:\
:addr="2001:55c:dead:beef:10::":prefixlen#80:
sysctl settings:
net.inet6.ip6.accept_rtadv=0
net.inet6.ip6.forwarding=1
I fire up rtadvd from the command line on the router/fw and wait.
On the various Linux boxes I have I see this in syslog output:
Dec 8 18:14:15 merlot kernel: [157418.076180] IPv6 addrconf: prefix with
wrong length 80
On another OpenBSD host I have (a VM running on a Linux host), the IPv6 IP
shows up as:
inet6 2001:55c:dead:beef:5054:ff:feb0:6d7a prefixlen 64 autoconf
pltime 604643 vltime 2591843
(notice the 'incorrect' preflixlen)
During this process I was running "tcpdump -i em0 -vv ip6" on the openbsd
client and saw this:
18:11:02.240665 fe80::20d:b9ff:fe1b:b64d > ff02::1: icmp6: router
advertisement(chlim=64, router_ltime=1800, reachable_time=0,
retrans_time=0)(src lladdr: 00:0d:b9:1b:b6:4d)(prefix info: LA
valid_ltime=2592000, preferred_ltime=604800,
prefix=2001:55c:dead:beef:10::/80) (len 56, hlim 255)
18:11:12.513302 truncated-ip6 - 8160 bytes missing!:: > ff02::1: HBH
(rtalert: 0x0000) icmp6: multicast listener query v2 [max resp delay=1000]
[gaddr ::[|icmp6] [hlim 1] (len 8192)
it seems to show the correct advertising subnet and prefix length. The
second log line I am unable to wrap my head around since I am not familiar
with the 8160 bytes that seem to be missing.
Attempting to ping6 the rtadvd-running host from the client produces 100%
packet loss.
On the OpenBSD router/fw I see this when running the same tcpdump on its
internal Interface:
18:18:34.813684 2001:55c:dead:beef:5054:ff:feb0:6d7a > ff02::1:ff00:1:
icmp6: neighbor sol: who has 2001:55c:62d9:41ed:10::1(src lladdr:
52:54:00:b0:6d:7a) (len 32, hlim 255)
But never an icmp6 response.
Running "netstat -rn -f inet6" on the openbsd client host produces:
Internet6:
Destination Gateway Flags
Refs Use Mtu Prio Iface
::/104 ::1 UGRS
0 0 - 8 lo0
::/96 ::1 UGRS
0 0 - 8 lo0
default fe80::20d:b9ff:fe1b:b64d%em0 UG
0 0 - 4 em0
Which seems odd it is showing the link local address of the router/fw
instead of the address I would have expected, the IPv6 address of the router
2001:55c:62d9:41ed:10::1.
At this point, I am completely out of ideas as to how to proceed on serving
IPv6 to my LAN.
Any suggestions regarding my configuration, lack of understanding of IPv6,
or changes in approach are greatly appreciated. I'd love to get this working
and provide documentation for others attempting to do the same thing.
Cheers,
Jeff