在现代网络架构中,虚拟局域网扮演着至关重要的角色,它通过逻辑方式将一个物理网络划分为多个独立的广播域,从而增强了网络的安全性、灵活性和管理效率,在 CentOS 7 系统中,ip link
命令作为 iproute2
软件包的核心工具,提供了强大而简洁的方式来管理网络接口,包括创建和配置 VLAN,本文将详细介绍如何在 CentOS 7 上使用 ip link
命令来管理 VLAN,从临时配置到持久化设置,并提供故障排除的思路。
准备工作与环境检查
在开始创建 VLAN 之前,确保你的系统已具备必要条件,你需要拥有 root 权限或使用 sudo 执行命令,VLAN 功能依赖于内核中的 8021q
模块,虽然现代 CentOS 7 内核通常会自动加载此模块,但手动检查并确认其存在是一个良好的习惯。
可以通过以下命令检查 8021q
模块是否已加载:
lsmod | grep 8021q
如果该命令没有任何输出,则表示模块未加载,你可以使用 modprobe
命令来手动加载它:
modprobe 8021q
加载后,再次执行 lsmod | grep 8021q
应该就能看到 8021q
模块的信息了,请确保你的物理网卡(eth0
或 ens33
)已正常工作,并且连接的物理交换机端口已配置为 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 地址。
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
则明确指定了其依赖的物理设备。
保存配置文件后,重启网络服务使配置生效:
systemctl restart network
重启后,可以使用 ip addr show
或 ifconfig
命令来确认 eth0.100
接口及其 IP 地址是否已自动加载。
常见问题与排错
在配置 VLAN 的过程中,可能会遇到一些问题,以下是一些常见的排查方向:
- 物理交换机配置:这是最常见的问题来源,请务必确认交换机端口模式为 Trunk,并且对应的 VLAN ID(如本例中的 100)已被允许通过。
- 内核模块:再次确认
8021q
模块已加载,如果问题依旧,可以尝试卸载后重新加载 (rmmod 8021q
&&modprobe 8021q
)。 - 防火墙规则:CentOS 7 默认使用
firewalld
,检查防火墙规则,确保没有阻止来自或发往 VLAN 接口 IP 地址的流量,可以使用firewall-cmd --get-active-zones
和firewall-cmd --list-all --zone=<zone_name>
来检查。 - 接口命名不一致:确保
ip link
命令中使用的物理接口名、VLAN 接口名与配置文件中的DEVICE
和PHYSDEV
参数完全一致。
相关问答 FAQs
问题 1:ip link
和旧版的 vconfig
命令有何区别?
解答: vconfig
是早期用于配置 VLAN 的工具,现在已经逐渐被弃用。ip link
是 iproute2
工具集的一部分,它提供了一个统一、现代且功能更强大的接口来管理各种网络设备、策略路由和隧道等,使用 ip link
是当前所有主流 Linux 发行版推荐的标准做法,其语法更一致,功能也更全面。
问题 2:如何删除一个已经创建的 VLAN 接口?
解答: 删除 VLAN 接口非常简单,对于临时创建的接口,可以使用 ip link del
命令,要删除 eth0.100
接口,执行:
ip link del dev eth0.100
如果该接口是通过配置文件持久化的,那么在执行上述命令后,还必须删除对应的配置文件(如 /etc/sysconfig/network-scripts/ifcfg-eth0.100
),然后重启网络服务,以确保其在系统重启后不会重新被创建。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复