-2

我有以下网络:

http://i.stack.imgur.com/rapkH.jpg

我想通过服务器和额外的路由器将所有流量从连接到 192.168.0.1 路由器的设备发送到 192.168.10.1 路由器(并最终发送到 Internet)。快2天过去了,我不知道出了什么问题。

在互联网上搜索一些类似的配置时,我发现了一些与我的需求相关的文章,但建议的解决方案似乎对我不起作用。这是一篇类似的文章:https ://serverfault.com/questions/431593/iptables-forwarding-between-two-interface

我为配置过程完成了以下步骤:
从 192.168.1.1 路由器为服务器上的 eth0
设置静态 IP 地址 192.168.1.90 从 192.168.0.1 路由器为服务器上的 eth1 设置静态 IP 地址 192.168.0.90
转发所有从 192.168.0.1 路由器到 eth1 接口上的服务器的流量似乎正常工作。路由器固件有一些选项可以将所有端口的所有流量重定向到指定地址。
在服务器上添加了以下规则(只有以下,没有任何附加规则):

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 -m state -–state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

我也试过改变

iptables -A FORWARD -i eth1 -o eth0 -m state -–state RELATED,ESTABLISHED -j ACCEPT

进入

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

但仍然无法正常工作。

添加以下内容以启用运行 CentOS 的服务器的数据包转发后:

echo 1 /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward = 1

在服务器重新启动并额外检查以查看上面的所有配置是否仍然可用后,我尝试再次查看是否可以从连接到 192.168.0.1/24 LAN 的计算机 ping 来自 192.168.1.1 的路由器,但它没有没用。

服务器安装了 tshark(console wireshark),我发现从连接到 192.168.0.1 路由器的计算机向 192.168.1.1 发送 ping 时,192.168.0.90(eth1) 接收到 ping,但它不会将其转发到 eth0接口规则告诉:

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

现在不知道为什么会这样。

问题:

  1. iptables 似乎不像我预期的那样工作。是否需要从 iptables 规则中添加 NAT 表以将流量重定向到正确的位置,或者我所做的还有其他问题吗?

  2. 我想使用 tshark 来查看服务器上的流量,因为我认为这样做是最好的。您是否知道比 tshark 更好的方法来捕获流量并进行分析?

4

1 回答 1

0

根据@Sebastian Strajan 的要求,这是发布的答案。

问题是它们各自网络上的节点不知道使用 192.168.1.90/192.168.0.90 作为通往另一个子网的网关。快速修复是在每个节点上指定一个静态路由,将 90 个节点指定为通往另一个子网的网关。

编辑:删除了我关于使用 DHCP 服务器进行路由的声明。我这样说是不正确的。长期解决方案可能是使用静态路由配置您的路由器。

于 2014-06-03T02:04:24.827 回答