在CentOS系统中添加VLAN(虚拟局域网)并配置端口是一项常见的网络管理任务,适用于需要网络隔离、流量优化或安全管理的场景,VLAN技术允许在物理网络中划分多个逻辑子网,每个VLAN相当于一个独立的广播域,有效提升网络性能和安全性,本文将详细介绍在CentOS系统中通过命令行工具添加VLAN并配置端口的完整步骤,包括环境准备、VLAN创建、端口绑定及测试验证等内容。

环境准备
在开始配置前,需确保系统满足以下条件:1. 安装CentOS 7或更高版本,推荐使用最小化安装以减少不必要的依赖;2. 具有root或sudo权限的用户账户;3. 物理网卡已正确识别并启用,可通过ip addr命令查看;4. 安装必要的网络工具,如iproute2和vlan包,可通过yum install -y iproute vlan命令安装,建议提前规划VLAN ID(1-4094,其中1和4093通常保留)和对应的IP地址段,避免与现有网络冲突。
创建VLAN接口
VLAN的创建依赖于Linux内核的802.1q模块,首先需确保该模块已加载,执行lsmod | grep 8021q命令检查模块状态,若未加载可通过modprobe 8021q命令手动加载,使用ip link add link [物理网卡名] name [VLAN接口名] type vlan id [VLAN ID]命令创建VLAN接口,在物理网卡eth0上创建VLAN ID为100的接口,可执行:ip link add link eth0 name eth0.100 type vlan id 100,创建后,通过ip link show命令可查看到新接口eth0.100的状态,此时接口处于DOWN状态。
配置VLAN接口IP地址
VLAN接口创建后需分配IP地址以实现网络通信,使用ip addr add [IP地址]/[子网掩码] dev [VLAN接口名]命令配置IP,例如ip addr add 192.168.100.1/24 dev eth0.100,随后,通过ip link set [VLAN接口名] up命令启用接口,如ip link set eth0.100 up,再次执行ip addr show eth0.100,可看到接口已获取IP并处于UP状态,若需实现跨网络通信,还需配置默认网关,例如ip route add default via [网关IP] dev eth0.100。
持久化配置
上述命令为临时配置,系统重启后会失效,为保持配置持久化,需修改网络配置文件,在CentOS 7及以上版本,推荐使用NetworkManager或Netplan工具,以NetworkManager为例,在/etc/sysconfig/network-scripts/目录下创建VLAN接口配置文件,如ifcfg-eth0.100如下:

DEVICE=eth0.100
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.1
NETMASK=255.255.255.0
VLAN=yes
PHYSDEV=eth0 保存文件后,执行systemctl restart network命令重启网络服务,对于CentOS 8及以上版本,可通过nmcli con add type vlan con-name vlan100 dev eth0 id 100命令创建VLAN连接,并使用nmcli con mod vlan100 ipv4.method manual ipv4.addresses 192.168.100.1/24配置IP,最后nmcli con up vlan100激活连接。
端口绑定与Trunk模式配置
在交换机环境中,端口需设置为Trunk模式以允许多个VLAN流量通过,假设物理网卡eth0连接到交换机Trunk端口,需确保交换机端口已配置允许对应的VLAN ID通过,在CentOS端,若需将物理网卡作为Trunk端口,可通过ip link set eth0 type vlan-raw-device eth0命令启用VLAN过滤功能(需内核支持),可通过vconfig add [物理网卡名] [VLAN ID]命令(传统工具)或ip link add link eth0 name eth0.[VLAN ID] type vlan id [VLAN ID](推荐)创建多个VLAN接口,实现多VLAN绑定。
防火墙与SELinux配置
VLAN配置完成后,需检查防火墙规则是否阻止跨VLAN通信,使用firewall-cmd --get-active-zones查看防火墙区域,若VLAN接口位于public区域,可通过firewall-cmd --permanent --zone=public --add-interface=eth0.100命令将接口添加到区域,并重新加载防火墙firewall-cmd --reload,对于SELinux,默认策略可能限制网络访问,可通过getsebool -a | grep network查看相关布尔值,必要时使用setsebool -P [布尔值] on调整策略,例如setsebool -P httpd_can_network_connect 1(若涉及Web服务)。
测试与验证
配置完成后,需进行连通性测试,1. 在同一VLAN内的其他设备上ping CentOS服务器的VLAN IP,验证二层连通性;2. 使用tcpdump -i eth0 -n命令在物理网卡上抓包,检查是否收到VLAN标记的流量;3. 若需跨VLAN通信,配置三层交换机或路由器实现VLAN间路由,并在CentOS服务器上添加静态路由或启用IP转发(echo 1 > /proc/sys/net/ipv4/ip_forward),可通过cat /proc/net/vlan/config命令查看VLAN配置摘要,确保所有参数正确。

相关问答FAQs
Q1: 如何删除已创建的VLAN接口?
A: 若为临时配置,可执行ip link del [VLAN接口名]命令删除,例如ip link del eth0.100;若为持久化配置,需删除对应的网络配置文件(如/etc/sysconfig/network-scripts/ifcfg-eth0.100)并重启网络服务,对于NetworkManager管理的连接,可通过nmcli con del vlan100命令删除。
Q2: VLAN配置后无法通信,可能的原因及解决方法?
A: 常见原因包括:1. 物理网卡未启用或VLAN接口未UP,执行ip link set [物理网卡名] up和ip link set [VLAN接口名] up;2. 交换机Trunk端口未允许对应VLAN通过,需登录交换机配置端口VLAN列表;3. 防火墙或SELinux阻止流量,通过firewall-cmd --list-all和getsebool -a | grep httpd检查并调整策略;4. IP地址或网关配置错误,使用ip addr和ip route命令核实配置。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复