我确定这是一个简单的路由问题,但是现在我已经把头痛了好几个小时了。
Centos 5. eth1私有。 10.0.0.12/24 gw 10.0.0.1 eth0 public 216.234.xx gw 216.234.xx
路由命令
Destination Gateway Genmask Flags Metric Ref Use Iface 216-234-xx. 216-234-xx. 255.255.255.255 UGH 0 0 0 eth0 216.234.xx * 255.255.255.248 U 0 0 0 eth0 10.0.0.0 * 255.255.255.0 U 0 0 0 eth1 link-local * 255.255.0.0 U 1002 0 0 eth0 link-local * 255.255.0.0 U 1003 0 0 eth1 default 10.0.0.1 0.0.0.0 UG 0 0 0 eth1
在私人界面上响应很好。 可以路由到互联网。 但是我不能在它的公共接口上响应ping。
这是一个FreePBX服务器。 到216.234.xx的路线是我的SIP提供商。
我是一个linux白痴。 我已经search了每个Linux路由q和A可能,但我想我不是在寻找正确的。
谢谢!
编辑。 我只希望SIP和SSH进出公共接口。 否则,一切都应该出去的私人界面。
我假设你不是从SIP提供商IP ping通。
问题是ping响应的路由是通过eth1,这是不会到达源。 您需要源策略路由才能使响应返回到eth0。
假设216.234.0.1是您的网关,216.234.0.10是您的公共IP。
创build一个新的路由表(只需要做一次)。
echo 10 eth0 >> /etc/iproute2/rt_tables
添加一个默认路由到新的路由表出eth0。
ip route add default via 216.234.0.1 table eth0
添加一个规则来匹配公共IP作为源的数据包,并使用新的表。
ip rule add from 216.234.0.10 lookup eth0