NDP implementation is incomplete (Neighbor Unreachability Detection)
Is your feature request related to a problem?
Standard hosts work such as:
01:26:41.989324 IP6 2a09:e206:c1:x> 2a09:e206:c1:ff00::2: ICMP6, neighbor solicitation, who has 2a09:e206:c1:ff00::2, length 32 01:26:41.989358 IP6 2a09:e206:c1:ff00::2 > 2a09:e206:c1:xICMP6, neighbor advertisement, tgt is 2a09:e206:c1:ff00::2, length 24
MetaLB does not respond to it.
" Unlike ARP, Neighbor Discovery detects half-link failures (using Neighbor Unreachability Detection) and avoids sending traffic to neighbors with which two-way connectivity is absent."
Kernel NDP proxy also implements it wrongly (its deprecated), but ndppd is correct.
The workflow with (what seems to be) a Juniper switch
- try multicast/link-local
- add host to table
- try GUA detection after timer expires (30 min)
- no reply on GUA -> drop neighbor from table, kill traffic
- go back to 1)
So every 30 min traffic is dropped for a couple of seconds.
Working reply (link local):
01:27:08.000350 IP6 fe80::eef4:bbff:fed9:c2c4 > fe80::e230:f900:a682:9838: ICMP6, neighbor advertisement, tgt is 2a09:e206:c1:ff00:c::, length 32
Not working reply (GUA):
00:58:57.689847 IP6 2a09:e206:c1:x > 2a09:e206:c1:ff00:c::: ICMP6, neighbor solicitation, who has 2a09:e206:c1:ff00:c::, length 32 00:58:58.689997 IP6 2a09:e206:c1:x > 2a09:e206:c1:ff00:c::: ICMP6, neighbor solicitation, who has 2a09:e206:c1:ff00:c::, length 32 00:58:59.689903 IP6 2a09:e206:c1:x > 2a09:e206:c1:ff00:c::: ICMP6, neighbor solicitation, who has 2a09:e206:c1:ff00:c::, length 32
Describe the solution you'd like
Reply to GUA NDP with GUA.
Additional context
No response
I've read and agree with the following
- I've checked all open and closed issues and my request is not there.
- I've checked all open and closed pull requests and my request is not there.
Source: metallb/metallb