CentOS 7.4 作为一款广泛使用的 Linux 发行版,在企业级网络环境中,VLAN(虚拟局域网)的配置是一项基础且重要的技能,VLAN 技术可以将一个物理网络划分为多个逻辑上的虚拟网络,从而实现网络隔离、广播域控制以及安全性的提升,本文将详细介绍在 CentOS 7.4 系统中配置 VLAN 的具体步骤、注意事项及相关验证方法。
理解 VLAN 与网络接口
在开始配置之前,有必要先了解几个基本概念,VLAN 是通过将网络设备(如交换机、路由器)上的端口划分到不同的 VLAN 来实现的,而 Linux 系统本身也可以模拟这一过程,在 CentOS 7.4 中,物理网络接口(如 eth0)可以通过创建 VLAN 子接口(如 eth0.10)来加入特定的 VLAN,每个 VLAN 子接口都对应一个 VLAN ID,并与该 VLAN 的 IP 网络相关联。
安装必要的工具包
在 CentOS 7.4 上,VLAN 的配置通常依赖于 iproute 和 net-tools 这两个工具包。iproute 提供了强大的 ip 命令,是现代 Linux 网络管理的主要工具,而 net-tools 则包含了传统的 ifconfig 命令,有时在快速查看接口信息时仍然有用,可以通过以下命令来安装它们:
sudo yum install -y iproute net-tools
安装完成后,可以通过 ip link show 或 ifconfig -a 命令来查看当前系统中的所有网络接口,确认物理接口的名称(eth0)。
配置 VLAN 子接口
VLAN 子接口的创建主要通过 ip 命令实现,假设物理接口为 eth0,需要为其创建 VLAN ID 为 10 的子接口,并为其分配 IP 地址 192.168.10.1/24,可以按照以下步骤操作:
创建 VLAN 子接口,命令中的 link 指定物理接口,type 指定 VLAN 类型,id 指定 VLAN ID。
sudo ip link add link eth0 name eth0.10 type vlan id 10
创建成功后,使用 ip link show 命令,应该能看到名为 eth0.10 的新接口。
为该 VLAN 子接口配置 IP 地址并启用它:
sudo ip addr add 192.168.10.1/24 dev eth0.10 sudo ip link set dev eth0.10 up
VLAN 10 的子接口已经配置完成,并可以正常通信,如果需要创建更多的 VLAN,只需重复上述步骤,更改 VLAN ID 和 IP 地址即可,例如创建 VLAN ID 为 20 的子接口:
sudo ip link add link eth0 name eth0.20 type vlan id 20 sudo ip addr add 192.168.20.1/24 dev eth0.20 sudo ip link set dev eth0.20 up
使 VLAN 配置永久生效
上述配置在系统重启后会丢失,为了使配置永久生效,需要将配置写入网络配置文件,在 CentOS 7.4 中,推荐使用 NetworkManager 的连接配置文件。
-
为每个 VLAN 创建一个连接配置文件,文件名可以自定义,通常以
ifcfg-开头,为 VLAN 10 创建文件:sudo nmcli con add type vlan ifname eth0.10 dev eth0 id 10 ip4 192.168.10.1/24
-
上述命令会自动生成
/etc/sysconfig/network-scripts/ifcfg-eth0.10文件,你也可以手动编辑该文件,确保其内容如下:TYPE=VLAN DEVICE=eth0.10 PHYSDEV=eth0 VLAN=yes BOOTPROTO=none IPADDR=192.168.10.1 PREFIX=24 ONBOOT=yes
-
对其他 VLAN 重复此过程,创建各自的配置文件,配置完成后,可以使用
nmcli con reload和nmcli con up eth0.10命令来重新加载并激活连接。
验证 VLAN 配置
配置完成后,必须进行验证以确保一切正常工作,使用 ip addr show 命令查看所有接口的 IP 地址信息,确认 VLAN 子接口及其 IP 地址已正确配置,使用 ping 命令测试 VLAN 内部的连通性,例如从 CentOS 7.4 服务器 ping VLAN 10 网段内的另一台主机,如果需要跨 VLAN 通信,还需确保三层交换机或路由器已正确配置 VLAN 间路由。
相关问答 FAQs
问题 1:为什么我在创建 VLAN 子接口后,无法 ping 通 VLAN 网关?
解答: 这通常有几个原因,请确认连接到服务器的物理交换机端口已正确配置为 Trunk 模式,并允许对应的 VLAN ID 通过,如果交换机端口是 Access 模式,则无法传输 VLAN 流量,检查 CentOS 7.4 系统上的防火墙(如 firewalld 或 iptables)是否阻止了 ICMP 请求,可以尝试临时关闭防火墙进行测试,验证 VLAN 子接口的 IP 地址和子网掩码是否与网段配置一致,以及物理链路是否正常(如 ethtool eth0 查看链路状态)。
问题 2:如何删除一个已经配置好的 VLAN 子接口?
解答: 删除 VLAN 子接口同样可以通过 ip 命令或 NetworkManager 来实现,如果使用 ip 命令,首先需要关闭接口,然后删除它:
sudo ip link set dev eth0.10 down sudo ip link del dev eth0.10
如果使用 NetworkManager,可以通过以下命令删除对应的连接:
sudo nmcli con del eth0.10
删除后,可以再次使用 ip link show 确认接口是否已消失,对于永久配置,删除连接后,对应的 ifcfg-* 配置文件也可以手动从 /etc/sysconfig/network-scripts/ 目录中移除。