VLAN(Virtual LAN)是将单个物理网络划分为多个虚拟网络的技术,实现虚拟网络之间的物理隔离。在Linux上,我们可以使用vlan子接口来配置VLAN。
步骤- 首先需要确认网卡和内核模块是否支持vlan功能。
可以使用以下命令查看网卡是否支持vlan:
bash
$ sudo modprobe 8021q # 加载8021q内核模块
$ cat /proc/net/vlan/config # 查看VLAN配置,有输出表示支持
如果没有输出,则说明当前网卡不支持vlan,或者内核模块未加载。需要检查网卡型号和内核版本是否支持vlan功能。
- 创建vlan子接口
在创建vlan子接口前,需要确定要加入的VLAN ID,以及该VLAN所在的物理网卡名。
在这里,我们以加入VLAN ID为10的VLAN为例,物理网卡名为eth0。
bash
# 创建vlan子接口
$ sudo ip link add link eth0 name eth0.10 type vlan id 10
# 启用vlan子接口
$ sudo ip link set dev eth0.10 up
在上述示例中,我们创建了一个vlan子接口 eth0.10,其所属的物理网卡为eth0,VLAN ID为10。然后启用该子接口。
- 配置IP地址
配置vlan子接口的IP地址和普通网卡一样,使用ip命令进行配置即可。
bash
$ sudo ip addr add 192.168.10.2/24 dev eth0.10
在上述示例中,我们为vlan子接口 eth0.10 配置了IP地址 192.168.10.2/24。
示例我们假设有两台机器,IP地址分别为 192.168.10.1 和 192.168.10.2,它们之间通过交换机连接。我们需要在这两台机器上分别配置VLAN,使得它们之间的VLAN ID为10的数据流能够隔离。
在机器1上执行以下命令:
# 创建vlan子接口
$ sudo ip link add link eth0 name eth0.10 type vlan id 10
# 启用vlan子接口
$ sudo ip link set dev eth0.10 up
# 配置IP地址
$ sudo ip addr add 192.168.10.1/24 dev eth0.10
在机器2上执行以下命令:
# 创建vlan子接口
$ sudo ip link add link eth0 name eth0.10 type vlan id 10
# 启用vlan子接口
$ sudo ip link set dev eth0.10 up
# 配置IP地址
$ sudo ip addr add 192.168.10.2/24 dev eth0.10
现在,我们可以通过ping命令测试两台机器之间的VLAN ID为10的数据流:
在机器1上执行:
$ ping 192.168.10.2
在机器2上执行:
$ ping 192.168.10.1
如果ping通,说明VLAN配置成功,两台机器之间的数据流被隔离在了VLAN10中。