Archer C7 v4.0 - ipv6: no RA icmp packets - (Firmware: 1.0.7 Build 20180425 rel.62587(4555))

This thread has been locked for further replies. You can start a new thread to share your ideas or ask questions.

Archer C7 v4.0 - ipv6: no RA icmp packets - (Firmware: 1.0.7 Build 20180425 rel.62587(4555))

This thread has been locked for further replies. You can start a new thread to share your ideas or ask questions.
Archer C7 v4.0 - ipv6: no RA icmp packets - (Firmware: 1.0.7 Build 20180425 rel.62587(4555))
Archer C7 v4.0 - ipv6: no RA icmp packets - (Firmware: 1.0.7 Build 20180425 rel.62587(4555))
2018-07-08 18:15:45
Model : Archer C7

Hardware Version : v4.0

Firmware Version : 1.0.7 Build 20180425 rel.62587(4555)

ISP : http://digi.hu/

Symptom:
- Router does not sends RA packets, not even after client's RS packets - therefore ipv6 connected devices does not get a global address.
- Sometimes however it works correctly after restart, but not for long.
- Sometimes it even sends out a few packed without restart. (2-3 times a day.)

Configuration must be ok, because in rare occasions it works as expected, so this is clearly not a configuration problem.
The only abnormality is a yellow triangle exclamation sign beside the Internet icon in Advanced/Status/Internet/IPv6 section in router's Web-based configuration utility.

I have a few questions:

