设想我们有一台配备两个以太网卡(ens33和ens38)的Linux服务器。其中,ens33用于数据流量,ens38用于控制或管理流量。我们的目标是,在数据流量的网卡上配置多个VLAN,并分别为每个VLAN分配不同的IP地址。
首先,假设交换机连接到服务器数据流量网卡的端口已经配置为Trunk,并映射了多个VLAN。以下是映射到ens33网卡的两个VLAN示例:
- VLAN ID 200,IP地址范围172.168.10.0/24 - VLAN ID 300,IP地址范围172.168.20.0/24
在CentOS 7/RHEL 7或CentOS 8/RHEL 8系统上,要使用VLAN标记接口,我们需要加载内核模块“8021q”。以下是加载模块的命令:
```bash # 列出模块,确认没有8021q模块 [root@localhost~]# lsmod | grep -i 8021q # 加载模块 [root@localhost~]# modprobe --first-time 8021q # 再次列出模块,确认8021q模块已加载 [root@localhost~]# lsmod | grep -i 8021q ```
加载模块后,我们可以使用`modinfo`命令查看8021q的信息:
```bash [root@localhost~]# modinfo 8021q ```
接下来,使用`ip`命令创建VLAN 200和VLAN 300,并将它们关联到ens33网卡:
```bash # 创建VLAN 200和VLAN 300 [root@localhost~]# ip link add link ens33 name ens33.200 type vlan id 200 [root@localhost~]# ip link add link ens33 name ens33.300 type vlan id 300 ```
创建后,我们会发现这两个VLAN的链路状态为DOWN,需要手动启用它们:
```bash # 启用VLAN 200和VLAN 300 [root@localhost~]# ip link set ens33.200 up [root@localhost~]# ip link set ens33.300 up ```
启用后,为这两个VLAN分配IP地址:
```bash # 为VLAN 200分配IP地址 [root@localhost~]# ip address add 172.168.10.51/24 dev ens33.200 # 为VLAN 300分配IP地址 [root@localhost~]# ip address add 172.168.20.51/24 dev ens33.300 ```
此时,我们已经成功为两个vlan配置了IP地址。但需要注意的是,使用`ip address`添加的VLAN和地址配置不会永久生效,重启系统后这些配置将丢失。
为了使配置永久生效,我们需要将它们保存在配置文件中。首先,修改ens33的配置文件:
```bash [root@localhost~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 ```
接着,为VLAN 200和VLAN 300创建配置文件:
```bash # VLAN 200的配置文件 [root@localhost~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33.200
# VLAN 300的配置文件 [root@localhost~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33.300 ```
在这些配置文件中,指定设备名称、网络类型、IP地址、子网掩码、网络地址以及VLAN标志。
最后,编辑完配置文件后,重启网络服务:
```bash [root@localhost~]# systemctl restart network ```
重启后,我们可以验证VLAN 200和300的信息是否仍然存在,以确保配置已经成功保存。通过这种方式,我们不仅能够在Linux服务器上实现VLAN的配置,还能保证配置的持久性,为网络的稳定运行提供保障。
转自:公众号-Linux就该这么学
在某些场景中,我们希望在Linux服务器(CentOS / RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来实现,但要实现这一点,首先必须确保交换机上添加多个vlan。
假设我们有一个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”
#先列出模块,发现没有8021q模块。 [root@localhost~]#lsmod|grep-i8021q #加载模块 [root@localhost~]#modprobe--first-time8021q [root@localhost~]#lsmod|grep-i8021q 8021q330800 GARP1438418021q mrp1854218021q
使用modinfo命令列出8021q的信息:
[root@localhost~]#modinfo8021q
现在使用ip命令创建vlan 200和vlan 300到ens33网卡:
#创建vlan200和vlan300 [root@localhost~]#iplinkaddlinkens33nameens33.200typevlanid200 [root@localhost~]#iplinkaddlinkens33nameens33.300typevlanid300
发现ens33.200和ens33.300的链路状态为DOWN,下面启用它们。
#启用vlan200和vlan300 [root@localhost~]#iplinksetens33.200up [root@localhost~]#iplinksetens33.300up
下面为两个vlan 分配ip地址:
[root@localhost~]#iPaddressadd172.168.10.51/24devens33.200 [root@localhost~]#ipaddressadd172.168.20.51/24devens33.300
可以看到ens33.200和ens33.300已经配置好ip地址了。
但是上面使用ip address添加的VLAN和地址不会永久生效的。重启系统之后都不存在了。我们需要把这些配置保存在配置文件里面。
首先修改ifcfg-ens33的配置文件,其次创建ifcfg-ens33.200和ifcfg-ens33.300配置文件:
[root@localhost~]#vim/etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet BOOTPROTO=none DEVICE=ens33 ONBOOT=yes
接下来为vlan 200创建配置文件,命名为ifcfg-ens33.200
[root@localhost~]#vim/etc/sysconfig/network-scripts/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
[root@localhost~]#vim/etc/sysconfig/network-scripts/ifcfg-ens33.300 DEVICE=ens33.300 BOOTPROTO=none ONBOOT=yes IPADDR=172.168.20.51 PREFIX=24 NETWORK=172.168.20.0 VLAN=yes
编辑完配置文件,重启一下网络服务。
[root@localhost~]#systemctlrestartnetwork
可以看到vlan200,300的信息都没有消失。