XenServer/VLANManager
XenServer 和 VLAN 管理器
请先阅读 OpenStack 手册中的 VLAN 网络相关内容
- https://docs.openstack.org/trunk/openstack-compute/admin/content/configuring-vlan-networking.html
简而言之,在使用 XenServer 上的 VLAN 管理器时
- 一个 PIF,通过 (A) vlan_interface 标志或 (B) networks 数据库表中的 bridge_interface 列标识,将被用于创建 XenServer VLAN 网络。VLAN 标签位于 networks 表中的 vlan 列中,默认情况下第一个标签为 100。
- 在此网络中的 VM 实例的 VIF 将被插入到此 VLAN 网络中。正如你所说,在 VIF 插入之前你不会看到桥接。这种行为在 XS、XCP 和 Kronos 中都是一样的。
- 运行 nova network 节点的 VM 'Openstack domU' 将不会被插入到此网络中;因为它充当多个 VLAN 网络的网关,所以必须连接到 VLAN trunk 上。因此,它必须在其接口上连接到 VM 实例连接的 VLAN 桥接的父桥接。我意识到这有点晦涩,所以长话短说,如果 vlan_interface 是 eth0,它必须连接到 xenbr0,eth1 --> xenbr1,依此类推(在 Kronos 上你可能最终会得到 brwlan0)。
- 在 Openstack domU 中,'ip link' 用于在 'trunk' 端口上配置 VLAN 接口。每个 VLAN 接口都与一个 dnsmasq 实例关联,该实例将向实例分发 IP 地址。dnsmasq 的租约文件由 nova-network 不断更新,从而确保 VM 获得由 layer3 网络驱动程序(nova IPAM 或 Melange)指定的 IP 地址。
使用此配置,VM 实例应该能够从适当的 dnsmasq 实例获得分配给它们的 IP 地址,并且应该能够与同一网络上的其他 VM 以及它们的网关进行通信,而不会出现任何问题。
上述第 (3) 点可能需要更多的解释。使用 Open vSwitch,我们实际上没有为不同的 VLAN 创建不同的桥接;即使它们对 linux 和 xen server 看起来像是不同的桥接,它们实际上是同一个 OVS 实例,为每个 VLAN 运行一个不同的 'fake-bridge'。'真实' 桥接是 'fake' 桥接的 '父' 桥接。你可以使用 ovs-vsctl 轻松导航 fake 和 real 桥接。
正如你所见,我只提到 Openvswitch。这是有特定原因的:fake-parent 机制自动意味着未在 fake 桥接上的端口是 trunk 端口。这在使用 linux 桥接时不会发生。在 VLAN 接口上转发的数据包不会返回到 ethX 的 xenbrX 桥接。
配置
所需的选项如下:network_manager=nova.network.manager.VlanManager vlan_interface=eth1 network_driver=nova.virt.xenapi.vif.XenAPIBridgeDriver
请注意,无论你在 XenServer 上运行 OVS 还是 Bridge,都应使用 XenAPIBridgeDriver。如果使用 Nicira 的 NVP,则应使用 XenAPIOpenVswitchDriver。