On Mon, Nov 28, 2011 at 09:57:06PM -0500, Douglas Maus wrote:
> I could use some help understanding IPv6 autoconfiguration on OpenBSD5.0
> 
> If an OpenBSD system is configured to be an IPv6 host and to use 'rtsol',
> and the network IPv6 router running rtadvd sends a prefix (like 2001:.../64)
> as part of the route advertisements,
> then isn't the host supposed to use the prefix to generate
> an IPv6 address with that 2001: prefix and fill the last 64 bits with
> bits from the ethernet ID / EUI?
> 
> 
> I'm trying to work my way through / debug this, and I'm stumped.
> I'll document what I have checked - please let me know any other
> configurations or responses I should check.
> 
> 
> /etc/hostname.re0   (setup during installation, with rtsol selected)
>  inet 10.0.1.2 255.255.255.0
>  up
>  rtsol
> 
> 
> /etc/sysctl.conf
>  net.inet6.icmp6.rediraccept=1
>  net.inet6.ip6.forwarding=0
>  net.inet6.ip6.accept_rtadv=1
> (although installation set rediraccept to 1, I needed to manually
>  set ip6.forwarding=0 and ip6.accept_rtadv=1 - perhaps this should
>  be fixed in the install script)
> 
> 
> $ ifconfig re0  (sanitized of real EUI)
>  re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
>         lladdr c1:a1:c1:a1:f1:e1
>         priority: 0
>         groups: egress
>         media: Ethernet autoselect (1000baseT
> full-duplex,master,rxpause,txpause)
>         status: active
>         inet 10.0.1.2 netmask 0xffffff00 broadcast 10.0.1.255
>         inet6 fe80::c1a1:c1ff:fea1:f1e1%re0 prefixlen 64 scopeid 0x1
> (note - only the link-local IPv6 address)
> 
> 
> tcpdump of the router advertisement (sanitized),
>  the router is an Apple Airport ExtremeN
>   which advertises the link-local address of the router,
>   and also advertises the prefix for this LAN:
> $tcpdump -v -i re0
>  12:00:00.000000 fe80::c1a1:b1ff:fea1:b1e1 > ff02::1: icmp6: router
> advertisement(chlim=64, O router_ltime=1800, reachable_time=0,
> retrans_time=0)(src lladdr: c1:a1:b1:a1:b1:e1)(prefix info: LA
> valid_ltime=14400, preferred_ltime=3600, prefix=2001:470:dead:beef::/64)[ndp
> opt] (len 80, hlim 255)
> 
> 
> routing table (output of netstat -rn -f inet6, sanitized)
> 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::c1a1:b1ff:fea1:b1e1%re0  UG         0
> 214     -     4 re0
> ::1                                ::1                            UH        14
> 0 33196     4 lo0
> ::127.0.0.0/104                    ::1                            UGRS       0
> 0     -     8 lo0
> ::224.0.0.0/100                    ::1                            UGRS       0
> 0     -     8 lo0
> ::255.0.0.0/104                    ::1                            UGRS       0
> 0     -     8 lo0
> ::ffff:0.0.0.0/96                  ::1                            UGRS       0
> 0     -     8 lo0
> 2001:470:dead:beef::/64            link#1                         UC         0
> 0     -     4 re0
> 2002::/24                          ::1                            UGRS       0
> 0     -     8 lo0
> 2002:7f00::/24                     ::1                            UGRS       0
> 0     -     8 lo0
> 2002:e000::/20                     ::1                            UGRS       0
> 0     -     8 lo0
> 2002:ff00::/24                     ::1                            UGRS       0
> 0     -     8 lo0
> fe80::/10                          ::1                            UGRS       0
> 0     -     8 lo0
> fe80::%re0/64                      link#1                         UC         1
> 0     -     4 re0
> fe80::c1a1:b1ff:fea1:b1e1%re0      c1:a1:b1:a1:b1:e1              UHLc       1
> 7     -     4 re0
> fe80::c1a1:c1ff:fea1:f1e1%re0      c1:a1:c1:a1:f1:e1              HL         1
> 0     -     4 lo0
> fe80::%lo0/64                      fe80::1%lo0                    U          0
> 0     -     4 lo0
> fe80::1%lo0                        link#4                         UHL        0
> 0     -     4 lo0
> fec0::/10                          ::1                            UGRS       0
> 0     -     8 lo0
> ff01::/16                          ::1                            UGRS       0
> 0     -     8 lo0
> ff01::%re0/32                      link#1                         UC         0
> 0     -     4 re0
> ff01::%lo0/32                      fe80::1%lo0                    UC         0
> 0     -     4 lo0
> ff02::/16                          ::1                            UGRS       0
> 0     -     8 lo0
> ff02::%re0/32                      link#1                         UC         0
> 0     -     4 re0
> ff02::%lo0/32                      fe80::1%lo0                    UC         0
> 0     -     4 lo0
> 
> Isn't there supposed to be an IPv6 address like:
>  2001:470:dead:beef:c1a1:c1ff:fea1:f1e1
> 
> I can ping6 my default router:
>  ping6 -I re0 fe80::c1a1:b1ff:fea1:b1e1
> but I cannot ping6 any global addresses
>  ping6 -I re0 2001:4860:800f::68 (ipv6.google.com)
>   results in all packets lost
> 
> 
> I'm left wondering - is it
> (A) some configuration on the OpenBSD 5.0 machine that I'm missing?

Probably, since I'm using IPv6 on OpenBSD for a long time and it
almost always worked for me. 

A few stuff to check:

- you say you modified sysctl.conf, but did you execute the sysctl
command or rebooted to have those changes taken into account ? 
- what does the 'rtsol -d' command report when executed ? (it will
manually trigger a router sollicitation)

> (B) OpenBSD 5.0 not handling the route advertisement prefix?

it should handle it. 

> (C) the Apple Airport-ExtremeN router sending a bad route advertisement and
> prefix?

That may be the case, although I've used other apple Airport devices
with IPv6 successfully in the past. 

But you may have a crappy ethernet switch or hub in the path that
blocks or damages  multicast frames. I've had such a device it the
past. Replacing it by a little more expensive switch fixed my v6 SLAAC
issues. 

-- 
Matthieu Herrb

Reply via email to