我正在通过套接字捕获数据包。在读取这些捕获的数据包时,我意识到 VLAN 标签不知何故被删除了。在网上浏览后,我读到了一些关于 Linux 发行版本身剥离 VLAN 标签的内容。有人想在这里解释一下吗?
答案1
通常,网络客户端不需要 802.1q 标记,交换机和交换机/路由器/防火墙配置之间才需要,因此 Linux 世界中默认不启用此功能。但当然,您可以将 Linux 服务器设置为防火墙或进行路由,因此在这些情况下,您需要保留标记的数据包,以便交换机知道将 Linux 服务器发出的流量发送到何处。
Ubuntu 需要支持 VLAN、802.1q 的设备和驱动程序。您需要安装用户空间工具 VLAN 才能启用接口的配置。
sudo apt-get install vlan
然后您需要加载模块:
sudo modprobe 8021q
然后,您需要将物理接口添加到 vlan 接口(这将为该 vlan 创建一个新的子接口):
sudo vconfig add eth1 10
然后最后为子接口创建一个 IP 地址:
sudo ip addr add 10.0.0.1/24 dev eth1.10
如果你想让它永久生效:
在启动时将模块添加到内核:
sudo su -c 'echo "8021q" >> /etc/modules'
然后在 /etc/networking/interfaces 中创建一个节:
auto eth1.10
iface eth1.10 inet static
address 10.0.0.1
netmask 255.255.255.0
vlan-raw-device eth1