Den*_*Den 3 bridge kvm libvirt
我对 KVM 和桥接完全陌生,需要你的帮助。我有一个带有 QEMU/KVM 的远程服务器,并且只能使用 SSH 连接。主机操作系统是 RHEL 7。来宾必须连接到网桥(ovs),他们可以看到对方并且无法访问外部网络。主机必须能够对访客执行 ping 操作。不得使用物理 NIC 接口,因为我可能会失去连接。所以这就像主机看到访客的每个虚拟接口并可以访问它们,并且访客通过桥接器看到彼此。我使用 libvirt 尝试按照How to Use Open vSwitch with Libvirt 的说明来配置它。请帮帮我。
首先我需要的是创建桥梁:
sudo ovs-vsctl add-br ovsbr
Run Code Online (Sandbox Code Playgroud)
然后我使用 virsh 配置域 XML 文件,如下所示:
<interface type='bridge'>
<mac address='52:54:00:71:b1:b6'/>
<source bridge='ovsbr'/>
<virtualport type='openvswitch'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Run Code Online (Sandbox Code Playgroud)
重新启动后,域桥已连接 vnet0 接口,该接口是来宾接口。在这种情况下如何提供寻址?我可以通过主机向访客提供静态地址吗?
小智 5
创建网络接口:
# cat /etc/sysconfig/network-scripts/ifcfg-br-int
DEVICE=br-int
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
HOTPLUG=no
IPADDR=10.17.0.1
NETMASK=255.255.255.0
Run Code Online (Sandbox Code Playgroud)
上行接口:
# ifup br-int
Run Code Online (Sandbox Code Playgroud)
它创建 openvswitch 桥。
# ip -4 a show br-int
5: br-int: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
inet 10.17.0.1/24 brd 10.17.0.255 scope global br-int
valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)
创建 libvirt 网络:
# cat ovsnet.xml
<network>
<name>br-int</name>
<forward mode='bridge'/>
<bridge name='br-int'/>
<virtualport type='openvswitch'/>
</network>
Run Code Online (Sandbox Code Playgroud)
定义并启动网络:
# virsh net-define ovsnet.xml
# virsh net-start br-int
# virsh net-autostart br-int
Run Code Online (Sandbox Code Playgroud)
创建虚拟机:
# qemu-img create -f qcow2 /opt/vm/test.qcow2 10G
# virt-install \
--ram 1024 \
--accelerate \
--disk path=/opt/vm/test.qcow2 \
--name test \
--network network:br-int \
--vcpus 1 \
--cpu core2duo \
--cdrom /opt/iso/CentOS-7.0-1406-x86_64-DVD.iso
Run Code Online (Sandbox Code Playgroud)
完成安装,登录新虚拟机并配置网络:
# cat /etc/sysconfig/network-scripts/ifcfg-ens3
DEVICE=ens3
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.17.0.2
NETMASK=255.255.255.0
GATEWAY=10.17.0.1
Run Code Online (Sandbox Code Playgroud)
上行网络接口:
# ifup ens3
Run Code Online (Sandbox Code Playgroud)
检查主机的 ping:
# ping 10.17.0.2 -c 1
PING 10.17.0.2 (10.17.0.2) 56(84) bytes of data.
64 bytes from 10.17.0.2: icmp_seq=1 ttl=64 time=0.398 ms
--- 10.17.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.398/0.398/0.398/0.000 ms
Run Code Online (Sandbox Code Playgroud)
当前openvswitch配置:
# ovs-vsctl show
73826453-249b-4558-9cf9-ad6cc169dec9
Bridge br-int
Port br-int
Interface br-int
type: internal
Port "vnet0"
Interface "vnet0"
ovs_version: "2.3.1-git4750c96"
Run Code Online (Sandbox Code Playgroud)