diff --git a/ipn/ipnlocal/local.go b/ipn/ipnlocal/local.go index da4600ba3..6c00814a1 100644 --- a/ipn/ipnlocal/local.go +++ b/ipn/ipnlocal/local.go @@ -44,11 +44,13 @@ import ( "tailscale.com/types/logger" "tailscale.com/types/netmap" "tailscale.com/types/persist" + "tailscale.com/types/preftype" "tailscale.com/types/wgkey" "tailscale.com/util/dnsname" "tailscale.com/util/osshare" "tailscale.com/util/systemd" "tailscale.com/version" + "tailscale.com/version/distro" "tailscale.com/wgengine" "tailscale.com/wgengine/filter" "tailscale.com/wgengine/router" @@ -2026,6 +2028,11 @@ func (b *LocalBackend) routerConfig(cfg *wgcfg.Config, prefs *ipn.Prefs) *router Routes: peerRoutes(cfg.Peers, 10_000), } + if distro.Get() == distro.Synology { + // Issue 1995: we don't use iptables on Synology. + rs.NetfilterMode = preftype.NetfilterOff + } + // Sanity check: we expect the control server to program both a v4 // and a v6 default route, if default routing is on. Fill in // blackhole routes appropriately if we're missing some. This is