xen下NAT网络多IP网段的配置

贫僧最近玩上了xen虚拟机,之前用xen搭建了桥接网络。因为我这个虚拟机本是通过virtual box虚拟出来的,所以感觉总有些不对劲。昨天和今天使劲折腾了两天,大概明白了怎样搭建xen的NAT多IP网段的网络……(有些绕,请见谅)

情形是这样的:
笔记本电脑无线网卡网段是172.16.0.0/24,可以通过路由上网
VirtualBox虚拟出一个Debian6的Xen虚拟机,该虚拟机通过VB桥接至无线网段上网

目的:
想在Xen虚拟机内部设置一个子网段A 10.1.1.0/24以及子网段B 10.20.40.0/24网段,xen内部的VPS分配在这两个网段内。子网段A中的主机虚拟出两个网卡,其中一个通过连接到Dom0的10.1.1.1网卡上网,而子网段B的VPS主机只有一个网卡,只能连接到子网段A主机充当的GATEWAY上,不能直接上网。

……是不是很无语……

我们按顺序来讲,首先是Dom0的设置
设置/etc/xen/xend-config.sxp文件
#(vif-script vif-bridge) #注释起桥接网络
(vif-script     vif-nat) #取消注释,乱七八糟的配置不用写


设置Debian的网络/etc/network/interfaces
#无线网卡
auto eth1
allow-hotplug eth1
iface eth1 inet dhcp
    gateway 172.16.0.254
    dns-nameservers 8.8.4.4
#子网段A
auto dummy0
iface dummy0 inet static
    address 10.1.1.1
    netmask 255.255.255.0
#子网段B
auto dummy0:0
iface dummy0:0 inet static
    address 10.20.40.254
    netmask 255.255.255.0

可能有人会想,子网段B可不可以设成dummy1啊?贫僧之前就这么做的,可惜restart网络之后,网卡dummy1起不来。这样写就可以了

设置Dom0使其成为NAT服务器
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth1 -j MASQUERADE

不明白NAT原理的,可以稍微参照贫僧之前的 文章

设置子网A的主机
设置/etc/xen/xen-test0.cfg
vif         = [ 'ip=10.1.1.11', 'ip=10.20.40.2' ]

启动此主机后更改网络配置,设置IP。(这里的IP不是此主机的最终IP,最终使用的IP需要在VPS的/etc/network/interfaces里设置)

设置子网B的主机
设置/etc/xen/xen-test1.cfg
vif = [ 'ip=10.20.40.10' ]

设置具体网络。

大功告成!注意下防火墙配置。

之前碰到了一个问题就是,子网B主机ping子网A主机,A的主机回复了B,但是B中的主机却收不到回复包。以为是防火墙问题,后来才发现是/etc/xen/xen-test1.cfg文件中的vif设错了,设的网段是10.1.1.0/24。像这种错误可以通过在Dom0中仔细查看ifconfig中的vifX.Y解决。注意vif的设置一定要和虚拟机的实际网络配置一致。

你可能感兴趣的:(NAT,xen,虚拟多网段)