You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

RHEL 7.3 KVM中拆分带标签/无标签流量至不同网桥的配置方法

在RHEL 7.3 KVM中配置网桥拆分Tagged/Untagged流量

我来帮你搞定这个问题——你当前的核心问题是网桥默认没有启用VLAN过滤功能,所以不管流量带不带标签,都会被一股脑转发到br0。下面是适配RHEL7.3环境的分步配置方案:


1. 先备份现有网络配置(重要!)

先把当前的网卡、网桥配置备份一份,避免配置出错后无法恢复:

mkdir -p /root/network-backup
cp /etc/sysconfig/network-scripts/ifcfg-* /root/network-backup/

2. 启用网桥VLAN过滤功能

这是解决问题的核心前提!RHEL7.3默认关闭了网桥的VLAN过滤,导致它无法区分带标签和无标签的流量。我们需要手动开启:

  1. 编辑/etc/sysctl.conf,添加以下配置:
    net.bridge.bridge-nf-call-iptables=0
    net.bridge.bridge-nf-call-ip6tables=0
    net.bridge.bridge-nf-call-arptables=0
    
  2. 让配置立即生效:
    sysctl -p
    

3. 配置物理网卡为Trunk模式

假设你的物理网卡是eth0(根据实际情况替换),修改其配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,让它变成纯Trunk转发端口:

TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
# 不设置IP,也不直接绑定到网桥,交给后续的网桥VLAN规则处理
# 标记为Trunk端口,允许Native VLAN和目标VLAN XX的流量通过
VLAN=yes

4. 配置主网桥br0(承载Untagged流量)

创建/修改/etc/sysconfig/network-scripts/ifcfg-br0,让它只处理无标签的Native VLAN流量:

TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
# 如果需要让RHEL物理机通过br0联网,可以设置IP(替换成你的网段)
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
# 关键配置:启用VLAN过滤,指定Native VLAN(比如VLAN 1,替换成你的实际Native VLAN)
BRIDGE_VLAN_INFO="native vlan 1"
# 关闭STP(如果不需要生成树协议)
BRIDGE_STP=off
BRIDGE_DELAY=0
# 将物理网卡eth0添加到br0
BRIDGE_PORTS=eth0

5. 配置VLAN子网桥br0.XX(承载Tagged流量)

创建/etc/sysconfig/network-scripts/ifcfg-br0.XX(把XX替换成你的实际VLAN ID,比如100),让它只处理带XX标签的流量

TYPE=Vlan
BOOTPROTO=none
NAME=br0.XX
DEVICE=br0.XX
ONBOOT=yes
# 指定对应的VLAN ID
VLAN_ID=XX
# 绑定到主网桥br0
PHYSDEV=br0
# 如果物理机需要访问这个VLAN,可以添加IP配置(按需开启)
# IPADDR=10.0.XX.10
# NETMASK=255.255.255.0

6. 配置KVM虚拟机的网络连接

现在可以给虚拟机指定对应的网桥:

  • 需要使用Untagged流量的虚拟机,配置网桥为br0
    <interface type='bridge'>
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>
    
  • 需要使用Tagged的VLAN XX流量的虚拟机,配置网桥为br0.XX
    <interface type='bridge'>
      <source bridge='br0.XX'/>
      <model type='virtio'/>
    </interface>
    

7. 重启网络服务验证

执行以下命令重启网络,让所有配置生效:

systemctl restart network

然后验证网桥和VLAN接口状态:

brctl show
ip addr show

此时你会看到br0和br0.XX都正常启动,流量会自动拆分:无标签流量走br0,带XX标签的流量走br0.XX。


内容的提问来源于stack exchange,提问作者Mark Sherlock

火山引擎 最新活动