所以我面临这个挑战,我在网上搜索了各种资料。学到了很多东西 - 但我仍然遇到一些与我的两个网关设置有关的问题,而我真的想完成这些设置。
由于各种原因,我有两个网关,我试图让这两个网卡正常工作。我的问题出在辅助网关(网关 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 添加了一个默认网关,这是常规方法 - 没有表 :)
感谢您花时间阅读我的原始帖子:)