CentOS 7下如何用ip link命令创建配置VLAN?

在现代网络架构中,虚拟局域网扮演着至关重要的角色,它通过逻辑方式将一个物理网络划分为多个独立的广播域,从而增强了网络的安全性、灵活性和管理效率,在 CentOS 7 系统中,ip link 命令作为 iproute2 软件包的核心工具,提供了强大而简洁的方式来管理网络接口,包括创建和配置 VLAN,本文将详细介绍如何在 CentOS 7 上使用 ip link 命令来管理 VLAN,从临时配置到持久化设置,并提供故障排除的思路。

CentOS 7下如何用ip link命令创建配置VLAN?

准备工作与环境检查

在开始创建 VLAN 之前,确保你的系统已具备必要条件,你需要拥有 root 权限或使用 sudo 执行命令,VLAN 功能依赖于内核中的 8021q 模块,虽然现代 CentOS 7 内核通常会自动加载此模块,但手动检查并确认其存在是一个良好的习惯。

可以通过以下命令检查 8021q 模块是否已加载:

lsmod | grep 8021q

如果该命令没有任何输出,则表示模块未加载,你可以使用 modprobe 命令来手动加载它:

modprobe 8021q

加载后,再次执行 lsmod | grep 8021q 应该就能看到 8021q 模块的信息了,请确保你的物理网卡(eth0ens33)已正常工作,并且连接的物理交换机端口已配置为 Trunk 模式,并允许后续将要创建的 VLAN ID 通过。

使用 ip link 临时创建 VLAN

临时配置非常适合用于测试和快速验证,这些配置在系统重启后会丢失,我们以物理网卡 eth0 为例,创建一个 VLAN ID 为 100 的 VLAN 接口,接口名称通常命名为 eth0.100

步骤 1:创建 VLAN 接口
使用 ip link add 命令创建新的 VLAN 接口,命令结构清晰:ip link add link <物理接口> name <VLAN接口名> type vlan id <VLAN ID>

ip link add link eth0 name eth0.100 type vlan id 100

这条命令告诉内核:在物理接口 eth0 的基础上,创建一个名为 eth0.100 的新接口,其类型为 VLAN,VLAN 标识为 100。

步骤 2:启动 VLAN 接口
新创建的接口默认处于 DOWN 状态,需要手动启动它。

ip link set dev eth0.100 up

步骤 3:为 VLAN 接口分配 IP 地址
接口启动后,就可以像配置普通网卡一样为其分配 IP 地址。

CentOS 7下如何用ip link命令创建配置VLAN?

ip addr add 192.168.100.10/24 dev eth0.100

这里我们为 eth0.100 接口分配了一个 168.100.10 的 IP 地址,子网掩码为 24 位。

步骤 4:验证配置
配置完成后,使用 ip 命令验证结果。ip -d link show eth0.100 可以显示 VLAN 接口的详细信息,包括其绑定的物理接口和 VLAN ID。

ip -d link show eth0.100

输出结果中应包含 vlan protocol 802.1Q id 100 等信息,确认 VLAN 创建成功。ip addr show eth0.100 可以用来检查 IP 地址是否已正确分配。

配置持久化

为了使 VLAN 配置在系统重启后依然生效,需要通过配置文件的方式进行定义,在 CentOS 7 中,网络配置文件存放在 /etc/sysconfig/network-scripts/ 目录下。

你需要为物理接口和 VLAN 接口分别创建或修改配置文件。


确保物理接口配置文件中 ONBOOT=yes,以便系统启动时激活该接口。

VLAN 接口配置 (ifcfg-eth0.100)
创建一个新的配置文件,文件名与 VLAN 接口名保持一致。

下表展示了两个配置文件的示例内容:

文件路径 示例
/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
/etc/sysconfig/network-scripts/ifcfg-eth0.100 DEVICE=eth0.100
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
VLAN=yes
PHYSDEV=eth0

在 VLAN 接口的配置文件中,VLAN=yes 是关键参数,它告诉系统这是一个 VLAN 接口。PHYSDEV=eth0 则明确指定了其依赖的物理设备。

CentOS 7下如何用ip link命令创建配置VLAN?

保存配置文件后,重启网络服务使配置生效:

systemctl restart network

重启后,可以使用 ip addr showifconfig 命令来确认 eth0.100 接口及其 IP 地址是否已自动加载。

常见问题与排错

在配置 VLAN 的过程中,可能会遇到一些问题,以下是一些常见的排查方向:

  • 物理交换机配置:这是最常见的问题来源,请务必确认交换机端口模式为 Trunk,并且对应的 VLAN ID(如本例中的 100)已被允许通过。
  • 内核模块:再次确认 8021q 模块已加载,如果问题依旧,可以尝试卸载后重新加载 (rmmod 8021q && modprobe 8021q)。
  • 防火墙规则:CentOS 7 默认使用 firewalld,检查防火墙规则,确保没有阻止来自或发往 VLAN 接口 IP 地址的流量,可以使用 firewall-cmd --get-active-zonesfirewall-cmd --list-all --zone=<zone_name> 来检查。
  • 接口命名不一致:确保 ip link 命令中使用的物理接口名、VLAN 接口名与配置文件中的 DEVICEPHYSDEV 参数完全一致。

相关问答 FAQs

问题 1:ip link 和旧版的 vconfig 命令有何区别?

解答: vconfig 是早期用于配置 VLAN 的工具,现在已经逐渐被弃用。ip linkiproute2 工具集的一部分,它提供了一个统一、现代且功能更强大的接口来管理各种网络设备、策略路由和隧道等,使用 ip link 是当前所有主流 Linux 发行版推荐的标准做法,其语法更一致,功能也更全面。

问题 2:如何删除一个已经创建的 VLAN 接口?

解答: 删除 VLAN 接口非常简单,对于临时创建的接口,可以使用 ip link del 命令,要删除 eth0.100 接口,执行:

ip link del dev eth0.100

如果该接口是通过配置文件持久化的,那么在执行上述命令后,还必须删除对应的配置文件(如 /etc/sysconfig/network-scripts/ifcfg-eth0.100),然后重启网络服务,以确保其在系统重启后不会重新被创建。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-10 10:05
下一篇 2025-10-10 10:07

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信