【问题标题】:can not route packets from one interface to another [closed]无法将数据包从一个接口路由到另一个[关闭]
【发布时间】:2012-04-06 04:09:55
【问题描述】:

我的系统有两个接口eth0eth1

  • eth0192.168.0.250 并连接到网关192.168.0.2
  • eth1 通过一个开关连接到192.123.123.10

我正在尝试将数据包从192.123.123.10 路由到网关192.168.0.2,这意味着我需要通过eth0 接口将进入eth1 接口的192.123.123.x 数据包路由出去。

我将ip_forward 文件设置为1。 我运行了这个命令:

route add -net 192.123.0.0 netmask 255.255.255.0 dev eth0
route add default gw 192.168.0.2

我可以从129.123.123.10 ping 到192.168.0.250,但我无法ping 到192.168.0.2 我认为数据包没有被转发到eth0

我的路由表如下所示:

gteway Genmask Flags Ref Iface
192.123.123.0 * 255.255.255.0 U eth1
192.168.0.0 * 255.255.255.0 U eth0
192.123.0.0 * 255.255.255.0 U eth0
default 192.168.0.2 0.0.0.0 UG eth0

谁能告诉我缺少什么? 提前谢谢你。

【问题讨论】:

标签: linux networking routing


【解决方案1】:

你错过了你的后路路线。 主机 192.168.0.2 看到来自 192.123.123.10 的数据包,但他不知道如何路由回复数据包,因为它没有返回路由。 你可以做两件事:

1- 在 192.168.0.2 机器上创建路由以处理定向到 192.123.123.0/24 的流量

2- 使用以下命令在您的 192.168.0.250 主机上进行 NAT:

iptables -t nat -A POSTROUTING -s 129.123.123.0/24 -j SNAT --to-source 192.168.0.250

【讨论】:

    【解决方案2】:

    您需要关注的不是系统上的路由表。它是其他系统的路由表。 192.168.0.2 对 192.123.X.X 网络被路由到 192.168.0.250 一无所知。同样,192.123.X.X 上的主机需要将 192.168.X.X 网络路由到 192.123.123.10。

    【讨论】:

      【解决方案3】:

      我相当肯定这可以使用 iptables 和端口转发规则来实现。 http://www.revsys.com/writings/quicktips/nat.html 这里有更多关于如何在接口之间转发数据包的信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-16
        • 1970-01-01
        • 1970-01-01
        • 2015-11-19
        • 1970-01-01
        • 1970-01-01
        • 2020-09-03
        相关资源
        最近更新 更多