Ok, I think I've finally gotten to the bottom of this. Here is the message I sent to Hyperoptic support - I'm hoping they can fix it at their end:
Hi there,
OK, I think I now understand what is going on here, and I have a temporary workaround. However, I think it possibly highlights an issue at the Hyperoptic end, and I would like to know what you think. Please could you pass this message onto one of your network engineers?
The problem seems to be with the way the Hyperoptic gateway interprets NDP neighbour advertisements from my third party router. Before the DHCPv6 handshake, the gateway sends an NS to my router, which my router responds to correctly. The NA reply has the 'R' flag set (which is correct, because it is a router and forwards ipv6). I noticed that the stock ZTE router sends its initial NA /without/ the 'R' flag set. I think because my router sets the flag, the Hyperoptic gateway discards my NA, and so cannot communicate with my router. Ping6's to the gateway from my router fail. The workaround is to disable DHCPv6 on my router, and switch to a static IPv6 configuration with just a link-local address while ping6'ing the gateway. This causes my router to send an NA *without* the R flag set, and the Hyperoptic gateway no longer ignores it. I can then successfully ping the gateway!
If I then switch the router back to DHCPv6, it can then successfully complete the DHCPv6 handshake and get allocated its /56. Because the NA is cached, things then continue to work. Is it by design that the Hyperoptic gateways behave in this way?
It would be good if it could be fixed, as the workaround isn't ideal as it requires manual intervention (and I'm also not sure if things will break again when the NA expires, or the Hyperoptic gateway is reset - which is guess what happened when my package was upgraded).
Many thanks
Matt.
Hi there,
OK, I think I now understand what is going on here, and I have a temporary workaround. However, I think it possibly highlights an issue at the Hyperoptic end, and I would like to know what you think. Please could you pass this message onto one of your network engineers?
The problem seems to be with the way the Hyperoptic gateway interprets NDP neighbour advertisements from my third party router. Before the DHCPv6 handshake, the gateway sends an NS to my router, which my router responds to correctly. The NA reply has the 'R' flag set (which is correct, because it is a router and forwards ipv6). I noticed that the stock ZTE router sends its initial NA /without/ the 'R' flag set. I think because my router sets the flag, the Hyperoptic gateway discards my NA, and so cannot communicate with my router. Ping6's to the gateway from my router fail. The workaround is to disable DHCPv6 on my router, and switch to a static IPv6 configuration with just a link-local address while ping6'ing the gateway. This causes my router to send an NA *without* the R flag set, and the Hyperoptic gateway no longer ignores it. I can then successfully ping the gateway!
If I then switch the router back to DHCPv6, it can then successfully complete the DHCPv6 handshake and get allocated its /56. Because the NA is cached, things then continue to work. Is it by design that the Hyperoptic gateways behave in this way?
It would be good if it could be fixed, as the workaround isn't ideal as it requires manual intervention (and I'm also not sure if things will break again when the NA expires, or the Hyperoptic gateway is reset - which is guess what happened when my package was upgraded).
Many thanks
Matt.