Hi all,
My ISP provides native IPv6 on my ADSL connection. I'm trying to get it working, but with not much luck.
I have a CentOS 6 gateway which handles PPP. My modem is just in bridge mode:
ISP => ADSL => Modem (Bridged) => CentOS (ppp) => LAN and DMZ
I appear to have everything setup correctly; PPP negotiates the link-local addresses on the ppp interface (I can ping6 the remote LL address). I have manually assigned IP Addresses from my /56 allocated pool (which I am confirmed is the correct /56):
# ip6 a s ppp200
9: ppp200: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qlen 3
inet6 2001:44b8:4121:1f00::1/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::7595:2c0b:fd29:df4c/10 scope link
valid_lft forever preferred_lft forever
I have a default route set via my PPP interface:
# ip -6 r s
unreachable ::/96 dev lo metric 1024 error -101 mtu 16436 advmss 16376 hoplimit 0
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -101 mtu 16436 advmss 16376 hoplimit 0
2001:44b8:4121:1f00::1 dev ppp200 proto kernel metric 256 mtu 1492 advmss 1432 hoplimit 0
2001:44b8:4121:1f01::/64 dev bond0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
2001:44b8:4121:1f10::/64 dev bond0.100 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
2001:44b8:4121:1f30::/64 dev bond0.300 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
unreachable 2002:a00::/24 dev lo metric 1024 error -101 mtu 16436 advmss 16376 hoplimit 0
unreachable 2002:7f00::/24 dev lo metric 1024 error -101 mtu 16436 advmss 16376 hoplimit 0
unreachable 2002:a9fe::/32 dev lo metric 1024 error -101 mtu 16436 advmss 16376 hoplimit 0
unreachable 2002:ac10::/28 dev lo metric 1024 error -101 mtu 16436 advmss 16376 hoplimit 0
unreachable 2002:c0a8::/32 dev lo metric 1024 error -101 mtu 16436 advmss 16376 hoplimit 0
unreachable 2002:e000::/19 dev lo metric 1024 error -101 mtu 16436 advmss 16376 hoplimit 0
unreachable 3ffe:ffff::/32 dev lo metric 1024 error -101 mtu 16436 advmss 16376 hoplimit 0
fe80::/64 dev bond0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev bond0.100 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev bond0.300 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev ppp200 proto kernel metric 256 mtu 1492 advmss 1432 hoplimit 0
fe80::/10 dev ppp200 metric 1 mtu 1492 advmss 1432 hoplimit 0
fe80::/10 dev ppp200 proto kernel metric 256 mtu 1492 advmss 1432 hoplimit 0
default dev ppp200 metric 1 mtu 1492 advmss 1432 hoplimit 0
But nothing works :(
# !ping6 ipv6.internode.on.net
PING ipv6.internode.on.net(2001:44b8:8020:f501:250:56ff:feb3:6633) 56 data bytes
^C
--- ipv6.internode.on.net ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2614ms
tcpdump shows traffic entering the PPP tunnel, but it seems to just be a black hole.
# tcpdump -lnnvv -i ppp200 ip6 or proto ipv6
tcpdump: listening on ppp200, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
09:16:40.750134 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 64) 2001:44b8:4121:1f00::1 > 2001:44b8:8020:f501:250:56ff:feb3:6633: [icmp6 sum ok] ICMP6, echo request, length 64, seq 1
09:16:41.750183 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 64) 2001:44b8:4121:1f00::1 > 2001:44b8:8020:f501:250:56ff:feb3:6633: [icmp6 sum ok] ICMP6, echo request, length 64, seq 2
09:16:42.750178 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 64) 2001:44b8:4121:1f00::1 > 2001:44b8:8020:f501:250:56ff:feb3:6633: [icmp6 sum ok] ICMP6, echo request, length 64, seq 3
09:16:43.750177 IP6 (hlim 64, next-header ICMPv6 (58) payload length: 64) 2001:44b8:4121:1f00::1 > 2001:44b8:8020:f501:250:56ff:feb3:6633: [icmp6 sum ok] ICMP6, echo request, length 64, seq 4
The most frustrating part is that it DID work at one stage; I rebooted the CentOS box to make sure it was right and I haven't been able to get it to go again since.
Well I'm glad I'm not the only one who is stumped by this....
Quick update though....
After running a tcpdump on my PPP connection for quite a while last night, I received an RA from the ISP advertising a totally different /64 prefix than the one they advised me via phone/sms/email. After assigning an address from the advertised prefix to my PPP interface, I appear to be able to use IPv6.... Waiting to hear back from my ISP for their explanation.
The differing block may be a policy change on their side. The receipt of only a link-layer address on PPP is expected, since RA is supposed to be used to handle any additional dynamic addressing on a PPP link. They opted to not add an extension to IPCP to define anything more than the LLs.
Latest update...
The PPP tunnel uses a dynamic /64, which is the RA I saw in the traffic dump. I *have* to use DHCPv6 to request a lease of the static /56; this is the only way their network knows where to route the /56 otherwise it gets null routed to Los Angeles (from Australia!) in an aggregate BGP route.
So, basically I'm screwed since CentOS (and therefore RedHat) only includes one DHCP package (ISC), and it doesn't support DHCPv6 on PPP links (no hardware address).
I'm manually compiling dibbler to test, but I think I might move my gateway over to Debian.