配置Bridge模式KVM虚拟机
1. 配置基本环境
1 安装软件包。
安装brctl和tunctl命令行工具,要采用Bridge模式的网络配置,首先需要安装两个RPM包,即bridge-utils和tunctl,它们提供所需的brctl和tunctl命令行工具。可以用yum工具安装这两个RPM包。
#yum install bridge-utils -y #yum -y localinstall tunctl-1.5-26.14.x86_64.rpm |
加载tun模块并查看tun模块是否加载。
# modprobe tun # lsmod |grep tun tun 27141 0 |
2 创建Bridge。
建立一个Bridge,并将其绑定到一个可以正常工作的网络接口上,同时让Bridge成为连接本机与外部网络的接口,首先确认网卡正常工作。确保开发者想使用Bridge网桥的网卡能够为KVM虚拟机模块提供网络连接能力,并且网卡可以正常工作。这个网卡能够给KVM虚拟机提供相同的网络支持。接下来的例子说明了网卡的配置,并且可以被外部网络访问。在这个例子中,使用了ens33网卡。主要的配置命令如下。
# brctl addbr br0 |
创建对应的网桥IP,删除ens33网口的IP地址,如下代码所示。
#cp /etc/sysconfig/network-scripts/ifcfg-ens33 /home/
# vi /etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 BOOTPROTO=dhcp(none) TYPE=Ethernet ONBOOT=yes NM_CONTROLLER=no BRIDGE=br0 #cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0 # vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=bridge ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=192.168.10.120 NETMASK=255.255.255.0 GATEWAY=192.168.10.1(用route -n进行查询网关信息,根据具体情况设置IP地址与网关) #yum install net-tools -y # brctl addif br0 ens33 |
配置完成之后重启网络,同时查看网络和网桥的配置信息。
# 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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:ec:49:15 brd ff:ff:ff:ff:ff:ff inet6 fe80::20c:29ff:feec:4915/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:00:49:aa 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:00:49:aa brd ff:ff:ff:ff:ff:ff 5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/ether 00:0c:29:ec:49:15 brd ff:ff:ff:ff:ff:ff inet 192.168.10.120/24 brd 30.8.0.255 scope global br0 inet6 fe80::20c:29ff:feec:4915/64 scope link valid_lft forever preferred_lft forever # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 30.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 ens33 169.254.0.0 0.0.0.0 255.255.0.0 U 1005 0 0 br0 0.0.0.0 30.8.0.1 0.0.0.0 UG 0 0 0 br0 # brctl show bridge name bridge id STP enabled interfaces br0 8000.000c29ec4915 no ens33 virbr0 8000.5254000049aa yes virbr0-nic |
2. 启动虚拟机
上传qemu-ifup,qemu-down文件至/root,并且给予执行X权限
1 使用命令行启动虚拟机。
用QEMU-KVM命令启动Bridge模式的网络。
# qemu-kvm -m 512 -drive file=cirros-0.3.3-x86_64-disk.img,if=virtio -net nic,model=virtio -net tap,script=qemu-ifup -nographic -vnc :2 |
2 查看br0桥。
# brctl show br0 bridge name bridge id STP enabled interfaces br0 8000.000c2982d685 no ens33 |
这样就设置一个桥接的网络,查看网桥的接口信息可以看到默认已经绑定到br0桥。该配置表示连接宿主机的TAP网络接口到n号VLAN中,并且使用file和dfile两个脚本在启动客户机时配置网络,并在关闭客户机时取消网络配置。TAP参数,表明使用TAP设备。TAP是虚拟网络设备,它仿真了一个数据链路层设备,它像以太网的数据帧一样处理第二层数据包,而TUN与TAP类似,也是一种虚拟网络设备,它是对网络层设备的仿真。TAP用于创建一个网桥,而TUN与路由相关。vlan=n设罝该设备VLAN编号,默认值为0。