tailscale/tstest
Nick Khyl d837e0252f wf/firewall: allow link-local multicast for permitted local routes when the killswitch is on on Windows
When an Exit Node is used, we create a WFP rule to block all inbound and outbound traffic,
along with several rules to permit specific types of traffic. Notably, we allow all inbound and
outbound traffic to and from LocalRoutes specified in wgengine/router.Config. The list of allowed
routes always includes routes for internal interfaces, such as loopback and virtual Hyper-V/WSL2
interfaces, and may also include LAN routes if the "Allow local network access" option is enabled.
However, these permitting rules do not allow link-local multicast on the corresponding interfaces.
This results in broken mDNS/LLMNR, and potentially other similar issues, whenever an exit node is used.

In this PR, we update (*wf.Firewall).UpdatePermittedRoutes() to create rules allowing outbound and
inbound link-local multicast traffic to and from the permitted IP ranges, partially resolving the mDNS/LLMNR
and *.local name resolution issue.

Since Windows does not attempt to send mDNS/LLMNR queries if a catch-all NRPT rule is present,
it is still necessary to disable the creation of that rule using the disable-local-dns-override-via-nrpt nodeAttr.

Updates #13571

Signed-off-by: Nick Khyl <nickk@tailscale.com>
2024-10-02 18:36:01 -05:00
..
archtest all: cleanup unused code, part 1 (#10661) 2023-12-20 14:50:30 -08:00
deptest tstest/deptest: fix minor escaping error in regex 2023-11-01 16:22:18 -07:00
integration control/control{client,http}: don't noise dial localhost:443 in http-only tests 2024-10-02 10:41:08 -05:00
iosdeps all: do not depend on the testing package 2024-05-24 05:23:36 -07:00
jsdeps all: use math/rand/v2 more 2024-06-05 15:24:04 -07:00
natlab tstest/natlab: add dual stack with blackholed IPv4 2024-09-03 17:16:26 -07:00
nettest cmd/derper,tstest/nettest: skip network-needing test in airplane mode 2024-05-03 08:24:24 -07:00
tailmac tstest/natlab: add unix address to writer for dgram mode 2024-08-22 15:37:37 -07:00
tools go.{mod,sum},tstest/tools,k8s-operator,cmd/k8s-operator: autogenerate CRD API docs (#12884) 2024-07-29 11:50:27 +01:00
allocs.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
clock_test.go all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
clock.go tstime: add Since method (#8622) 2023-07-14 16:50:17 -04:00
log_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
log.go wgengine/magicsock: disable portmapper in tunchan-faked tests 2024-04-17 21:47:38 -07:00
reflect.go net/dns: fix IsZero and Equal methods on OSConfig 2024-09-05 00:05:36 -04:00
resource.go all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
test-wishlist.md wf/firewall: allow link-local multicast for permitted local routes when the killswitch is on on Windows 2024-10-02 18:36:01 -05:00
tstest_test.go tstest: add method to Replace values for tests 2023-03-03 17:02:33 -08:00
tstest.go ipn/{conffile,ipnlocal}: start booting tailscaled from a config file w/ auth key 2023-10-17 07:12:49 -07:00