在某些场景下,我们希望在一台Linux服务器(CentOS/RHEL)上,将不同VLAN的多个ip分配给同一张网卡。这可以通过在接口上启用VLAN标记来实现,但是要执行此操作,您必须首先确保将多个vlan添加到交换机。假设我们有一个带有两个以太网卡(ens33和ens38)的Linux服务器,第一个(ens33)用于数据流量,第二个(ens38)用于控制/管理流量。对于数据流,将使用多个vlan(来自不同vlan的多个ip将分配在数据流网卡上)。假设从交换机连接到服务器数据流量NIC的端口通过映射多个vlan到它来配置为Trunk。以下是映射到数据流量NIC的vlan:VLANID(200),172.168.10.0/24VLANID(300),172.168.20.0/24onCentOS7/RHEL7/CentOS8/RHEL8systemsusingVLANtaggedinterfaces,必须加载内核模块8021q。使用如下命令加载内核模块“8021q”#先列出模块,发现没有8021q模块。[root@localhost~]#lsmod|grep-i8021q#loadmodule[root@localhost~]#modprobe--first-time8021q[root@localhost~]#lsmod|grep-i8021q8021q330800garp1438418021qmrp1854218021q使用modinfo命令列出8021q信息:[root@localhost~]#modinfo8021q现在使用ip命令创建vlan200和vlan300到ens33网卡:#createvlan200和vlan300[root@localhost~]#iplinkaddlinkens33nameens33.200typevlanid200[root@localhost~]#iplinkaddlinkens33nameens33.300typevlanid300foundens33.200ens33.300和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地址添加的VLAN和地址不会永久生效。重启系统后不存在。我们需要将这些配置保存在配置文件中。先修改ifcfg-ens33的配置文件,然后创建ifcfg-ens33.200和ifcfg-ens33.300配置文件:[root@localhost~]#vim/etc/sysconfig/network-scripts/ifcfg-ens33TYPE=EthernetBOOTPROTO=noneDEVICE=ens33ONBOOT=yes接下来创建vlan200的配置文件,命名为ifcfg-ens33.200[root@localhost~]#vim/etc/sysconfig/network-scripts/ifcfg-ens33.200DEVICE=ens33.200BOOTPROTO=noneONBOOT=yesIPADDR=172.168.10.51PREFIX=24NETWORK=172.168.10.0VLAN=yes接下来创建vlan300的配置文件,命名为ifcfg-ens33.300[root@localhost~]#vim/etc/sysconfig/network-scripts/ifcfg-ens33。300DEVICE=ens33.300BOOTPROTO=noneONBOOT=yesIPADDR=172.168.20.51PREFIX=24NETWORK=172.168.20.0VLAN=yes编辑配置文件后重启网络服务。[root@localhost~]#systemctlrestartnetwork可以看到vlan200和300的信息并没有消失。
