-
Notifications
You must be signed in to change notification settings - Fork 56
Description
Having 2 Network interfaces connected to 2 different networks which are not interconnected in any way. I can observe duplication of IPv6 addresses with the scope_id of the other network where the addresses cannot actually be reached.
Query example for _http._tcp
At 348.62µs: SearchStarted("_http._tcp.local. on 6 interfaces [fe80::3236:543d:a120:72e5 (wlp13s0), 192.168.179.7 (wlp13s0), 192.168.178.53 (enp12s0), 2003:e8:bf13:1300:a491:e24f:acbf:68c3 (enp12s0), fe80::b7a:957b:f7e1:9b0e (enp12s0), 2003:e8:bf13:1301:e1f1:dd6c:fb10:b831 (wlp13s0)]")
At 70.418189ms: ServiceFound("_http._tcp.local.", "Denon AVR-X1400H._http._tcp.local.")
At 70.433569ms: Resolved a new service: Denon AVR-X1400H._http._tcp.local.
host: Denon-AVR-X1400H.local.
port: 80
Address: 2003:e8:bf13:1300:205:cdff:fea5:86b0%2
Address: fe80::205:cdff:fea5:86b0%2
Address: 192.168.178.21
Property: path=/settings/
At 70.461459ms: Resolved a new service: Denon AVR-X1400H._http._tcp.local.
host: Denon-AVR-X1400H.local.
port: 80
Address: fe80::205:cdff:fea5:86b0%3
Address: 2003:e8:bf13:1300:205:cdff:fea5:86b0%2
Address: fe80::205:cdff:fea5:86b0%2
Address: 192.168.178.21
Address: 2003:e8:bf13:1300:205:cdff:fea5:86b0%3
Property: path=/settings/
At 332.554357ms: ServiceFound("_http._tcp.local.", "Tibber Bridge Web Server._http._tcp.local.")
At 332.567917ms: Resolved a new service: Tibber Bridge Web Server._http._tcp.local.
host: Bridge20c228000.local.
port: 80
Address: 192.168.178.33
At 332.574957ms: Resolved a new service: Tibber Bridge Web Server._http._tcp.local.
host: Bridge20c228000.local.
port: 80
Address: 192.168.178.33
What's also strange, if one disables WiFi one can only observe one resolve of each instance, in the example before we can could observe 2 for each:
At 280.27µs: SearchStarted("_http._tcp.local. on 3 interfaces [fe80::b7a:957b:f7e1:9b0e (enp12s0), 192.168.178.53 (enp12s0), 2003:e8:bf13:1300:a491:e24f:acbf:68c3 (enp12s0)]")
At 44.121358ms: ServiceFound("_http._tcp.local.", "Denon AVR-X1400H._http._tcp.local.")
At 44.137018ms: Resolved a new service: Denon AVR-X1400H._http._tcp.local.
host: Denon-AVR-X1400H.local.
port: 80
Address: fe80::205:cdff:fea5:86b0%2
Address: 192.168.178.21
Address: 2003:e8:bf13:1300:205:cdff:fea5:86b0%2
Property: path=/settings/
At 712.481579ms: ServiceFound("_http._tcp.local.", "Tibber Bridge Web Server._http._tcp.local.")
At 712.507919ms: Resolved a new service: Tibber Bridge Web Server._http._tcp.local.
host: Bridge20c228000.local.
port: 80
Address: 192.168.178.33
From the output addresses i can only ping link local IPv6 addresses with the interface index 2, not 3.
Ping using index 3 (wlp13s0) which is connected to a guest WiFi:
ping fe80::205:cdff:fea5:86b0%3
PING fe80::205:cdff:fea5:86b0%3 (fe80::205:cdff:fea5:86b0%wlp13s0) 56 data bytes
From fe80::3236:543d:a120:72e5%wlp13s0 icmp_seq=1 Destination unreachable: Address unreachable
From fe80::3236:543d:a120:72e5%wlp13s0 icmp_seq=2 Destination unreachable: Address unreachable
From fe80::3236:543d:a120:72e5%wlp13s0 icmp_seq=3 Destination unreachable: Address unreachable
Ping using index 2(enp12s0):
ping fe80::205:cdff:fea5:86b0%2
PING fe80::205:cdff:fea5:86b0%2 (fe80::205:cdff:fea5:86b0%enp12s0) 56 data bytes
64 bytes from fe80::205:cdff:fea5:86b0%enp12s0: icmp_seq=1 ttl=255 time=0.864 ms
64 bytes from fe80::205:cdff:fea5:86b0%enp12s0: icmp_seq=2 ttl=255 time=0.384 ms
64 bytes from fe80::205:cdff:fea5:86b0%enp12s0: icmp_seq=3 ttl=255 time=0.390 ms
Output of ip addr show:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host proto kernel_lo
valid_lft forever preferred_lft forever
2: enp12s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether d8:43:ae:b3:ea:97 brd ff:ff:ff:ff:ff:ff
inet 192.168.178.53/24 brd 192.168.178.255 scope global dynamic noprefixroute enp12s0
valid_lft 860430sec preferred_lft 860430sec
inet6 2003:e8:bf13:1300:a491:e24f:acbf:68c3/64 scope global dynamic noprefixroute
valid_lft 6861sec preferred_lft 1461sec
inet6 fe80::b7a:957b:f7e1:9b0e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wlp13s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 58:cd:c9:86:54:1f brd ff:ff:ff:ff:ff:ff
inet 192.168.179.7/24 brd 192.168.179.255 scope global dynamic noprefixroute wlp13s0
valid_lft 21149sec preferred_lft 21149sec
inet6 2003:e8:bf13:1301:e1f1:dd6c:fb10:b831/64 scope global dynamic noprefixroute
valid_lft 6862sec preferred_lft 1461sec
inet6 fe80::3236:543d:a120:72e5/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:cb:66:f6 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 6e:03:f8:11:28:dd brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
The issue was probably hidden behind the HashSet<IpAddr> previously and not noticeable, but now we use HashSet<HostIp> which exposes the issue.