子网代理(点对网)
假设网络拓扑如下,节点 B 想将其可访问的子网 10.1.1.0/24 共享给其他节点。
则节点 B 的 easytier 启动参数为(新增 -n 参数)
sh
sudo easytier-core --ipv4 10.144.144.2 -n 10.1.1.0/24
子网代理信息会自动同步到虚拟网络的每个节点,各个节点会自动配置相应的路由,节点 A 可以通过如下命令检查子网代理是否生效。
检查路由信息是否已经同步,proxy_cidrs 列展示了被代理的子网。
sheasytier-cli route
ipv4 hostname proxy_cidrs next_hop_ipv4 next_hop_hostname next_hop_lat cost 10.144.144.1 abc-dec 10.1.1.0/24 DIRECT 3.25 1 测试节点 A 是否可访问被代理子网下的节点
shping 10.1.1.2
手工指定路由
默认情况下,当虚拟网中的某个节点配置了子网代理后,子网代理的网段会被同步到虚拟网内的所有节点上,并自动生成一条路由,将发往这些网段的数据包交由虚拟网处理。
这在大部分情况下可以简化组网,但在有些场景下,用户可能并不希望 EasyTier 在节点上自动配置路由,用户可通过 --manual-routes
参数手工配置需要转发到虚拟网的流量。
使用 --manual-routes
后,只有该参数配置的网段才会进入虚拟网,如果该参数后的列表为空,则 EasyTier 不会处理任何非虚拟网网段的流量。
防火墙
由于代理流量需要用到系统的网络栈,因此子网代理需要关闭在虚拟网卡上的防火墙(Linux 和 Windows 皆是如此)。
如果无法关闭防火墙,可以尝试用用户态的网络栈做子网代理,可以免去配置防火墙的步骤。只需要在启动 EasyTier 时添加 --use-smoltcp
参数即可。