Show Table of Contents
7.3. 使用命令行工具 nmcli 配置 802.1Q VLAN 标记
请运行以下命令查看系统中的可用接口:
~]$ nmcli con show
NAME UUID TYPE DEVICE
System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet eth1
System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eth0
注:输出结果中的 NAME 字段总是表示连接 ID,而不是接口名称,尽管它们很相似。可在 nmcli connection 命令中使用该 ID 以识别连接。在其他应用程序中可使用 DEVICE 名称,比如 firewalld。
请运行以下命令,使用 VLAN 接口 VLAN10 及 ID
10 在以太网接口中创建 802.1Q VLAN 接口:
~]$ nmcli con add type vlan ifname VLAN10 dev eth0 id 10
Connection 'vlan-VLAN10' (37750b4a-8ef5-40e6-be9b-4fb21a4b6d17) successfully added.
注:没有为 VLAN 接口提供 con-name,该名称由接口名称及类型构成。另外,也可以使用 con-name 选项指定名称,如下:
~]$ nmcli con add type vlan con-name VLAN12 dev eth0 id 12
Connection 'VLAN12' (b796c16a-9f5f-441c-835c-f594d40e6533) successfully added.
为 VLAN 接口分配地址
可使用 nmcli 命令分配静态和动态接口地址及其他接口。
例如:创建使用静态
IPv4 地址和网关的命令,如下:
~]$nmcli con add type vlan con-name VLAN20 dev eth0 id 20 ip4 10.10.10.10/24 \gw4 10.10.10.254
请运行以下命令创建使用动态分配地址的 VLAN 接口:
~]$ nmcli con add type vlan con-name VLAN30 dev eth0 id 30
有关使用 nmcli 命令配置接口的示例,请查看 第 2.3.2 节 “使用 nmcli 连接到网络”。
请使用以下命令检查创建的 VLAN 接口:
~]$ nmcli con show
NAME UUID TYPE DEVICE
VLAN12 4129a37d-4feb-4be5-ac17-14a193821755 vlan eth0.12
System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet eth1
System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eth0
vlan-VLAN10 1be91581-11c2-461a-b40d-893d42fed4f4 vlan VLAN10
请使用以下命令查看新配置连接的详情:
~]$ nmcli -p con show VLAN12
===============================================================================
Connection profile details (VLAN12)
===============================================================================
connection.id: VLAN12
connection.uuid: 4129a37d-4feb-4be5-ac17-14a193821755
connection.interface-name: --
connection.type: vlan
connection.autoconnect: yes…
-------------------------------------------------------------------------------
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu: auto…
vlan.interface-name: --
vlan.parent: eth0
vlan.id: 12
vlan.flags: 0 (NONE)
vlan.ingress-priority-map:
vlan.egress-priority-map:
-------------------------------------------------------------------------------
===============================================================================
Activate connection details (4129a37d-4feb-4be5-ac17-14a193821755)
===============================================================================
GENERAL.NAME: VLAN12
GENERAL.UUID: 4129a37d-4feb-4be5-ac17-14a193821755
GENERAL.DEVICES: eth0.12
GENERAL.STATE: activating[output truncated]
VLAN 命令的其他选项,请查看
nmcli(1) man pag 的 VLAN 部分。在 man page 中,创建该 VLAN 的设备是作为上级设备使用。在上述示例中是使用其接口名称 eth0 指定该设备,也可以使用连接 UUID 或者 MAC 地址指定。
请运行以下命令,使用与以太网接口 eth1 映射的入口优先级、名称 VLAN1 及 ID
13 创建 802.1Q VLAN 连接配置文件:
~]$ nmcli con add type vlan con-name VLAN1 dev eth2 id 13 ingress "2:3,3:5"
请运行以下命令查看与创建上述 VLAN 有关的所有参数:
~]$ nmcli connection show vlan-VLAN10
请运行以下命令更改 MTU:
~]$ nmcli connection modify vlan-VLAN10 802.mtu 1496
MTU 设置决定网络层数据包的最大大小。链路层帧能够承受的最大有效负载会反过来限制网络层 MTU。标准以太网帧为 1500 字节 MTU。设置 VLAN 时不需要更改 MTU,因为链接层标头会增大 4 字节以适应 802.1Q 标记。
写入时,
connection.interface-name 和 vlan.interface-name 必须一致(如果设置这两个选项)。因此必须使用 nmcli 的互动模式同时更改它们。请运行以下命令更改 VLAN 名称:
~]$nmcli con edit vlan-VLAN10nmcli>set vlan.interface-name superVLANnmcli>set connection.interface-name superVLANnmcli>savenmcli>quit
可使用 nmcli 程序设置和清除
VLAN 的状态与上级接口接口或主接口(即创建 VLAN 的接口或设备)状态同步。如果将上级接口设定为 “down” 管理状态,则会将所有关联的 VLAN 设定为 down 状态,并在路由表中刷新所有路由。标签
ioctl 标签,这样会更改 802.1Q 代码的作用方式。NetworkManager 支持以下 VLAN 标签:
- 0x01 - 将输出数据包标头重新排序
- 0x02 - 使用 GVRP 协议
- 0x04 - 将接口与其上级接口松散绑定
0x04 启用 松散连接 模式,在该模式中,可将运行状态从上级接口传递给关联的 VLAN,但不会更改 VLAN 状态。
请运行以下命令设置 VLAN 标签:
~]$ nmcli connection modify vlan-VLAN10 vlan.flags 1
有关 nmcli 的介绍请参考 第 2.3 节 “使用 NetworkManager 命令行工具 nmcli”。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.