使用VMware实现路由功能,帮助理解linux和虚拟机的网络功能。
第一台linux主机A作为路由器,第二台linux主机B作为用户,A主要提供DHCP,路由转发功能。在VAMware 下A,B主机有一块网卡连接到同一块VMnet,然后A主机添加一块NAT的网卡,默认设置的是vmnet8具体如图
图1 A的配置
图 2 B的配置
对A的网络配置文件进行配置,监听eth1网卡在/etc/default/dhcp3-server将INTERFACES=”eth0″使用INTERFACES=”eth1替代它。然后VMnet2网卡地址配置,在/etc/network下的interfaces文件进行配置:
auto eth1
iface eth1 inetstatic
address 192.168.1.1
netmask 255.255.255.0
然后配置DHCP文件,在/etc/init.d/dhcp3-server的interfaces文件:
option domain-name "example.org";
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.55 192.168.1.66;
option routers 192.168.0.1;
option broadcast-address 192.168.1.255;
}
重启网络和DHCP服务:
#/etc/init.d/networkingrestart
#/etc/init.d/dhcp3-serverrestart
然后是B的网络配置,也是/etc/network下的interfaces文件进行配置:
auto eth0
iface eth0 inet dhcp
然后/etc/init.d/networkingre start便能获得IP地址。
路由转发功能开启:
#echo "1"> /proc/sys/net/ipv4/ip_forward
或直接打开/proc/sys/net/ipv4/ip_forward将参数改为1,然后添加路由表,这里默认A的eth0为往外发送的网卡,地址为192.168.131.128,添加静态路由:
#route add -net 192.168.1.0 netmask 255.255.255.0 gw dev eth0
当然这只是路由转发包而已,想要内部也上外网就需要开启NAT功能,具体如下:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.131.128
配置源nat,将只从eth0转发的192.168.1.0/24的数据包,并将IP地址转换成192.168.131.128(与外网连接地址)
iptables -t nat -A PREROUTING -i eth0 -d 192.168.131.128/32 -j DNAT --to 192.168.1.55
配置目的nat,将从eth0的接收到的192.168.131.128的数据包进行修改,修改后IP地址为192.168.1.55,然后由路由模块交给192.168.1.55