我有两个 ISP:
- 10.100.36.0/29
- 10.200.36.0/29
我有两个网络:
- 10.45.13.0/27
- 10.45.15.0/27
我能够使用我的 Debian 服务器将 1 个 ISP 路由到我的网络。但是,我们现在有 2 个 LAN 和 2 个 ISP。
我想将所有来自 到10.45.13.0/27
和10.100.36.0/29
到10.45.15.0/27
的路由10.200.36.0/29
。
我的 Debian 服务器是 DHCP 服务器和 DNS 服务器。它有 4 个 NIC 卡。IP 是:
- 10.100.36.2 (eth0)
- 10.200.36.2 (eth3)
- 10.45.13.1 (eth1)
- 10.45.15.1 (eth2)
我从昨天开始就一直在谷歌上搜索,但这里没有找到任何解决方案,而且我几乎不了解路由系统。
顺便说一下,我的系统是全新的,
感谢您。
编辑
root@ROUTER-DEB:/sst# ip route
10.200.36.0/29 dev eth3 proto kernel scope link src 10.200.36.2 metric 30
10.100.36.0/29 dev eth0 proto kernel scope link src 10.100.36.2 metric 40
10.45.15.0/27 dev eth2 proto kernel scope link src 10.45.15.1 metric 10
10.45.13.0/27 dev eth1 proto kernel scope link src 10.45.13.1 metric 10
default via 10.45.15.1 dev eth2 scope link metric 10
default via 10.45.13.1 dev eth1 scope link metric 10
default via 10.200.36.1 dev eth3 metric 30
default via 10.100.36.1 dev eth0 metric 40
答案1
您需要高级路由,在这种情况下是源路由。您需要两个路由表(每个 ISP 一个)和至少一个表选择规则。
- 在 中添加两行
/etc/iproute2/rt_tables
。数字无关紧要;这只是为了使用名称。我们将表称为 isp_100 和 isp_200。 定义路由表:
ip route add default via 10.100.36.1 table isp_100 ip route add 10.100.36.0/29 dev eth0 src 10.100.36.2 table isp_100 ip route add default via 10.200.36.1 table isp_200 ip route add 10.200.36.0/29 dev eth3 src 10.200.36.2 table isp_200
定义表选择规则
ip rule add type unicast iif eth1 priority 100 table isp_100 ip rule add type unicast iif eth2 priority 101 table isp_200
您可以使用from 10.45.13.0/27
而不是iif eth1
。如果 eth1 后面只有 10.45.13.0/27,则没有区别。接口名称可能会更改。但如果稍后在 10.45.13.0/27 后面创建子网,则将from 10.45.13.0/27
不再起作用。另一方面:在这种情况下,无论如何都必须调整此系统上的路由。所以请做出选择。最重要的是,您要记住在网络(或系统硬件)发生变化时必须调整的内容。
您的主路由表定义了系统本身(本地生成的数据包)如何连接到互联网。
您可能需要一个脚本,ip route
在每次重新启动网络子系统时执行命令。我使用 openSUSE 的经验是子系统重新启动不会影响设置ip rule
。因此,这些可能只需要在系统启动后执行一次。
您可以通过 查看当前规则ip rule
并通过 查看表格ip route table isp_100
。