虚拟网关接口

虚拟网关接口

我想听听您对我的 Linux 路由器设置的意见。假设我有默认 ISP(主路由表)和一个特定的 ISP(路由表custom)。默认 ISP 开启eth0,自定义 ISP 开启eth2。对于默认路由,它是 DHCP 和闪亮的自动路由,自定义路由如下所示:

# echo "4999 custom" >> /etc/iproute2/rt_tables
# ip addr eth2 10.x.y.z netmask 255.255.255.0
# ip -4 route add 0.0.0.0/0 via 10.20.30.40 table custom
# iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

所以现在,任何路由到的内容eth2都将通过自定义 ISP 进行。效果很好。我想要的是创建一个具有特定 IP 的虚拟接口(VETH?TAP?我不知道),这样我就可以将其提供给我的 LAN 客户端并通过此自定义 ISP 路由它们。我还希望它在跟踪路由期间可见。

局域网有172.16.1.0/24网络。我尝试过的:

# ip tuntap add name tap0 mode tap
# ip addr add 172.16.1.128 dev tap0
# ip rule add iif tap0 lookup custom

然而,这不起作用。如果我将其指定172.16.1.128为客户端的默认网关,则 ping 不会通过它。我究竟做错了什么?

更新:

至于初始路由规则:LAN 位于 eth1,我用它来测试自定义 ISP 连接:

ip rule add iif eth1 lookup custom

我知道我可以添加类似基于 fwmark 的规则之类的内容,但随后又回到了 iptbles 来完成所有艰苦的工作(src nat),这又慢又低效。

相关内容