10.3. 使用命令行工具 nmcli 配置 802.1Q VLAN 标记
要查看系统中的可用接口,请使用以下命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
请注意,输出中的 NAME 字段始终表示连接 ID。它不是接口名称,即使它可能看起来相同。该 ID 可用于 nmcli 连接命令来标识连接。将 DEVICE 名称用于其他应用,如
nmcli con show
~]$ nmcli con show
NAME UUID TYPE DEVICE
System enp2s0 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet enp2s0
System enp1s0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet enp1s0
firewalld。
要在以太网接口 enp1s0 上创建一个 802.1Q VLAN 接口,带有 VLAN 接口 VLAN10 和 ID
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
请注意,由于 VLAN 接口没有给出任何
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
10,请发出以下命令:
nmcli con add type vlan ifname VLAN10 dev enp1s0 id 10
~]$ nmcli con add type vlan ifname VLAN10 dev enp1s0 id 10
Connection 'vlan-VLAN10' (37750b4a-8ef5-40e6-be9b-4fb21a4b6d17) successfully added.
con-name,因此名称是通过在类型前前从接口名称派生而来的。或者,使用 con-name 选项指定一个名称,如下所示:
nmcli con add type vlan con-name VLAN12 dev enp1s0 id 12
~]$ nmcli con add type vlan con-name VLAN12 dev enp1s0 id 12
Connection 'VLAN12' (b796c16a-9f5f-441c-835c-f594d40e6533) successfully added.
为 VLAN 接口分配地址
您可以使用与任何其他接口相同的 nmcli 命令分配静态和动态接口地址。
例如,创建具有静态
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
IPv4 地址和网关的 VLAN 接口的命令如下:
nmcli con add type vlan con-name VLAN20 dev enp1s0 id 20 ip4 10.10.10.10/24 \ gw4 10.10.10.254
~]$ nmcli con add type vlan con-name VLAN20 dev enp1s0 id 20 ip4 10.10.10.10/24 \
gw4 10.10.10.254
要创建带有动态分配寻址的 VLAN 接口,请按如下所示发出命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
nmcli con add type vlan con-name VLAN30 dev enp1s0 id 30
~]$ nmcli con add type vlan con-name VLAN30 dev enp1s0 id 30
有关使用 nmcli 命令配置接口的示例,请参阅 第 3.3.6 节 “使用 nmcli 连接到网络”。
要查看创建的 VLAN 接口,请按如下方式发出命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
要查看有关新配置连接的详细信息,请按如下所示发出命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
nmcli(1) man page 的 VLAN 部分列出了 VLAN 命令的其他选项。在 man page 中,创建 VLAN 的设备称为父设备。在上面的示例中,设备通过其接口名称 enp1s0 指定,它也可以通过连接 UUID 或 MAC 地址来指定。
在以太网接口 enp2s0 上创建一个带有入口优先级映射的 802.1Q VLAN 连接配置集,名称 VLAN1 ID
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
13,发出如下命令:
nmcli con add type vlan con-name VLAN1 dev enp2s0 id 13 ingress "2:3,3:5"
~]$ nmcli con add type vlan con-name VLAN1 dev enp2s0 id 13 ingress "2:3,3:5"
要查看与上述创建的 VLAN 关联的所有参数,请按如下所示发出命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
nmcli connection show vlan-VLAN10
~]$ nmcli connection show vlan-VLAN10
要更改 MTU,请按如下所示发出命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
MTU 设置决定了网络层数据包的最大大小。链路层帧可以附带的载荷的最大大小反过来限制了网络层 MTU。对于标准以太网帧,这意味着 MTU 为 1500 字节。设置 VLAN 时,无需更改 MTU,因为链路层标头的大小会增加 4 字节,以适应 802.1Q 标签。
nmcli connection modify vlan-VLAN10 802.mtu 1496
~]$ nmcli connection modify vlan-VLAN10 802.mtu 1496
编写本文时,
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
connection.interface-name 和 vlan.interface-name 必须相同(如果已设置)。因此,必须使用 nmcli 的交互模式同时更改它们。要更改 VLAN 连接名称,请使用以下命令:
nmcli con edit vlan-VLAN10
~]$ nmcli con edit vlan-VLAN10
nmcli> set vlan.interface-name superVLAN
nmcli> set connection.interface-name superVLAN
nmcli> save
nmcli> quit
nmcli 实用程序可用于设置和清除
VLAN 的状态同步到父接口或主接口(在其上创建 VLAN 的接口或设备)的状态。如果父接口设置为 “down” 管理状态,则所有关联的 VLAN 将被设置,并且所有路由都会从路由表中清除。标志
ioctl 标志,以改变 802.1Q 代码函数的方式。NetworkManager 支持以下 VLAN 标记:
- 0x01 - 重新排序输出数据包标头
- 0x02 - 使用 GVRP 协议
- 0x04 - 接口及其 master 的松散绑定
0x04 可启用 松散绑定 模式,其中仅操作状态从父对象传递到关联的 VLAN,但不更改 VLAN 设备状态。
要设置 VLAN 标记,请按如下方式发出命令:
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
nmcli connection modify vlan-VLAN10 vlan.flags 1
~]$ nmcli connection modify vlan-VLAN10 vlan.flags 1
有关 nmcli 简介,请参阅 第 3.3 节 “使用 nmcli 配置 IP 网络”。