linux - 如何使用 vlan id 标记传出流量

标签 linux ubuntu vlan

我正在尝试路由带有 VLAN ID 4 标记的 Linux 机器 (Ubuntu 14.04) 流量。 重要的是标记将在 Linux 本身而不是在进一步的交换机中完成。

我使用这个命令创建了一个新接口(interface) eth0.4

vconfig add eth0 4
ifconfig eth0.4 10.0.0.32 broadcast 10.0.0.0 up

此外,我检查了 8021q 驱动程序是否已加载

lsmod | grep 8021q

我还添加到/etc/network/interfaces

auto eth0.4
iface eth0.4 inet static
       address 10.0.0.32
       netmask 255.255.255.0
       vlan-raw-device eth0

当我向 HTTP 网站发出请求时。我没有看到任何来自 vlan 接口(interface)的东西(使用 ifconfig)。

我想知道 Linux 是如何知道通过 vlan 的接口(interface)路由流量的?如果不是,我该如何手动配置这样的路由?

最佳答案

  1. 请注意,只有支持 VLAN 的设备才能接受 VLAN 流量,否则数据包将被丢弃。 NIC/交换机应该支持 VLAN (IEEE 802.1q)。查看本次练习涉及的设备。

  2. 请注意,某些内核/驱动程序需要一些补丁才能支持 VLAN。检查您的内核/网络驱动程序。

另一个观察是,在为 vlan 接口(interface)分配 ip 地址时,“ifconfig eth0.4 10.0.0.32 broadcast 10.0.0.0 up”可以是 “ifconfig eth0.4 10.0.0.32 网络掩码 255.255.255.0 广播 10.0.0.0 向上”。使用命令“ifconfig eth0.4”验证此配置。

关于linux - 如何使用 vlan id 标记传出流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33342146/

相关文章:

mysql - 在 Ubuntu 上安装 MySQL 8 时卡住

linux - 帧中何时添加 Vlan 标签?

c++ - 使用 C/C++ 在 Ubuntu 中查找 Arduino 连接到哪个 TTY 端口

c - 如何使用 libpcap 和 C 获取 VLAN 标签?

c - 通过netlink获取VLAN接口(interface)的真实设备

linux - 如何在 TFS 服务器的 linux 代理中运行 shell 脚本

c++ - 理解堆栈跟踪

c - 通过创建内核例程打印/proc/slabinfo

linux - 使用 shell 查找文件目录

java - 类文件未被读取