具有两个默认网关的 ip 路由

具有两个默认网关的 ip 路由

所以我面临这个挑战,我在网上搜索了各种资料。学到了很多东西 - 但我仍然遇到一些与我的两个网关设置有关的问题,而我真的想完成这些设置。

由于各种原因,我有两个网关,我试图让这两个网卡正常工作。我的问题出在辅助网关(网关 2)上,因为网关 1 和 eth0、默认路由和所有东西都可以正常工作。

首先,我的设置看起来有点像这样:

NAT(入)= Cisco ASA NAT(出)= Zyxel 等

广域网IP

NAT(入) - - - - - - - - - - Ubuntu Box 12.04 - - - - - - - - - - - - - NAT(出)

网关 1
10.0.0.1 <-> 10.0.0.50 (eth0) || (eth1) 192.168.0.50 <-> 192.168.0.1

. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 网关2


所以我去了:

1. 创建新表:“1 zyxelwan”

在“/etc/iproute2/rt_tables”中

2.为表创建路由策略(zyxelwan)

 ip route add 192.168.0.0/24 dev eth1 src 192.168.0.50 table zyxelwan

 ip route add default via 192.168.0.1 dev eth1 table zyxelwan

3. 设置使用新创建的路由表的IP规则:

 ip rule add from 192.168.0.50 table zyxelwan

 ip rule add to 192.168.0.50 table zyxelwan

我暂时省略了其他配置,以确保我运行的是尽可能低的配置。就好像我的 IP 规则被完全忽略了,请看下面我执行上述步骤后得到的一些输出。

 route -n

 Kernel IP routing table

 Destination    Gateway         Genmask        Flag Metric  Ref     Use Iface

 0.0.0.0        10.0.0.1        0.0.0.0         UG  100      0        0 eth0

 10.0.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0

 192.168.0.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1

无法看到我配置的表,但如果我再次尝试将路由命令应用于该表,我会得到“文件已存在”的信息。因此配置应该在某处。

但是当我尝试跟踪路径 8.8.8.8 时,我得到了这个结果:

 tracepath 8.8.8.8

 1:  10.0.0.50                                            0.161ms pmtu 1500

因此我尝试删除它尝试发送流量的网关(10.0.0.1) - 得到以下结果(这似乎与我的 IP 规则和表无关):

 tracepath 8.8.8.8

 1:  send failed

 Resume: pmtu 65535

如果我编写路线,省略表格,并将以前的默认路线替换为:

 route add default via 192.168.0.1 dev eth1

它当然可以工作,但我真的很想能够从我的 Cisco 网关通过 SSH/VPN 进入 Ubuntubox,然后通过我的 Zyxel 网关访问网络 - 我是不是错过了一些非常明显的东西,或者你们这些聪明人能给我指明正确的方向吗?

我在想,根据我的 IP 规则,它可能只是“监听”流量,并会根据表/IP 规则将其引导出相同的接口,而解决方案可能只是“切换电缆”?

无论如何,提前感谢您的任何建议:)

答案1

route命令无法正确表示您使用新ip route命令执行的任何奇特操作。要显示路由配置,请使用ip route list table [xx|all]而不是route

答案2

我通过强制绑定 OpenVPN 的 eth0 本地 IP 解决了这个问题 - 之后,我为 eth0 创建了另一个路由表。然后,我还为 eth1 添加了一个默认网关,这是常规方法 - 没有表 :)

感谢您花时间阅读我的原始帖子:)

相关内容