桥接就是把物理机的网卡模拟成交换机,虚拟机的网卡直接连在虚拟的网桥即交换机上。这样kvm虚拟机分配的IP地址,就应该和物理机在同一网段,可以对外进行服务。默认的情况下kvm使用NAT模式,只能访问外网,仅有使用默认网桥virb0的网桥的所有的虚拟机才能通信,物理机段的机器不能访问虚拟机。在测试环境下和某些特定的生产环境下,可以使用桥接的模式进行,方便使用。
1. 2009版本的centos7物理机及镜像
2. 物理机的网段为192.168.10.0/24
3.virb0,默认网桥地址为192.168.122.0/24
4.系统已经安装过libvirt库及qemu-kvm库。
5. 当前系统网卡为 enp2s0
1。执行 virsh iface-bridge enp2s0 br0
创建桥接网卡br0,把br0作为网桥使用,绑定enp2s0到br0网桥,即交换机
A) 执行上述命令,实际上就是在/etc/sysconfig/networking-script目录下增加一个虚拟网桥 br0,文件名称为ifcfg-br0
修改该文件ifcfg-br0, bootproto 改成bridge,配置如下
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="static"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"
IPADDR=192.168.10.11
GATEWAY=192.168.10.1
NETMASK=255.255.255.0
DNS1=192.168.10.1
正常情况下,ifcfg-enp2s0在执行virsh iface-brige命令的时候已经改成如下内容,一般我们不需要修改
DEVICE=enp2s0
ONBOOT=yes
BRIDGE="br0"
重启网络 /etc/init.d/network restart (此命令不行可以使用 systemctl restart network)
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether 1c:6f:65:2d:eb:f8 brd ff:ff:ff:ff:ff:ff
3: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:8c:44:66 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:8c:44:66 brd ff:ff:ff:ff:ff:ff
7: br0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 1c:6f:65:2d:eb:f8 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.11/24 brd 192.168.10.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::1e6f:65ff:fe2d:ebf8/64 scope link
2. 修改/etc/qemu-kvm/bridge.conf
最后以后不增加会导致虚拟机启动执行无权限链接br0网卡
allow virbr0
#增加以下一行
allow br0
~
3. 使用virsh edit centos7 修改网桥字段
如果虚拟机已经安装好了,可以采用该方法,原先type有可能为source/default
4. 如果虚拟机系统没安装,采用指定网桥的形式,如下,主要是--bridge参数。
[yanfeng@localhost bin]$ virt-install --name=centos7 --memory=512,maxmemory=1980 --vcpus=2,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-Minimal-2009.iso --disk path=/home/kvm/centos7.qcow2,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
5。重启启动物理机网络和虚拟机,网络正常,并在同一网络。