教你如何在Linux上划分VLAN

系统 Linux
在某些场景中,我们希望在Linux服务器(CentOS / RHEL)上的同一网卡分配来自不同VLAN的多个ip。

[[357698]]

 在某些场景中,我们希望在Linux服务器(CentOS / RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来实现,但要实现这一点,首先必须确保交换机上添加多个vlan。

[[357699]]

假设我们有一个Linux服务器,其中有两个以太网卡(ens33和ens38),第一个网卡(ens33)用于数据流量,第二个网卡(ens38)用于控制/管理流量。对于数据流,将使用多个vlan(将在数据流网卡上分配来自不同vlan的多个ip)。

假设从交换机连接到服务器数据流量网卡的端口被配置为Trunk,通过映射多个vlan到它。下面是映射到数据流量网卡的vlan:

  •  VLAN ID (200),172.168.10.0/24
  •  VLAN ID (300),172.168.20.0/24

在CentOS 7 /RHEL 7 / CentOS 8 /RHEL 8系统上使用VLAN标记接口,必须加载内核模块8021q。

使用以下命令加载内核模块“8021q” 

  1. # 先列出模块,发现没有8021q模块。  
  2. [root@localhost ~]# lsmod | grep -i 8021q  
  3. # 加载模块 
  4. [root@localhost ~]# modprobe --first-time 8021q  
  5. [root@localhost ~]# lsmod | grep -i 8021q  
  6. 8021q                  33080  0   
  7. garp                   14384  1 8021q  
  8. mrp                    18542  1 8021q 

使用modinfo命令列出8021q的信息: 

  1. [root@localhost ~]# modinfo 8021q 

现在使用ip命令创建vlan 200和vlan 300到ens33网卡: 

  1. # 创建vlan 200和vlan 300  
  2. [root@localhost ~]# ip link add link ens33 name ens33.200 type vlan id 200  
  3. [root@localhost ~]# ip link add link ens33 name ens33.300 type vlan id 300 

发现ens33.200和ens33.300的链路状态为DOWN,下面启用它们。 

  1. # 启用vlan 200 和vlan 300  
  2. [root@localhost ~]# ip link set ens33.200 up  
  3. [root@localhost ~]# ip link set ens33.300 up 

下面为两个vlan 分配ip地址: 

  1. [root@localhost ~]# ip address add 172.168.10.51/24 dev ens33.200  
  2. [root@localhost ~]# ip address add 172.168.20.51/24 dev ens33.300 

可以看到ens33.200和ens33.300已经配置好ip地址了。

但是上面使用ip address添加的VLAN和地址不会永久生效的。重启系统之后都不存在了。我们需要把这些配置保存在配置文件里面。

首先修改ifcfg-ens33的配置文件,其次创建ifcfg-ens33.200和ifcfg-ens33.300配置文件: 

  1. [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33   
  2. TYPE=Ethernet  
  3. BOOTPROTO=none  
  4. DEVICE=ens33  
  5. ONBOOT=yes 

接下来为vlan 200创建配置文件,命名为ifcfg-ens33.200 

  1. [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33.200  
  2. DEVICE=ens33.200  
  3. BOOTPROTO=none  
  4. ONBOOT=yes  
  5. IPADDR=172.168.10.51  
  6. PREFIX=24  
  7. NETWORK=172.168.10.0  
  8. VLAN=yes 

接下来为vlan 300创建配置文件,命名为ifcfg-ens33.300 

  1. [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33.300  
  2. DEVICE=ens33.300  
  3. BOOTPROTO=none  
  4. ONBOOT=yes  
  5. IPADDR=172.168.20.51  
  6. PREFIX=24  
  7. NETWORK=172.168.20.0  
  8. VLAN=yes 

编辑完配置文件,重启一下网络服务。 

  1. [root@localhost ~]# systemctl restart network 

可以看到vlan200,300的信息都没有消失。 

 

责任编辑:庞桂玉 来源: 良许Linux
相关推荐

2014-11-06 09:36:50

OVSvlan

2009-07-28 08:39:56

Linux应用软件Linux应用

2021-04-04 22:56:47

Linux循环用户

2014-11-11 16:59:52

VLANWLAN

2012-05-03 09:58:19

VLANVLAN划分

2018-08-30 14:31:28

Linux磁盘LVM

2022-04-23 16:36:30

Linux密码

2023-12-14 13:02:00

BashLinuxShell

2024-01-30 20:06:18

RHELVLAN

2022-08-19 15:02:10

Linuxsu 命令

2021-03-07 22:36:02

LinuxSSH电子邮件

2009-09-23 13:04:58

HibernateOracle sequ

2011-01-19 11:17:20

2022-04-27 08:55:01

Spring外部化配置

2019-04-14 22:33:52

网络层协议VLAN虚拟局域网

2012-12-19 11:32:55

路由器VLAN

2019-04-26 13:59:10

网络VLAN虚拟局域网

2019-01-22 10:58:07

2014-06-30 09:32:24

VLAN交换机

2013-08-07 09:58:01

点赞
收藏

51CTO技术栈公众号