用来在Linux系统上创建VLAN虚拟接口的2个命令:
先执行ip link add link eth0 name eth0.2 type vlan id 2
-
分解:
ip link add # 添加一个网络链路(接口)
link eth0 # 基于物理接口eth0(父接口)
name eth0.2 # 新接口名为eth0.2(惯例:物理接口名.VLAN ID)
type vlan # 接口类型是VLAN
id 2 # VLAN ID = 2 -
实际效果:
-
在系统内核中创建一个虚拟网络接口
eth0.2 -
这个接口只处理VLAN ID=2的流量
-
物理网卡
eth0现在会接收/发送带VLAN Tag的帧
-
再执行ip addr add 172.168.2.30/24 dev eth0.2
-
分解:
ip addr add # 添加IP地址
172.168.2.30/24 # IP地址和子网掩码
dev eth0.2 # 分配给eth0.2接口 -
实际效果:
-
给VLAN 2的虚拟接口分配IP地址
-
系统现在可以通过这个接口与VLAN 2中的其他设备通信
-
为什么需要配置VLAN?
-
场景:服务器需要接入多个VLAN
-
交换机Trunk端口(允许VLAN 2,3,10)
│
│
┌─────┴─────┐
Linux服务器
└─────┬─────┘
│eth0物理网卡
│
┌───────────┼───────────┐
eth0.2 eth0.3 eth0.10
(VLAN 2) (VLAN 3) (VLAN 10)
172.168.2.30 192.168.3.50 10.0.10.100
-
好处:
-
单网卡多网络:一块物理网卡(eth0)接入多个逻辑网络(多个虚拟网卡vlan)
-
隔离与安全:不同VLAN流量在OS层面就隔离
-
灵活配置:每个VLAN接口独立IP、路由、防火墙规则
-
删除VLAN接口
# 删除VLAN接口(IP地址会自动删除)
ip link delete eth0.2
# 或者删除父接口时,子VLAN接口也会被删除
ip link delete eth0