当前位置: 首页 > 科技观察

如何在CentOS-RHEL系统中使用VLAN标记以太网卡

时间:2023-03-18 16:05:46 科技观察

在某些场景下,我们希望在Linux服务器(CentOS/RHEL)的同一个以太网卡(NIC)上分配来自不同VLAN的多个IP。这可以通过使用VLAN标记的接口来实现。但是要做到这一点,我们必须要保证交换机的端口连接了多个VLAN,也就是说我们可以在交换机上添加多个VLAN来配置聚合端口Trunk端口(LCTT译注:一般都有聚合端口Trunk端口、连接Ingress端口Access端口、Hybrid端口Hybird端口三)。假设我们有一台Linux服务器,我们这里有两张网卡(enp0s3和enp0s8),第一张网卡(enp0s3)将用于数据传输,第二张网卡(enp0s8)将用于控制/流量管理。我会使用多个VLAN进行数据传输(或在数据流量NIC上分配来自不同VLAN的多个IP)。我假设连接到我服务器的数据NIC的端口通过映射多个VLAN配置为聚合端口。以下VLAN映射到数据传输网络接口卡(NIC):VLANID(200),VLANN/W=172.168.10.0/24VLANID(300),VLANN/W=172.168.20.0/24Tobe安装在CentOS7上/要在RHEL7/CentOS8/RHEL8系统中使用VLAN标记接口,必须加载内核模块8021q。要加载内核模块8021q,可以使用以下命令:[root@linuxtechi~]#lsmod|grep-i8021q[root@linuxtechi~]#modprobe--first-time8021q[root@linuxtechi~]#lsmod|grep-i8021q8021q290220garp1438418021qmrp1854218021q[root@linuxtechi~]#可以使用modinfo命令显示内核模块8021q的详细信息:[root@linuxtechi~]#modinfo8021qfilename:/lib/modules/3.10.0-327.el7。x86_64/kernel/net/8021q/8021q.koversion:1.8license:GPLalias:rtnl-link-vlanrhelversion:7.2srcversion:2E63BD725D9DC11C7DA6190depends:mrp,garpintree:Yvermagic:3.10.0-327.el7.x86_64SMPmodversionsmod_unloadLinux内核签名密钥sig_key:79:AD:88:6A:11:3C:A0:22:35:26:33:6C:0F:82:5B:8A:94:29:6A:B3sig_hashalgo:sha256[root@linuxtechi~]#现在用ip命令标记(或映射)enp0s3网卡上的200和300VLAN。(LCTT译注:这是先将200的VLAN标签映射到enp0s3网卡上。)[root@linuxtechi~]#iplinkaddlinkenp0s3nameenp0s3.200typevlanid200使用如下ip命令打开界面:[root@linuxtechi~]#iplinksetdevenp0s3.200up同样映射enp0s3网卡VLANtagon300:[root@linuxtechi~]#iplinkaddlinkenp0s3nameenp0s3.300typevlanid300[root@linuxtechi~]#iplinksetdevenp0s3.300up现在用ip命令查看标记接口状态:tagged-interface-ip-command现在我们可以使用以下ip命令从各自的VLAN为标记接口分配IP地址:[root@linuxtechi~]#ipaddradd172.168.10.51/24devenp0s3。200[root@linuxtechi~]#ipaddradd172.168.20.51/24devenp0s3.300使用如下ip命令查看taggedinterface是否分配了IP:ip-address-tagged-nic重启后,以上都通过ip命令(LCTT译注:修改后,可以保存到配置文件或数据库中,如果不保存,只保存当前环境修改生效,重启后配置失效)。这些标记的接口在系统重启和网络服务重启(LCTT翻译:servicenetworkrestart,或down和up命令)后将不可用。因此,要使标记的接口在重新启动后保持不变,您需要使用接口的ifcfg文件。编辑接口(enp0s3)文件/etc/sysconfig/network-scripts/ifcfg-enp0s3,并添加以下内容:作者提醒:替换为您环境中的接口名称。[root@linuxtechi~]#vi/etc/sysconfig/network-scripts/ifcfg-enp0s3TYPE=EthernetDEVICE=enp0s3BOOTPROTO=noneONBOOT=yes保存并退出文件。为id为200的VLAN创建接口文件/etc/sysconfig/network-scripts/ifcfg-enp0s3.200,添加如下内容:[root@linuxtechi~]#vi/etc/sysconfig/network-scripts/ifcfg-enp0s3。200DEVICE=enp0s3.200BOOTPROTO=noneONBOOT=yesIPADDR=172.168.10.51PREFIX=24NETWORK=172.168.10.0VLAN=yes保存并退出该文件。同样,为id为300的VLAN创建接口文件/etc/sysconfig/network-scripts/ifcfg-enp0s3.300,添加如下内容:[root@linuxtechi~]#vi/etc/sysconfig/network-scripts/ifcfg-enp0s3.300DEVICE=enp0s3.300BOOTPROTO=noneONBOOT=yesIPADDR=172.168.20.51PREFIX=24NETWORK=172.168.20.0VLAN=yes保存退出文件,然后使用如下命令重启网络服务,[root@linuxtechi~]#systemctlrestartnetwork现在使用以下ip命令验证标记接口是否已配置、启动和运行:tagged-interface-status-ip-command-linux-server这就是本文的全部内容,希望您已经了解在CentOS7/8和RHEL7/8服务器上使用它如何配置和启用VLAN标记接口。请分享您的反馈和意见。