今天做了一个linux下网关的假设实验,实验原理很简单,过程是这样的。
我已经有了三个虚拟机,都开起来,网络设为host-only(vmware),一台作为网关,连通两个vlan,两个vlan各包含一台虚拟机,具体信息如下:
eth0:192.168.254.2 netmask:255.255.255.128 主机1
eth1:192.168.254.136 netmask 255.255.255.128 主机2
eth3:192.168.254.4 eth4:192.168.254.131 netmask都是255.255.255.128 主机3
在上述情况下用root用户下的service iptables stop停止各个主机的防火墙,然后在主机1上用
route add -net 192.168.254.128 netmask 255.255.255.128 gw 192.168.254.4
建立一个路由,记住一定要设置正确netmask,不然会失败
同理,在主机2上建立
route add -net 192.168.254.0 netmask 255.255.255.128 gw 192.168.254.131
建立路由
然后在主机3上开通数据包转发服务
echo 1 > /proc/sys/net/ipv4/ip_forward
完成
注意,只有整个网络设置正确才能ping通。