- How can I get information about what that yellow sign tries to warn me about? (There is no associated entry in the system's log.)
- Has anybody else experience the same symptom?
- What next? What to check?...

-----------------------------------------
Addendum for ipv6 novices (the fundamentals to understand what is this thread is about):

- RA (Router Advertisement) broadcast icmp packets are sent out by routers regularly, usually around every 10 seconds. They mean "Hey! I am here, and I am a router! I can give you a global ipv6 address! Use me!"
- RS (Router Solicitation) broadcast icmp messages are sent out by client machines (PC, mobile phone, table, etc..) when they boot up and try to get an ipv6 address. They mean "Is there a router here?"
- Link-local ipv6 addresses (the ones start with "fe80::...") are always set by a client automatically, they are random ipv6 addresses, usable only on one local network segment only. They are very much like the 169.254.x.x IPv4 address a machine gets when it is configured to use DHCP but cannot find a DHCP server, except they can't be used for grater scope than "two ends of a single wire".
Interesting fact: because these addresses valid only for a "single wire", it is theoretically possible to have the same value over several computers connected to you if you have multiple network cards in your computer. Therefore if you ping such an ip address, you always have to specify which interface (card) to use. You can add eg. %eth0 (linux) or %2 (windows) at the end of the ip address.
If you want a "192.168.x.x" type address, you are free to assign one (or more) in the fd00::/8 range to your network card any time.Read: https://en.wikipedia.org/wiki/IPv6_address#Unicast (Actually, use something like fd00::1/64 for example, prefix length is ALWAYS 64 bit in ipv6 and it identifies the network, the resulting 64 bit identifies a host in that network. "Masks" other than "/64" have special meaning, they refer to "groups of networks" and not really useful for an ordinary user. If you set an ipv6 address to a network card with other than "/64" be prepared to mess up the routing table. ;) )
Note: It is completely normal in ipv6 for a network interface (network card) to have multiple ipv6 addresses. One of them is always a link-local address, so a computer can use it to communicate over their immediate network neighbour(s), this way it can find a router.
- Global addresses (the ones start with a "2") are presented to your home machines by your router. These are the addresses you can use to communicate over Internet.These addresses can be used world-wide (global scope), because - believe it or not - they are unique in the whole world.
Interesting fact: your ISP does not serves a single IP address to your router, but an IP range. A huge one, actually. By IPv6 specification, one always gets at least an IP range of 64 bits, only the upper 64 bits of any particular ipv6 address is "important" to the internet infrastructure, the lower part is free to randomly selected by computers on their own. This is why an ipv6 based local network is happy without any DHCP server: every computer chooses the lower 64 bits randomly on its own. Only the upper part (aka the "prefix") is sent by the router.
Chances of IP conflict are initially rare, but clients even broadcast a message before selecting a random number to check whether it is occupied by others, so no conflict can occur. the resulting IP address can be used world-wide without the need of NAT. So your router does not even have to has a global ipv6 address of its own, it can simply route the ipv6 traffic to your LAN... This random "DHCP-less" configuration mechanism is called SLAAC by the way. ( https://howdoesinternetwork.com/2013/slaac)
- There is one more thing: one might need some additional information than ipv6 address prefix to use, for example DNS server names to use. So even the ip address is selected randomly (again: only the lower 64 bits) and not sent by a DHCP server, a DNS information can be retrieved by contacting a DHCP server. This mode is called "SLAAS+stateless DHCP". And there is also another method, a DHCP replacement called RDNSS...
For a client to help to choose which config option to use, there are flags in the RA packet. (See: https://blog.ipspace.net/2012/11/ipv6-router-advertisements-deep-dive.html)

So what my problem really is (as described at the top), that my clients can not acquire a global ipv6 address, because they an not find the router at all. All because the lack of the most important information in ipv6 communication - the RA packet sent by the router.

This should be the normal case when a client searches for a router (using its link-local address to broadcast):
http://www.sharetechnote.com/html/IP_Network_IPv6.html#Router_Discovery
  0      
  0      
#1
Options
2 Reply
Update...
2018-07-10 03:41:53
On second thought, the problem might not be with the router at all. I've studied one of the ipv6 specifications: "Neighbor Discovery for IP version 6 (IPv6)" ( https://tools.ietf.org/html/rfc4861) specifically section 6.2-6.3 and found out that RA messages has a life span. After that lifespan expires, the information that the router sent becomes deprecated, and host machines should not use it. And because the router acts like a host from the point of view of the ISP, if the ISP "forgets" to send unsolicited RA packets after the initial RS/RA, the router may treat itself as offline from ipv6 network and stops sending RA packets itself too. (Because there is no reliable information what to put in those packets...) This would totally explain the yellow exclamation mark triangle on the status page...
Currently this is just a theory, I can't be sure until I investigated the communication between the ISP and the router. I've ordered a manageable network switch, which I will configure to mirror the WAN port of the router and will check the communication on the WAN. ("Mirroring" is the terminology used in switch communication when one port is configured to repeat the (incoming/outgoing or both) communication on another port.)
I will update this thread with my experiences.
  0  
  0  
#2
Options
Re:Archer C7 v4.0 - ipv6: no RA icmp packets - (Firmware: 1.0.7 Build 20180425 rel.62587(4555))
2018-07-14 01:45:36
Okay, here's what I've found.

The connection to digi.hu is PPPoE. I've configured a Linux box to PPPoE to the ISP and WireSharked the network traffic on ppp0, while issued an rdisc6 command. (Sent out RS packets "manually".)
The ISP didn't respond. Okay, this possibly means they do not support SLAAC, only DHCP. So I've set the router to use DHCP6. ("Automatic" setting didn't work at all!)
After a reboot, the router now always got a global ipv6 address from the ISP, but the problem still exist: sometimes it does not send out RA packets, not even after RS packets. (Thus client machines can't get global ipv6 addresses.)
Funny thing is: if I go to the router's web administrator utility and disconnect/connect the ipv6, after the first or second try it starts working...
Sometimes it works even after a turn off/on or reset immediately.

So the exact problem:
The router configured:
- to use pppoe
- uses the same pppoe session for ipv6 as for ipv4
- dhcp6 mode is selected
Symptom:
After power on (or reboot), everything looks okay on the status screen (global ipv6 address shows up, the DNS addresses got from ISP are shown), but a yellow exclamation mark triangle is shown beside the Internet globe on ipv6 tab and the router does not send RA packets. Sometimes it works without flaw. (However, the yellow triangle is always there.)
Workaround:
In the Advanced/IPV6 menu, a disconnect/connect one or two times usually solves the problem.
Suggested solution:
1) The router SHOULD log the reason why the yellow triangle is there and why it does not sends out RA packets. (The cause of unreliable behavior.)
2) The router MUST retry the DHCP6 request periodically if it finds that there is a problem with it, and failed to set up itself correctly. And log it!
3) In "Automatic" setting mode the router MUST try to set up DHCP6 periodically also until it succeeds.
  0  
  0  
#3
Options