kvm vlan 网卡配置

centos7 环境

加载vlan模块

#modprobe 8021q

 网卡上添加vlan5, vlan1011

配置vlan5和vlan1011 网卡

#cp ifcfg-em1 ifcfg-em1.1011
#cp ifcfg-em1 ifcfg-em1.5
# cat ifcfg-em1.5
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=em1.5
DEVICE=em1.5
ONBOOT=yes
VLAN=yes
IPADDR=192.168.25.199
NETMASK=255.255.255.0
GATEWAY=192.168.25.254
DNS1=192.168.25.254
]# cat ifcfg-em1.1011
#BOOTPROTO=none
#DEFROUTE=yes
#IPV4_FAILURE_FATAL=no
HWADDR=84:8f:69:fe:f4:f7
NAME=em1.1011
DEVICE=em1.1011
ONBOOT=yes
VLAN=yes
BRIDGE=br-vlan1011
#IPADDR=192.168.25.199
#NETMASK=255.255.255.0
#GATEWAY=192.168.25.254
#DNS1=192.168.25.254

网桥br-vlan1011配置,桥接到em1.1011

# cat ifcfg-br-vlan1011 
DEVICE=br-vlan1011
BOOTPROTO=static
IPADDR=172.16.11.1
NETMASK=255.255.255.0
#NETWORK=192.168.110.0
ONBOOT=yes
GATEWAY=172.16.11.254
TYPE=Bridge

好了,kvm 创建虚拟机可以连接到br-vlan1011上




<think>嗯,用户问的是如何在电脑网卡设置以获取VLAN标签的报文。首先,我需要确认用户对VLAN的基本概念是否了解。VLAN(虚拟局域网)用于将一个物理网络划分为多个逻辑网络,通过标签(VLAN ID)来区分不同的网络流量。网卡需要支持VLAN标签的处理,通常这需要网卡驱动和操作系统的支持。 用户可能遇到的情况是,他们的网络环境中存在VLAN划分,而他们希望电脑能够接收并处理带有特定VLAN标签的数据包。例如,监控网络流量或连接到多个VLAN的情况。这时候,网卡需要配置成能够接收这些标签帧,而不是默认情况下可能剥离标签。 接下来,我需要考虑不同的操作系统设置方法。Linux和Windows的处理方式不同。对于Linux,通常使用vconfig命令或者ip命令来创建VLAN子接口。而Windows可能需要安装特定的驱动程序或使用PowerShell命令。此外,还需要确认网卡本身是否支持VLAN功能,有些较旧的网卡可能不支持。 可能用户已经尝试过一些方法但未成功,比如配置VLAN子接口但没有生效,或者无法捕获到带有标签的报文。这时候需要检查网卡驱动是否支持VLAN,以及配置是否正确。例如,在Linux中,是否加载了802.1Q模块,或者是否正确应用了网络配置。 另外,用户可能希望进行流量抓包分析,这时候需要使用工具如Wireshark,并确保网卡设置为混杂模式,同时能够捕获VLAN标签。需要提醒用户注意权限问题,比如在Linux上需要使用sudo来运行抓包工具。 可能的误区是用户可能认为只要配置VLAN子接口就能自动接收标签报文,但实际上可能需要显式地启用相关设置,或者需要特定的硬件支持。此外,某些网络交换机端口的配置也可能影响是否发送带标签的报文到电脑网卡,比如交换机端口需要设置为trunk模式并允许相应的VLAN通过。 需要分步骤指导用户,首先确认网卡和驱动支持VLAN,然后配置VLAN子接口,最后验证配置是否生效。同时,提供不同操作系统的具体命令和配置示例,确保用户能够跟随操作。最后,提醒用户检查交换机的配置,确保VLAN报文能够到达网卡。</think>要在计算机网卡上接收并处理带有VLAN标签的报文,需要根据操作系统和网卡类型进行特定配置。以下是不同场景下的实现方法: --- ### **一、基本原理** VLAN标签(802.1Q)是嵌入在以太网帧头中的4字节标识,格式如下: $$ \text{目标MAC | 源MAC | 0x8100 | VLAN ID (12bit) | 类型/长度 | 数据} $$ 网卡默认会剥离VLAN标签,需通过以下方式使其保留标签。 --- ### **二、Linux系统设置** #### 方法1:使用VLAN子接口 1. **加载802.1Q模块** ```bash sudo modprobe 8021q ``` 2. **创建VLAN子接口** ```bash sudo ip link add link eth0 name eth0.10 type vlan id 10 sudo ip link set eth0.10 up ``` - `eth0`:物理网卡名称 - `10`:VLAN ID 3. **抓包验证** ```bash sudo tcpdump -i eth0 -nn -v vlan ``` #### 方法2:启用网卡的"VLAN HWTAGGING"(硬件支持时) ```bash ethtool -K eth0 rx-vlan-offload off # 关闭硬件剥离标签 ethtool -k eth0 | grep vlan-offload # 查看状态 ``` --- ### **三、Windows系统设置** 1. **启用网卡VLAN支持** - 在设备管理器中找到网卡属性,启用"VLAN ID"或"Priority & VLAN"选项(需驱动支持)。 2. **通过PowerShell创建VLAN接口** ```powershell Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "VLAN ID" -DisplayValue "10" ``` 3. **使用Wireshark抓包** - 需勾选捕获设置中的"Capture VLAN Tags"选项。 --- ### **四、关键注意事项** 1. **网卡驱动支持** - 检查网卡是否支持VLAN标签处理(如Intel I350、某些Realtek芯片)。 2. **交换机端口模式** - 确保交换机端口配置为`Trunk`模式,并允许目标VLAN通过。 ```cisco switchport mode trunk switchport trunk allowed vlan 10,20 ``` 3. **混杂模式** - 抓包工具需以管理员权限运行,并启用网卡混杂模式: ```bash sudo ip link set eth0 promisc on ``` --- ### **五、验证方法** 1. **查看接口统计** ```bash ip -s link show eth0.10 ``` 2. **发送测试报文** ```bash ping -I eth0.10 192.168.10.1 # 通过VLAN接口通信 ``` --- ### **常见问题** - **Q:为什么看不到VLAN标签?** A:检查是否关闭了硬件VLAN剥离功能,或交换机未发送带标签的帧。 - **Q:虚拟化环境(VMware/KVM)如何透传VLAN?** A:需在虚拟交换机设置中启用"VLAN trunking"。 通过以上配置,即可在抓包工具(如Wireshark)中看到完整的VLAN标签报文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值