因为工作关系,近期一直在xenserver外部网络监听配置上备受煎熬。经过网友的帮助和相关资料文档的学习和查阅,在脑海里大致有了印象。为了尽早地掌握xenserver虚拟机内部网络设置,特撰此文。
硬件:HP DL585 G7(4网卡)
软件:xenserver 6.2.0
操作系统:CentOS 7
Windows server 2008
服务器准备期间,了解到HP主板控制软件为ILO 3。共设3条网线,172.16.65.110为eth0,172.16.65.111为eth1,172.16.65.112为主板。其中,主板IP在启动时按F8进入bios手动设置,此为后期IE远程启动做准备。在安装xenserver时,IP地址最好是手动设置,不然xencenter连不上,还是需要在安装完成后手动设置。
一旦系统安装完毕,VM与宿主服务器和外网之间的连接已经建立。这个时候,在VM中需要手动设置IP地址,最好是与xenserver主机IP在同一网段(不同网段我没有实验过,不是很清楚)。CentOS7中(我安装的是图形界面,文本界面下怎么操作,没有实操过),主界面的网络设置中,选择eth0,其他3个在OFF状态。设置好IP,子网,网关和DNS(初期我没有设置DNS,出现能ping通110,但不能ping通百度的情况)。Windows下,同理,也需要手动设置IP,子网,网关和DNS,前提是先将本地连接123禁用掉。前期网络设置为DHCP,获得的IP是保留IP,无法与110和外网连接。
就绪后,在xenserver中输入:ifconfig,结果如下:
eth0 eth1 eth2 eth3
lo
tap14.0 tap14.1 tap14.2 tap14.3
vif13.0 vif13.1 vif13.2 vif13.3
vif14.0 vif14.1 vif14.2 vif14.3
xenbr0 xenbr1 xenbr2 xenbr3
列出所有VM信息:xe vm-list
列出所有PIF:xe pif-list
列出所有VIF:xe vif-list
列出所有网桥:ovs-vsctl list-br
列出挂接到网桥br0上的所有网络接口:ovs-vsctl list-ports xenbr0
列出已挂接eth0网络接口的网桥:ovs-vsctl port-to-br eth0
参考:http://blog.csdn.net/scape1989/article/details/9954341
开启所有PIF为混杂模式: xe pif-param-set uuid=
检查是否开启:xe pif-param-list uuid=
*** 在做此操作时,只需要将目标网卡的pif设为混杂模式即可。
开启所有VIF为混杂模式:xe vif-param-set uuid=
检查是否开启: xe vif-param-list uuid=
参考:http://blog.csdn.net/leoduo2013/article/details/41120053
确定镜像目的端口VIF:xe vm-list name-label=
根据上面的代码得到vif的id后,执行下面的代码。在下面的代码中,\是换行的意思,如果不换,就直接去掉,没有影响,但-- --是不能省略的,一旦省略,就会出现:
ovs-vsctl: Bridge does not contain a column whose name matches "id"
至于-- --id=@eth0 get Port eth0 和-- [email protected] get Port vif3.0 \是做什么用,还有待解开。
将网桥xenbr0上所有流入流出eth0的数据镜像到vif3.0:
ovs-vsctl -- set Bridge xenbr0 mirrors=@m \
-- --id=@eth0 get Port eth0 \
-- [email protected] get Port vif3.0 \
-- --id=@m create Mirror name=mymirror select-dst-port=@eth0 select-src-port=@eth0 [email protected]
另外一个例子,研习中:
端口映射
将发往eth0端口和从eth1端口发出的数据包全部定向到eth2端口
(假设eth0、eth1、eth2端口的uuid分别为:
69ee0c09-9e52-4236-8af6-037a98ca704d
69ee0c09-9e52-4236-8af6-037a98ca704e
69ee0c09-9e52-4236-8af6-037a98ca704f
端口的uuid可以通过ovs-vsctl list port命令查看)
ovs-vsctl -- set bridge xenbr0 mirrors=@m
-- --id=@m create mirror name=mymirror
select-dst-port=69ee0c09-9e52-4236-8af6-037a98ca704d
select-src-port=69ee0c09-9e52-4236-8af6-037a98ca704e
output-port=69ee0c09-9e52-4236-8af6-037a98ca704f
关于XenServer网络
在物理服务器上安装XenServer后,系统将为该服务器上的每个物理NIC创建一个网络。该网络在虚拟机上的虚拟网络接口(VIF)与和主机服务器上的网络接口卡(NIC) 所关联的物理网络接口(PIF)之间起桥接作用。XenServer网络是其系统内部虚拟的以太网交换机。
XenServer默认安装过程中会选择第一块网卡eth0对应的网络Network0作为管理端口,对于每个XenServer 主机,XenServer 最多支持 16 个网络(或最多支持 8 个已绑定的网络);对于每个 VM,最多支持 7 个虚拟网络。
参考:http://www.tuicool.com/articles/JfeMN3