这一直困扰了我几天,
我有两个子网:
192.168.1.0/24:这是我的ISP /路由器使用的子网。 到WAN的网关是192.168.1.1 192.168.2.0/24:这是我在ESXi 5虚拟机上创build的一个子网。
运行ESXi 5的物理机器有两个NIC的一个NIC连接到我的ISP /路由器,另一个连接到另一个DHCP服务器禁用的路由器。 我正在使用这个第二台路由器,只是为了保持从VMware的angular度来看,网卡的状态为'UP'。
我有一个虚拟的Ubuntu 10.04 LTS连接着两个网卡。 这个想法是,这将服务器作为两个子网之间的路由器。 我有在运行在使用192.168.2.0局域网的我的虚拟机的IP地址的Ubuntu路由器上运行的DHCP。
我遇到的问题是,我似乎无法让Ubuntu路由器将数据包从一个子网转发到另一个子网。 我应该注意到我已经尝试了我能想到的所有可能的configuration设置组合。 我目前的设置如下:
我运行命令echo 1 > /proc/sys/net/ipv4/ip_forward来启用数据包转发。
我的防火墙看起来像这样:
root@gRouter:~# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
我的'/ etc / network / interfaces'如下所示:
root@gRouter:~# cat /etc/network/interfaces auto lo eth0 eth1 iface lo inet loopback iface eth0 inet static address 192.168.1.105 network 192.168.1.0 netmask 255.255.255.0 up ip route add 192.168.2.0/24 via 192.168.1.105 iface eth1 inet static address 192.168.2.2 network 192.168.2.0 netmask 255.255.255.0 up ip route add 192.168.1.0/24 via 192.168.2.2
从这个双NIC路由器,我可以在192.168.2.0子网内的虚拟机之间进行ping操作,并且可以在192.168.1.0子网上的虚拟机和物理机之间进行ping操作。 但是我不能从一个子网ping到另一个子网。
我的路线表如下所示:
root@gRouter:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 * 255.255.255.0 U 0 0 0 eth1 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
我的arp目前看起来像这样:
root@gRouter:~# arp -v Address HWtype HWaddress Flags Mask Iface 192.168.2.13 ether 00:0c:29:30:f4:d9 C eth1 192.168.2.10 ether 00:0c:29:bf:60:a3 C eth1 192.168.1.64 ether 38:59:f9:e7:a0:f5 C eth0 Entries: 3 Skipped: 0 Found: 3
当我尝试从子网192.168.2.0中的计算机ping到192.168.1.0子网中的计算机时,我立即收到错误消息“connect:Network is unreachable”
当我尝试从子网192.168.1.0中的计算机ping到192.168.2.0子网中的计算机时,第一个ping被启动,但是它只是无限地挂起。
对不起,我希望我已经提供了足够的信息。 非常感谢任何帮助。
提前致谢。
你没有办法让数据包进行路由的机器。 每个networking上的机器都需要知道他们networking中路由器的接口是他们到另一个networking的网关。
最简单的方法是将静态路由添加到每个networking上的默认网关。 例如,如果路由器是192.168.1.10/24和192.168.2.20/24,并且这两个networking的默认网关是192.168.1.1和192.168.2.1,则需要添加以下两条静态路由:
1)在192.168.1.1上,你需要一条到192.168.2.0/24的路由,网关是192.168.1.10
2)在192.168.2.1,你需要一个到192.168.1.0/24的路由,网关是192.168.2.20
这样,当任一networking上的机器将其他networking的数据包发送到其默认网关时,默认网关将知道将数据包发送到连接两个networking的路由器。
您需要制作适当的中继以将两个子网路由在一起。 由于没有防火墙规则来接受,拒绝,丢弃任何一个接口的数据包,你当然不会在两个子网之间获得任何连接。
开始阅读一些IPFW / IPTABLES规则。
http://forum.codecall.net/topic/48557-help-with-iptables-2-nics-2-subnets/