802.1q(多 Vlan 标记)给访客

802.1q(多 Vlan 标记)给访客

我想将我的标签 (802.1q) 发送给 Guest,我不希望 KVM 或 CENT 剥离标签并显示未标记的流量。我将在交换机端口上拥有 600 多个 VLAN,我需要 Guest 来处理流量。我无法在 /network-interfaces 中创建 600 个网桥,因为 600 个 VLAN 将增长到 2045 个 VLAN。

类似于 ESX 4095 方法,其中 esx 将所有流量传递给客户机。我正在运行 Centos 7 KVM 已安装并运行良好

如果可能的话我可能需要了解以下内容。

我是否应该将网络管理器保留在 Cent 上?是否有可以为我的网络执行此操作的 Gui,因为许多用户将管理这些系统,而我们需要一些简单的东西。可以通过 gnome 中的网络管理器来完成吗?

谢谢约翰·因蒙特雷尔

答案1

我不使用主机服务器上的 802.3q (QnQ) 将 VLAN 传输到客户虚拟机。只需在实际网络接口上使用桥接接口或它们的链路聚合组 (bonding)。桥接接口不得有任何 IP 配置。所有 VLAN 都将出现在桥接接口上并可供客户机器使用。不要忘记将交换机端口 (端口) 更改为 VLAN 标记模式 (中继模式) 并允许所需的 VLAN 访问它 (它们)。

您必须在主机服务器上创建 vlan 接口才能通过网络访问它。例如 br0.12,其中 12 是您的管理 vlan。在此接口上配置 ip 地址和其他网络属性。

我通常在主机服务器上禁用 NetworkManager 服务,因为它适合网络接口的动态配置,而不是静态配置。

例如:eth0 - 管理接口,eth1 - 用于所有 VM,br0 - 将分配给具有所有 VLAN 的 VM,br31 - 将分配给 Windows VM,无法使用 VLAN,但需要访问未标记的 VLAN 31。在交换机上,所有 VLAN 都必须标记。

/etc/sysconfig/network-scripts/ifcfg-eth0 文件:

TYPE=Ethernet
NAME=eth0
DEVICE=eth0
UUID=a2321e2c-3057-41ab-aa36-92d553d30c29
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.50
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DOMAIN="example.com"

/etc/sysconfig/network-scripts/ifcfg-eth1 文件:

TYPE=Ethernet
NAME=eth1
DEVICE=eth1
UUID=a2321e2c-3057-41ab-aa36-92d553d30c30
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0

/etc/sysconfig/network-scripts/ifcfg-br0 文件:

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
STP=on
DELAY=0

/etc/sysconfig/network-scripts/ifcfg-br0.31 文件:

VLAN=yes
DEVICE=br0.31
NAME=br0.31
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br31

/etc/sysconfig/network-scripts/ifcfg-br31 文件:

DEVICE=br31
ONBOOT=yes
TYPE=Bridge
STP=on
DELAY=0

要在 Centos 6 及更低版本中禁用 NetworkManager:

chkconfig NetworkManager off
chkconfig network on
service NetworkManager stop
service network restart

要在 Centos 7 及更低版本中禁用 NetworkManager:

systemctl disable NetworkManager
systemctl enable network
systemctl stop NetworkManager
systemctl resart network

在/etc/sysctl.conf中添加下面几行并通过命令应用sysctl -p /etc/sysctl.conf

net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables = 0 
net.bridge.bridge-nf-call-iptables = 0 
net.bridge.bridge-nf-call-arptables = 0

检查您的防火墙(iptables)是否允许转发。

相关内容