Hi,
after a couple of days of running into dead ends, I would appreciate some help. To summarize: For more than 3 years I'm successfully running OpenBSD (it's now at OPENBSD_4_9/i386, running GENERIC.MP) at the German hoster Hetzner as my expensive little plaything. They offer native IPv6 for some time now, and I want to use it. However, the same methodology used with IPv4 does not work with IPv6 and I just can't figure out why (it's supposed to work identically.) The working IPv4 setup: Additional network is 78.47.124.160/29, the gateway is 78.46.41.129/27. In /etc/hostname.re0 is the aliases and the route to the gateway of that network: inet alias 78.47.124.161 255.255.255.248 78.47.124.167 [...] !route add -inet -iface -ifp re0 -net 78.46.41.128 78.46.41.129 -netmask 255.255.255.224 I set the default gateway 78.46.41.129 in the first line of /etc/mygate. This works: $ ping -I 78.47.124.161 www.google.com PING www.l.google.com (74.125.77.147): 56 data bytes 64 bytes from 74.125.77.147: icmp_seq=0 ttl=56 time=16.943 ms [...] The IPv6 setup (broken): The IPv6 network is supposed to be 2a01:4f8:110:4363::/64, the gateway is 2a01:4f8:110:4360::1/59. So again there's the aliases in /etc/hostname.re0 ... [...] inet6 alias 2a01:4f8:110:4363::42 64 [...] !route add -inet6 -iface -ifp re0 -net 2a01:4f8:110:4360:: -prefixlen 59 2a01:4f8:110:4360::1 The second line in /etc/mygate sets the IPv6 default gateway 2a01:4f8:110:4360::1. This does not work: $ ping6 ipv6.google.com PING6(56=40+8+8 bytes) 2a01:4f8:110:4363::42 --> 2a00:1450:8005::68 ping6: sendmsg: No route to host ping6: wrote ipv6.l.google.com 16 chars, ret=-1 A look at the routing table shows various differences between IPv4 and IPv6. Again, the working IPv4 entries first: default 78.46.41.129 UGS 19 6792145 - 8 re0 78.46.41.128/27 link#1 UC 2 0 - 4 re0 78.46.41.128/27 link#1 UCS 0 0 - 8 re0 78.46.41.129 00:26:88:76:21:1b UHLc 1 0 - 4 re0 78.46.41.142 00:1d:92:39:57:54 UHLc 0 6 - 4 lo0 78.47.124.160/29 link#1 UC 0 0 - 4 re0 78.47.124.161 127.0.0.1 UGHS 0 97 33200 8 lo0 (.142 is the main IP of mrsserver.net) As can be seen, everything resolves nicely ... by comparison, IPv6 looks fubar'd: default 2a01:4f8:110:4360::1 UGS 0 11 - 8 re0 2a01:4f8:110:4360::/59 2a01:4f8:110:4360::1 US 1 0 - 8 re0 2a01:4f8:110:4363::/64 link#1 UC 0 0 - 4 re0 2a01:4f8:110:4363::42 00:1d:92:39:57:54 HL 0 0 - 4 lo0 That's it, nothing else from these networks, and the local host route for ::42 isn't even (U)p. ndp -a shows: Neighbor Linklayer Address Netif Expire S Flags 2a01:4f8:110:4363::42 0:1d:92:39:57:54 re0 permanent R fe80::21d:92ff:fe39:5754%re0 0:1d:92:39:57:54 re0 permanent R fe80::1%lo0 (incomplete) lo0 permanent R I tried to use ndp -I to set the default IPv6 interface to re0, but what that does is change the behavior of ping6 from EHOSTUNREACH to 100% packet loss. After doing so, the gateway shows up in ndp: 2a01:4f8:110:4360::1 (incomplete) re0 permanent I ... and that's as far as I have come. I also tried to solicit router information after setting net.inet6.ip6.accept_rtadv to 1, but there's nothing like that on the wire. I have to do manual configuration. Lastly, the host's pf.conf is family-agnostic in almost all parts (and the two remaining places have been triple-checked.) It's also creating state for all outgoing traffic, so it really shouldn't interfere. What I haven't pursued, yet, is that Hetzner configured my network wrong. This is hard to believe, though, as getting an IPv6 subnet from them is 100% automated and a problem would probably affect all their customers. I'm stumped. What have I missed? Any and all help is greatly appreciated! Thanks, Moritz