我有一个机器C有两个网卡,即eth0和eth1 ,其上安装了CentOS 4.9。 另外我有一台机器A通过eth0连接到C,一台机器B通过eth1连接到C. 现在我想让机器A在一个子网(例如192.168.3.0/24)和机器B在另一个子网(例如192.168.4.0/24),他们可以相互通信。
eth0 eth1 Machine A <---------> Machine C <---------> Machine B ...3.0/24 ...4.0/24
根据我之前关于这个问题的答案,我configuration了我的eth0和eth1:
在/ etc / sysconfig / network中的脚本/的ifcfg-eth0的
DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.3.1 NETMASK=255.255.255.0 ONBOOT=yes TYPE=Ethernet
在/ etc / sysconfig / network中的脚本/的ifcfg-eth1的
DEVICE=eth1 BOOTPROTO=static IPADDR=192.168.4.1 NETMASK=255.255.255.0 ONBOOT=yes TYPE=Ethernet
并configuration机器A(Windows XP)192.168.3.10,192.168.3.1(gw)和机器B(Windows 7)192.168.4.10,192.168.4.1(gw)。 我在机器C上启用了IP转发。现在,我还没有添加任何路由或iptables规则。 我可以从机器B ping 192.168.3.10,但不能vesa。 我缺less一些路由规则? 如果是,如何添加这些规则?
任何build议或教程或howtos将不胜感激。
快速testing:
控制面板 – > Windows防火墙(在系统和安全下,如果你这样做的话)。 在左侧窗格中,单击“打开/closuresWindows防火墙”,然后closures右侧窗格中的防火墙。
如果你可以ping通它,那么很好…你可以重新打开它,并使用http://www.sysprobs.com/enable-ping-reply-windows-7中的指示来允许ping。
如果这不起作用,另一个快速testing就是closuresiptables,当然这只是为了排除故障。 即使你不记得弄乱它,也值得testing…
sudo /etc/init.d/iptables stop
一台机器可以成功ping通另一台机器的事实表明,路由器机器(C)的configuration至less合理正确 – IP转发工作,iptablesconfiguration中没有默认的“拒绝”策略。
我会倾向于怀疑机器B上的防火墙设置,这使得默认情况下不响应ping。 但我不是微软的大师,所以我不知道这可能是一个默认的Windows 7的事情,或如何去检查和修复,但大概有一些configurationpipe理器在那里你可以点击。
如果这似乎没有结果,只需通过运行iptables -L -n并确保FORWARD链中没有规则(某些系统configuration可能已经添加了这些规则),对iptablesconfiguration进行完整性检查,这个链条的政策实际上是ACCEPT (这不是一个好的安全措施,但是我们还没有把它变得“安全”,只是“让它工作”)。 如果你对解释输出没有把握,就把输出粘贴到你的问题中,然后有人给你竖起大拇指。