配置KVM虚拟机Bridge网络
安装工具
安装brctl和tunctl命令行工具,要采用Bridge模式的网络配置,首先需要安装两个RPM包,即bridge-utils和tuned,它们提供所需的brctl和tunctl命令行工具。可以用yum工具安装这两个RPM包。
yum install bridge-utils tunctl
查看tun模块是否加载。
lsmod |grep tun
tun 17095 2 vhost_net
编写脚本(选学)
vi /etc/qemu-ifup
#!/bin/bash switch=br0 if [ -n $1 ];then ifconfig $1 up sleep 1 brctl addif $switch $1 exit 0 else echo "Error: No Specifed interface." exit 1 fi
[root@victory ~]# chmod +x /etc/qemu-ifup
创建Bridge
建立一个Bridge,并将其绑定到一个可以正常工作的网络接口上,同时让Bridge成为连接本机与外部网络的接口,首先确认网卡正常工作。确保想使用Bridge网桥的网卡能够为KVM虚拟机模块提供网络连接能力并且网卡可以工作。这个网卡应该要能够给KVM虚拟机提供相同的网络支持。接下来的例子说明了网卡的配置,并且可以被外部网络访问。在这个例子中,使用了eth0网卡。主要的配置命令如下。
# brctl addbr br0 # brctl addif br0 eth0
创建对应的网桥IP,删除eth0网口的IP地址,如下代码所示。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=none TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no DRIDGE=br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 TYPE=bridge ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=10.0.0.48 NETMASK=255.255.255.0 GATEWAY=10.0.0.2 DNS1=114.114.114.114
</nowiki>
配置完成之后重启网络,service network restart
同时查看网络和网桥的配置信息。
ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:24:3d:91 brd ff:ff:ff:ff:ff:ff inet6 fe80::20c:29ff:fe24:3d91/64 scope link valid_lft forever preferred_lft forever 3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/ether 52:54:00:e6:8d:c2 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500 link/ether 52:54:00:e6:8d:c2 brd ff:ff:ff:ff:ff:ff 9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/ether 00:0c:29:24:3d:91 brd ff:ff:ff:ff:ff:ff inet 10.0.0.48/24 brd 10.0.0.255 scope global br0 inet6 fe80::20c:29ff:fe24:3d91/64 scope link valid_lft forever preferred_lft forever
route -n
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1009 0 0 br0 0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 br0
- brctl show
</nowiki>
用QEMU-KVM命令启动Bridge模式的网络
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
/usr/bin/qemu-kvm -m 512 -drive file=cirros-0.3.3-x86_64-disk.img,if=virtio -net nic,model=virtio -net tap,script=/etc/qemu-ifup -nographic -vnc :2
查看br0网桥
brctl show br0
bridge name bridge id STP enabled interfaces br0 8000.000c2982d685 no eth0 tap0
这样就设置一个桥接的网络,查看网桥的接口信息可以看到默认已经绑定到br0桥。该配置表示连接宿主机的TAP网络接口到n号VLAN中,并且使用file和dfile两个脚本在启动客户机时配置网络和在关闭客户机时取消网络配置。TAP参数,表明使用TAP设备。TAP是虚拟网络设备,它仿真了一个数据链路层设备,它像以太网的数据帧一样处理第二层数据报。而TUN与TAP类似,也是一种虚拟网络设备,它是对网络层设备的仿真。TAP用于创建一个网桥,而TUN与路由相关。“vlan=n”,设罝该设备VLAN编号,默认值为0