我们在工作中用到了大量的虚拟机,至少一半的物理服务器都被虚拟化了。VPSee 正在考虑用一个虚拟机来替代一台物理机器来监测网络上的
主机情况。前不久我们小组拉了一根自己的 ADSL,建了一个自己的网,这样加上工作网络就有2个不同的网,我们希望能在一个虚拟机上用
Cacti 等工具同时监测2个网络上的多台关键服务器、路由器和交换机的实时情况。这就需要在我们的虚拟机上连接到另一个网络,Xen 默认安装
后在 dom0 和 domU 上只有一个虚拟网络接口,现在我们需要在 Xen 虚拟机(domU)上添加另一个虚拟网络接口,并和物理服务器上新添加
的网卡和网络配置对应起来。
配置
打开 Xen 的配置文件,注释掉 (network-script network-bridge) 一行,然后加上下面一行:
# vi /etc/xen/xend-config.sxp
#(network-script network-bridge)
(network-script network-multi-bridge)
然后创建一个 network-multi-bridge 脚本,用来2次执行 network-bridge 脚本:
# vi etc/xen/scripts/network-multi-bridge
#!/bin/sh
dir=$(dirname "$0")
"$dir/network-bridge" "$@" vifnum=0 bridge=xenbr0 netdev=eth0
"$dir/network-bridge" "$@" vifnum=1 bridge=xenbr1 netdev=eth1
重启 Xen 服务使配置生效:
# /etc/init.d/xend restart
打开 Xen 虚拟机的配置文件,加入一个虚拟网卡:
# vi /etc/xen/vpsee
vif = [ "mac=00:16:3E:58:FF:AB,bridge=xenbr0",
"mac=00:16:3E:58:FF:AD,bridge=xenbr1" ]
重启虚拟机后,查看网络适配器的配置就会发现多了一个 eth1:
# /sbin/ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:16:3E:58:FF:AB
inet addr:172.16.38.200 Bcast:172.16.39.255 Mask:255.255.254.0
inet6 addr: fe80::216:3eff:fe58:ffab/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:801 errors:0 dropped:0 overruns:0 frame:0
TX packets:209 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:93950 (91.7 KiB) TX bytes:42427 (41.4 KiB)
eth1 Link encap:Ethernet HWaddr 00:16:3E:58:FF:AD
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
给 eth1 配置 IP 地址、掩码、网关等:
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.10.200
GATEWAY=
NETMASK=255.255.255.0
配置好虚拟机的网卡后启动网卡:
# /etc/sysconfig/network-scripts/ifup eth1
这样就给运行在一台物理机器上的 Xen 虚拟机增加了一个新网卡,并连接到了物理服务器所在的新网络,虚拟机上的2个网卡和物理服务器上的2个网卡一一对应。
配置路由表
如果想在服务器上同时访问2个网络和其子网络的话,需要修改默认网关和配置路由表:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=172.16.39.200
GATEWAY=172.16.38.1
NETMASK=255.255.254.0
# vi /etc/sysconfig/network-scripts/ifcfg-eth2
IPADDR=192.168.10.200
GATEWAY=
NETMASK=255.255.255.0
# vi /etc/sysconfig/network-scripts/route-eth0
192.102.5.0/24 via 172.16.38.1 dev eth0
# vi /etc/sysconfig/network-scripts/route_eth1
192.168.0.0/23 via 192.168.10.2 dev eth1