KVM、OVS、桥接网络。如何配置?

标签 kvm libvirt bridge

我对 KVM 和桥接完全陌生,需要您的帮助。我有一个带有 QEMU/KVM 的远程服务器,但我只能使用 SSH 连接。主机操作系统是 RHEL 7。 guest 必须连接到 bridge(ovs),他们可以看到对方并且无法访问外部网络。主机必须可以 ping guest 。不能使用物理 NIC 接口(interface),因为我可能会失去连接。所以这有点像主机看到 guest 的每个虚拟接口(interface)并可以访问它们,而 guest 通过网桥看到彼此。我使用 libvirt 尝试按照此说明进行配置 How to Use Open vSwitch with Libvirt .请帮助我。

首先我需要创建桥梁:

sudo ovs-vsctl add-br ovsbr

然后我像这样使用 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>

重新启动域网桥后,vnet0 接口(interface)已连接到访客接口(interface)。在这种情况下如何提供地址?我可以通过主机向 guest 提供静态地址吗?

最佳答案

创建网络接口(interface):

# 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

上接口(interface):

# ifup br-int

它是创建 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

创建一个 libvirt 网络:

# cat ovsnet.xml 
<network>
  <name>br-int</name>
  <forward mode='bridge'/>
  <bridge name='br-int'/>
  <virtualport type='openvswitch'/>
</network>

定义并启动网络:

# virsh net-define ovsnet.xml
# virsh net-start br-int
# virsh net-autostart br-int

创建虚拟机:

# 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

完成安装,登录到新虚拟机并配置网络:

# 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

上行网络接口(interface):

# ifup ens3

检查来自主机的 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

当前的 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"

关于KVM、OVS、桥接网络。如何配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30622680/

相关文章:

ssh - KVM/网桥 : No Route To Host

ssh - KVM/桥接器 : No Route To Host

virtualization - 如何在 libvirt 中创建临时域?

xml - Ansible:虚拟模块 XML 错误

java - 抽象工厂模式与桥接模式

Hibernate search 4.5 Alpha 1 无法猜测 java.lang.Byte 中的 id 的 FieldBridge

asp.net-core - 使 DNVM 使用全局设置(机器)

centos - 迁移 VMWare 镜像到 KVM

windows-7 - Windows 7 在 kvm 上安装时停在 "starting windows"

javascript - android webview js什么时候会捕获错误?