完成仅eth0的常规配置后,我回来了,并为eth1添加了config。仅需eth0,路由表为:
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
但是一旦启动了eth1,默认路由语句的顺序就确定了始终使用哪个接口。如下所示,碰巧选择了到192.168.1.65网关的eth1路由。
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.1.65 dev eth1 metric 100
default via 192.168.0.97 dev eth0 metric 100
只有一个网关声明
第一个问题可能是额外的“通过192.168.1.65”默认路由。如果/ etc / network / interfaces中的eth1定义具有“ gateway 192.168.1.65”语句,则会出现在此处。因此,删除所有多余的网关语句,并弹跳接口:
# ifdown eth1
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
设置新的路由表
创建一个新的单独的路由表,其中包含适合于所有从eth1流出的流量的默认路由。这里的表号并不重要;101根本不是主路由表。使用/ etc / network / interfaces中eth1配置上的“ post-up”命令来执行此操作。在eth1上仅添加一个帖子;不要将其添加到任何eth1:子接口中。
post-up ip route add default via 192.168.1.65 dev eth1 table 101
反弹eth1。主路由表未更改,如果eth1启用,表101将包含via 192.168.1.65默认路由。
# ifdown eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101 (ie, table is empty, no output)
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101
default via 192.168.1.65 dev eth1
新的路由规则
添加路由规则以使用表101为应从eth1发出的数据包选择默认路由。
# ip rule add from 192.168.1.64/27 lookup 101
# ip rule show
0: from all lookup local
32765: from 192.168.1.64/27 lookup 101
32766: from all lookup main
32767: from all lookup default
将规则也添加到/etc/network/interfaces
文件中:
post-up ip rule add from 192.168.1.64/27 lookup 101
现在,请确保添加清除以在接口出现故障时删除路由和规则:
post-down ip rule del from 192.168.1.64/27
post-down ip route del default via 192.168.1.65 table 101
[编辑为Ubuntu 16.04+]象表明这里和测试,我已经从这个帮助制作,IP路径2已经改变了他的命令的结构。为了使工作,你将不得不适应只是有点如何的顺序做man ip
点。
up ip route add default table 101 dev eth1 via 192.168.1.65
up ip rule add from 192.168.1.64/27 lookup 101
down ip rule del from 192.168.1.64/27
down ip route del default table 101 via 192.168.1.65
否则,您将在ifdown之后执行– ifup命令,并显示一条错误消息@ifdown命令(表示外围设备配置不正确的标准消息),以及@ifup表101中没有路由。