• Welcome to Hurricane Electric's IPv6 Tunnel Broker Forums.

CentOS 6; Native IPv6 not working via PPP

Started by fukawi2, December 31, 2011, 02:20:34 PM

Previous topic - Next topic

fukawi2

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.

fukawi2

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.

kcochran

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.

fukawi2

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.