tailscale/wgengine/router
Avery Pennarun e7ae6a2e06 net/netns, wgengine/router: support Linux machines that don't have 'ip rule'.
We'll use SO_BINDTODEVICE instead of fancy policy routing. This has
some limitations: for example, we will route all traffic through the
interface that has the main "default" (0.0.0.0/0) route, so machines
that have multiple physical interfaces might have to go through DERP to
get to some peers. But machines with multiple physical interfaces are
very likely to have policy routing (ip rule) support anyway.

So far, the only OS I know of that needs this feature is ChromeOS
(crostini). Fixes #245.

Signed-off-by: Avery Pennarun <apenwarr@tailscale.com>
2020-05-31 04:31:01 -04:00
..
ifconfig_windows.go wgengine/router: rename config.Settings to config.Config, make pointer. 2020-05-12 15:58:33 -07:00
router_darwin_support.go router_darwin_support: we can build this on every platform. 2020-05-14 04:42:36 -04:00
router_darwin.go wgengine: don't pass nil router.Config objects. 2020-05-31 02:37:22 -04:00
router_default.go wgengine/router: split out from wgengine. 2020-04-30 13:31:24 -07:00
router_fake.go wgengine/router: rename config.Settings to config.Config, make pointer. 2020-05-12 15:58:33 -07:00
router_freebsd.go wgengine/router: rename config.Settings to config.Config, make pointer. 2020-05-12 15:58:33 -07:00
router_linux_test.go router_linux: remove need for iptables.ListChains(). 2020-05-28 07:15:05 -04:00
router_linux.go net/netns, wgengine/router: support Linux machines that don't have 'ip rule'. 2020-05-31 04:31:01 -04:00
router_openbsd.go wgengine/router: rename config.Settings to config.Config, make pointer. 2020-05-12 15:58:33 -07:00
router_windows.go wgengine/router: rename config.Settings to config.Config, make pointer. 2020-05-12 15:58:33 -07:00
router.go ipn: plumb NetfilterMode all the way out to the CLI. 2020-05-14 23:51:44 -07:00
runner.go wgengine/router: make runner.go linux-only for now. 2020-05-28 12:19:01 -07:00