Bug in DHCPv6 in 25.1.1?

Started by SerErris, February 19, 2025, 02:08:19 PM

Previous topic - Next topic
Hi,

I am not sure if we have a bug in DHCPv6 or if that is intended.

If you do not enter a range in DHCPv6 and enable it, it will save the configuration and display in OPNsense GUI, however the DHCPv6 server will not work.

You can test it by entering a manual DNS entry and then save it. Save will work correctly, but it will never get delivered to DHCPv6 client. And if you disable RA at the same time, then you will not get any IPv6 information on your client.

Tested on Windows:
DHCPv6 no Range + manual DNS server entry and enable, RA disabled.

This is how the interface looks like after reset and configuration as above:
Ethernet adapter Ethernet 4:

   Connection-specific DNS Suffix  . : home.local
   Link-local IPv6 Address . . . . . : fe80::c786:8cfd:d5e1:1dbf%6
   IPv4 Address. . . . . . . . . . . : 192.168.0.179
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.1

And this is if you setup a Range in DHCPv6:
Ethernet adapter Ethernet 4:

   Connection-specific DNS Suffix  . : home.local
   Description . . . . . . . . . . . : Realtek PCIe GbE Family Controller
   Physical Address. . . . . . . . . : D8-BB-C1-36-5E-49
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2003:xxxx:xxxx:xxxx::e8a7:6ece(Preferred)
   Lease Obtained. . . . . . . . . . : Mittwoch, 19. Februar 2025 14:07:16
   Lease Expires . . . . . . . . . . : Mittwoch, 19. Februar 2025 16:07:16
   Link-local IPv6 Address . . . . . : fe80::c786:8cfd:d5e1:1dbf%6(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.0.179(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Mittwoch, 19. Februar 2025 14:05:39
   Lease Expires . . . . . . . . . . : Mittwoch, 19. Februar 2025 16:05:39
   Default Gateway . . . . . . . . . : 192.168.0.1
   DHCP Server . . . . . . . . . . . : 192.168.0.1
   DHCPv6 IAID . . . . . . . . . . . : 131644353
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-28-C2-F1-61-D8-BB-C1-36-5E-48
   DNS Servers . . . . . . . . . . . : fe80::6662:66ff:fe21:b957%6
                                       192.168.0.1
   NetBIOS over Tcpip. . . . . . . . : Enabled
   Connection-specific DNS Suffix Search List :
                                       lab.local

So the second output is how it is supposed to be with no range entered?

This is either a bug, or not described correctly. I would assume you should be able to leave it blank (and get full size range automatically) or you should get an error message if it is not possible to leave blank.


Quote from: SerErris on February 19, 2025, 02:08:19 PMAnd if you disable RA at the same time, then you will not get any IPv6 information on your client.
I think this part is expected.  RAs are what carry all the needed information to the client so that it can configure itself.  Without RAs I believe you are limited to static configuration on the client and link-local addressing.

If the range is left blank, it means no addresses are available for "dynamic" leases. You could still use static mappings, or/and options for "Stateless DHCPv6". The RA mode is key here too. You didn't specify what you have that set to?

It does not really make any difference to RA mode settings. DHCPv6 only works at all if you have a Range entered. As soon as no range is entered, it does not work at all.

I tried with RA modes disabled, stateless and assisted, which all should work with DHCPv6 and do different things for SLAAC but that is not relevant to this part here.

So shouldnt be there an error message if I enable DHCPv6 and enter no range? This should not be possible, because the result is in any configuration that you do not get anything delivered from DHCPv6. Only RA is giving out information.

The reason I discovered that was this thread:
https://forum.opnsense.org/index.php?topic=45868.0

So I had issues with DNS settings on a Windows client with IPv6. I then followed advise from meyergru and used this howto:
https://forum.opnsense.org/index.php?topic=45822.0

And this finally lead to finding out, that DHCPv6 server does not work at all if you do not enter a range (valid of cause). So I am still not sure if that is something very obvious, or if it is something the GUI should capture and error out on save if you enable DHCPv6 AND do not enter a range.

For me it would be logical if it would be handled like any other field, that if you do not enter a range the default is applied (in this case like if you do not use manual override it would use the full available range). However it does not in this case. So if this field is mandatory, there should be error checking on it.

Looking at the offical documentation for DHCP, this is the official wording:
QuoteUsing DHCPv6
When IPv6 addresses should be provisioned over DHCPv6 the Services‣ ISC DHCPv6 ‣[Interface] is the place to look at. Like in the IPv4 scenario, you can provide a range here, offer settings like default DNS servers and create static assignments based on the clients unique DHCP identifier (DUID).

So that is where it says "you can provide a range" not "you must provide a range". So either documentation is wrong or this is not working as expected.

AGAIN, if you do not specify a range, no addresses will be available for dynamic leases. That does not equate to "does not work at all" - DHCP can be used for other things besides dynamic leases, but you seem to unable to grasp that concept.

I do not want leases ... I do want DNS record to be provided. Is that supposed to work with no range, yes or no?

I believe it should work, but only if RA is setup for "Stateless" mode, and the clients support this mode. I've not actually tested it myself.

https://www.networkacademy.io/ccna/ipv6/stateless-dhcpv6

That is the whole point of this thread. Yes it should work and it just does not. I have set up RA with stateless and DHCPv6 with no range and DNS Server entry. And the DNS server entry will only propagated via RA, but not via DHCPv6. This still also might be a Windows issue, as in  - if you do not get a lease, then the whole DHCPv6 response will get thrown away.

So the only way to achieve a DNS server entry from DHCPv6 to clients is to actually set it up as assisted, which then really needs ranges.

And that also works then in the full scenario and achieves what I wanted to achieve. (Problem was that I did get a new DNS entry every time the pppoe connection was reset/rebooted. And I wanted to just permanently define the link local interface of OPNsense as DNS server for IPv6).

I did say "if ... the clients support this mode". If Windows doesn't support stateless DHCPv6, it's not OPNsense's fault. You kept harping on about OPNsense needing to produce an error if the range is not populated.

There is another possible way to get DNS configuration to clients - RDNSS. I read on the internet (so it must be true) that Windows 11 24H2 now supports this, but I can't confirm that either.

I may try to experiment a bit - I'm curious now...

February 20, 2025, 03:01:08 PM #10 Last Edit: February 20, 2025, 03:04:15 PM by dseven
Tested on both Ubuntu and Windows 11 24H2. Stateless works as expected. DHCPv6 is configured with no range, and no DNS server specified. Since I have a DNS service on the firewall, DHCPv6 advertises the firewall interface v6 address as a DNS server. On Windows (ipconfig /all), that IPv6 address actually appears *twice* as DNS server - I'm guessing one learned from stateless DHCPv6 and one from RDNSS.

Ethernet adapter Ethernet 4:

   Connection-specific DNS Suffix  . : something.lan
   Description . . . . . . . . . . . : Realtek Gaming USB 2.5GbE Family Controller
   Physical Address. . . . . . . . . : <redacted>
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2a07:x:x:x05:b439:8ff9:7a28:a0e8(Preferred)
   Temporary IPv6 Address. . . . . . : 2a07:x:x:x05:3c16:2d02:fed3:4d81(Preferred)
   Link-local IPv6 Address . . . . . : fe80::b2b3:820e:d67c:e1bd%21(Preferred)
   IPv4 Address. . . . . . . . . . . : 10.1.5.101(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Thursday, February 20, 2025 1:46:27 PM
   Lease Expires . . . . . . . . . . : Thursday, February 20, 2025 3:40:03 PM
   Default Gateway . . . . . . . . . : fe80::2d0:b4ff:fe01:a59f%21
                                       10.1.5.1
   DHCP Server . . . . . . . . . . . : 10.1.5.1
   DHCPv6 IAID . . . . . . . . . . . : 935873860
   DHCPv6 Client DUID. . . . . . . . : <redacted>
   DNS Servers . . . . . . . . . . . : 2a07:x:x:x05::1
                                       10.1.5.1
                                       2a07:x:x:x05::1
   NetBIOS over Tcpip. . . . . . . . : Enabled
   Connection-specific DNS Suffix Search List :
                                       something.lan
                                       something.lan

February 20, 2025, 08:44:33 PM #11 Last Edit: February 20, 2025, 08:47:23 PM by OPNenthu
I have been using RDNSS for some time now via SLAAC w/ "Unmanaged" RAs.  DHCPv6 is disabled.  Like you I have it set to advertise the gateway default DNS.

I only just now noticed that my Windows 10 PC is intermittently losing the IPv6 DNS.  This must be infrequent or hard to catch, because I haven't noticed it before.  I guess I must have caught it in between RAs(?) but is this normal?  I can't imagine there should ever be periods of time, however brief, that DNS info is unavailable.

First call to 'ipconfig /all'

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : home.arpa
   Description . . . . . . . . . . . : Intel(R) Ethernet Controller (2) I225-V
   Physical Address. . . . . . . . . : 24-xx-xx-xx-xx-xx
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2601:xx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(Preferred)
   Temporary IPv6 Address. . . . . . : 2601:xx:xxxx:xxxx:b46b:df37:ac:6b7(Deprecated)
   Temporary IPv6 Address. . . . . . : 2601:xx:xxxx:xxxx:dd2e:52b7:93d1:373a(Preferred)
   Link-local IPv6 Address . . . . . : fe80::xxxx:xxxx:xxxx:c813%11(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.30.100(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Saturday, February 15, 2025 8:19:58 AM
   Lease Expires . . . . . . . . . . : Thursday, February 20, 2025 3:47:45 PM
   Default Gateway . . . . . . . . . : fe80::xxxx:xxxx:xxxx:c30%11
                                       192.168.30.1
   DHCP Server . . . . . . . . . . . : 192.168.30.1
   DHCPv6 IAID . . . . . . . . . . . : xxxxxxxxx
   DHCPv6 Client DUID. . . . . . . . : 00-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx
   DNS Servers . . . . . . . . . . . : 192.168.30.1
   NetBIOS over Tcpip. . . . . . . . : Enabled
   Connection-specific DNS Suffix Search List :
                                       home.arpa

Subsequent call:
Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : home.arpa
   Description . . . . . . . . . . . : Intel(R) Ethernet Controller (2) I225-V
   Physical Address. . . . . . . . . : 24-xx-xx-xx-xx-xx
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2601:xx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(Preferred)
   Temporary IPv6 Address. . . . . . : 2601:xx:xxxx:xxxx:b46b:df37:ac:6b7(Deprecated)
   Temporary IPv6 Address. . . . . . : 2601:xx:xxxx:xxxx:dd2e:52b7:93d1:373a(Preferred)
   Link-local IPv6 Address . . . . . : fe80::xxxx:xxxx:xxxx:c813%11(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.30.100(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Saturday, February 15, 2025 8:19:58 AM
   Lease Expires . . . . . . . . . . : Thursday, February 20, 2025 3:47:45 PM
   Default Gateway . . . . . . . . . : fe80::xxxx:xxxx:xxxx:c30%11
                                       192.168.30.1
   DHCP Server . . . . . . . . . . . : 192.168.30.1
   DHCPv6 IAID . . . . . . . . . . . : xxxxxxxxx
   DHCPv6 Client DUID. . . . . . . . : 00-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx
   DNS Servers . . . . . . . . . . . : 192.168.30.1
                                       2601:xx:xxxx:xxxx:xxxx:xxxx:xxxx:c30
   NetBIOS over Tcpip. . . . . . . . : Enabled
   Connection-specific DNS Suffix Search List :
                                       home.arpa

I do now wonder if there is an issue with RA timings in radvd defaults...

I would guess that is because you get the IPv4 DNS via DHCPv4 and the IPv6 DNS via RDNSS. So, probably, the last update wins. Or, as it seems, a DHCPv4 prolongation overwrites the IPv6 DNS server acquired by RDNSS.

Either way, that should not matter if both 192.168.30.1 and 2601:xx:xxxx:xxxx:xxxx:xxxx:xxxx:c30 point to the same DNS server instance.
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 770 up, Bufferbloat A

Windows does strange things sometimes, but I doubt that it would be that stupid. FWIW, if I run "ipconfig /release", my IPv4 address and DNS Server disappear (leaving only the v6 ones), and when I run "ipconfig /renew", the v4 ones reappear, and the v6 are still there, so I don't believe that DHCPv4 clobbers the v6 stuff.

February 21, 2025, 07:02:37 PM #14 Last Edit: February 21, 2025, 08:38:45 PM by OPNenthu Reason: bugfix
Now I'm concerned.

I wrote a test to sample the output of 'ipconfig /all' each second.  I have 2 Ethernet adapters on my Windows box and I ran with both of them up, and with one of them unplugged from the switch.  In all cases I'm seeing random DNS IPv6 address drops.

Need to test some more with no network load and with high load to see if there's a difference.  Might also run a Wireshark capture to compare the timestamps and see if there are RA / ND correlations.

2025-02-21 12:40:56.824977: #  1    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:40:57.931909: #  2    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:40:59.039500: #  3    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:00.149056: #  4 !! 192.168.30.1
2025-02-21 12:41:01.254154: #  5    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:02.360500: #  6    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:03.467289: #  7    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:04.574944: #  8 !! 192.168.30.1
2025-02-21 12:41:05.678786: #  9    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:06.785625: # 10    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:07.892205: # 11 !! 192.168.30.1
2025-02-21 12:41:08.999490: # 12    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:10.107223: # 13    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:11.212166: # 14    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:12.321330: # 15    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:13.428382: # 16    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:14.532304: # 17    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:15.639665: # 18    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:16.747722: # 19    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:17.855198: # 20    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:18.963797: # 21    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:20.068552: # 22    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:21.170822: # 23    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:22.240727: # 24    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:23.347215: # 25    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:24.452748: # 26    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:25.560271: # 27 !! 192.168.30.1
2025-02-21 12:41:26.667587: # 28    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:27.773128: # 29    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30
2025-02-21 12:41:28.879308: # 30    192.168.30.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30

2025-02-21 12:43:42.802214: #  1    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:43.905939: #  2    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:45.010972: #  3    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:46.122071: #  4    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:47.224403: #  5    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:48.330079: #  6    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:49.437551: #  7    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:50.542587: #  8    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:51.650287: #  9    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:52.756945: # 10    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:53.862579: # 11    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:54.967500: # 12    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:56.076296: # 13    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:57.182318: # 14    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:58.287892: # 15    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:43:59.392699: # 16    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:00.457031: # 17    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:01.565141: # 18    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:02.668895: # 19 !! 192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:03.774773: # 20    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:04.882216: # 21    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:05.988949: # 22    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:07.094437: # 23    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:08.199260: # 24    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:09.303877: # 25 !! 192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:10.410758: # 26    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:11.517575: # 27    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:12.622795: # 28    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:13.727480: # 29    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30
2025-02-21 12:44:14.835307: # 30    192.168.30.1, 192.168.50.1, 2601:xx:xxxx:xx83:xxxx:xxxx:xxxx:c30, 2601:xx:xxxx:xx85:xxxx:xxxx:xxxx:c30

I really hope this is just Windows being Windows and not my network.

Dropping the script here in case anyone is interested.  Excuse any bugs.

Apologies @SerErris if I've hijacked your thread.  Let me know and I can promptly F-off to a separate thread for this.