XCP 交换机端口锁定不起作用

XCP 交换机端口锁定不起作用

我正在尝试 XCP/XenServer 的“交换机端口锁定”功能,该功能允许虚拟机管理程序限制虚拟机可以使用的 IP 地址。但是,我似乎无法让它按预期工作。

环境:在 Dell PE2950 上运行的 XCP 1.6。VM(Ubuntu 12.04 VM)连接到单个网络。提供给 XCP 的网络是绑定的(但不是 LACP)、未标记的(即没有 VLAN)网络。XCP 使用的是 OVS,而不是 Linux 桥接。

与相关虚拟机关联的 VIF 配置如下:

# xe vif-param-list uuid=31c2106f-18c0-1feb-453b-5500f6d7c2b4 
uuid ( RO)                        : 31c2106f-18c0-1feb-453b-5500f6d7c2b4
                 vm-uuid ( RO): 53cf1c1e-8fce-4c75-dbc5-987ed1dd6444
           vm-name-label ( RO): wtctest1
      allowed-operations (SRO): attach; unplug
      current-operations (SRO): 
                  device ( RO): 0
                     MAC ( RO): ae:63:a8:61:f6:24
       MAC-autogenerated ( RO): false
                     MTU ( RO): 1500
      currently-attached ( RO): true
      qos_algorithm_type ( RW): 
    qos_algorithm_params (MRW): 
qos_supported_algorithms (SRO): 
            other-config (MRW): 
            network-uuid ( RO): 8f2489a4-1b0e-b906-24bf-0f1c724396da
      network-name-label ( RO): 192.168.1.0/24
             io_read_kbs ( RO): 0.331
            io_write_kbs ( RO): 0.134
            locking-mode ( RW): locked
            ipv4-allowed (SRW): 192.168.1.131
            ipv6-allowed (SRW): fe80::ac63:a8ff:fe61:f624; 2001:470:e872:1::132

我期望当 VM 配置为使用诸如 192.168.1.132 之类的 IP 时,流量将不会传递,但事实却是:

root@wtctest1:~# ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.1.132/24 brd 192.168.1.255 scope global eth0
root@wtctest1:~# ping -c1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=1.05 ms

如果我将 VIF 的锁定模式设置为“禁用”,则所有流量都会停止流动,正如预期的那样。

我遗漏了什么?我确信这对其他人来说很明显……

答案1

感谢社区的辛勤工作,我们终于找到了解决方案!该问题由 George Skuklin 发现并修复。有问题的脚本是 /opt/xensource/libexec/setup-vif-rules。第 234 行存在问题。

“bridge_name = “xenbr%s”%devid”

“Devid 是 domU 的设备编号 (fe vif1.15; 15 - devid),绝对不是 xenbr 编号 (xenbr0、xenbr1 等)。"

已创建补丁来替换此行并添加一个函数来返回 VIF 所属的正确桥。我将主机置于维护模式,并通过执行以下操作从每个主机上的 dom0 主目录应用补丁:

cd ~

wget https://github.com/selectel/xen-api/commit/7f5608382e7d1c634f748ec78ace67c2c98ba617.patch

patch -p2 /opt/xensource/libexec/setup-vif-rules 7f5608382e7d1c634f748ec78ace67c2c98ba617.patch

修补后,我发现 VIF 级别锁定在我的池中的任何网络上均可按预期工作。

相关内容