嵌入式开发交流网论坛

标题: 教你如何在Linux上划分VLAN [打印本页]

作者: 雅雅—kaii    时间: 2020-12-11 15:05
标题: 教你如何在Linux上划分VLAN
地址:http://www.linuxprobe.com/linux-add-vlan.html
在某些场景中,我们希望在Linux服务器(CentOS / RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来实现,但要实现这一点,首先必须确保交换机上添加多个vlan。
[attach]55611[/attach]
假设我们有一个Linux服务器,其中有两个以太网卡(ens33和ens38),第一个网卡(ens33)用于数据流量,第二个网卡(ens38)用于控制/管理流量。对于数据流,将使用多个vlan(将在数据流网卡上分配来自不同vlan的多个ip)。
假设从交换机连接到服务器数据流量网卡的端口被配置为Trunk,通过映射多个vlan到它。下面是映射到数据流量网卡的vlan:
在CentOS 7 /RHEL 7 / CentOS 8 /RHEL 8系统上使用VLAN标记接口,必须加载内核模块8021q。
使用以下命令加载内核模块“8021q”
# 先列出模块,发现没有 8021q模块。
# lsmod | grep -i 8021q
# 加载模块
# modprobe --first-time 8021q
# lsmod | grep -i 8021q
8021q 330800
garp 1438418021q
mrp 1854218021q
使用modinfo命令列出8021q的信息:
# modinfo 8021q
[attach]55612[/attach]
现在使用ip命令创建vlan 200和vlan 300到ens33网卡:
# 创建vlan 200和vlan 300
# ip link add link ens33 name ens33.200 type vlan id 200
# ip link add link ens33 name ens33.300 type vlan id 300
[attach]55613[/attach]
发现ens33.200和ens33.300的链路状态为DOWN,下面启用它们。
# 启用vlan 200和vlan 300
# ip link set ens33.200 up
# ip link set ens33.300 up
[attach]55614[/attach]
下面为两个vlan 分配ip地址:
# ip address add 172.168.10.51/ 24dev ens33.200
# ip address add 172.168.20.51/ 24dev ens33.300
[attach]55615[/attach]
可以看到ens33.200和ens33.300已经配置好ip地址了。
但是上面使用ip address添加的VLAN和地址不会永久生效的。重启系统之后都不存在了。我们需要把这些配置保存在配置文件里面。
首先修改ifcfg-ens33的配置文件,其次创建ifcfg-ens33.200和ifcfg-ens33.300配置文件:
# vim /etc/sysconfig/network-s/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens33
ONBOOT=yes
接下来为vlan 200创建配置文件,命名为ifcfg-ens33.200
# vim /etc/sysconfig/network-s/ifcfg-ens33.200
DEVICE=ens33.200
BOOTPROTO=none
ONBOOT=yes
IPADDR= 172.168.10.51
PREFIX= 24
NETWORK= 172.168.10.0
VLAN=yes
接下来为vlan 300创建配置文件,命名为ifcfg-ens33.300
# vim /etc/sysconfig/network-s/ifcfg-ens33.300
DEVICE=ens33.300
BOOTPROTO=none
ONBOOT=yes
IPADDR= 172.168.20.51
PREFIX= 24
NETWORK= 172.168.20.0
VLAN=yes
编辑完配置文件,重启一下网络服务。
# systemctl restart network
[attach]55616[/attach]
可以看到vlan200,300的信息都没有消失。




欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/) Powered by Discuz! X3.2