如何在 CentOS/RHEL 系统中使用带 VLAN 标记的以太网卡
创始人
2024-03-02 06:13:52
0

在某些场景中,我们希望在 Linux 服务器(CentOS/RHEL)的同一块以太网卡(NIC)上分配来自不同 VLAN 的多个 IP。这个可以通过使用 VLAN 标记接口来实现。但是要做到这一点,我们必须确保交换机的端口上连接了多个 VLAN,也就是说我们可以在交换机上添加多个 VLAN 来配置 聚合端口 Trunk port (LCTT 译注:一般有 聚合端口 Trunk port 、 接入端口 Access port 、 混合端口 Hybird port 三种)。

假设我们有一个 Linux 服务器,我们在这里有两张以太网卡(enp0s3enp0s8),第一张网卡(enp0s3)会用于数据传输,而第二张网卡(enp0s8) 会用于控制/流量管理。我会使用多个 VLAN 用于数据传输(或在数据流量网卡上从不同的 VLAN 中分配多个 IP)。

我假设连接到我服务器的数据网卡的端口,是通过映射多个 VLAN 来配置为聚合端口。

下面是映射到数据传输网卡(NIC)的 VLAN:

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

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

加载内核模块 8021q 可以使用下面的命令:

[root@linuxtechi ~]# lsmod | grep -i 8021q
[root@linuxtechi ~]# modprobe --first-time 8021q
[root@linuxtechi ~]# lsmod | grep -i 8021q
8021q                  29022  0
garp                   14384  1 8021q
mrp                    18542  1 8021q
[root@linuxtechi ~]#

可以使用 modinfo 命令显示内核模块 8021q 的详细信息:

[root@linuxtechi ~]# modinfo 8021q
filename:       /lib/modules/3.10.0-327.el7.x86_64/kernel/net/8021q/8021q.ko
version:        1.8
license:        GPL
alias:          rtnl-link-vlan
rhelversion:    7.2
srcversion:     2E63BD725D9DC11C7DA6190
depends:        mrp,garp
intree:         Y
vermagic:       3.10.0-327.el7.x86_64 SMP mod_unload modversions
signer:         CentOS Linux kernel signing key
sig_key:        79:AD:88:6A:11:3C:A0:22:35:26:33:6C:0F:82:5B:8A:94:29:6A:B3
sig_hashalgo:   sha256
[root@linuxtechi ~]#

现在使用 ip 命令enp0s3 网卡标记(或映射)上 200300 的 VLAN 。

(LCTT 译注:这是先给 enp0s3 网卡映射上 200 的 VLAN 标签。)

[root@linuxtechi ~]# ip link add link enp0s3 name enp0s3.200 type vlan id 200

使用下面的 ip 命令打开接口:

[root@linuxtechi ~]# ip link set dev enp0s3.200 up

同理给 enp0s3 网卡映射上 300 的 VLAN 标签:

[root@linuxtechi ~]# ip link add link enp0s3 name enp0s3.300 type vlan id 300
[root@linuxtechi ~]# ip link set dev enp0s3.300 up

现在使用 ip 命令查看标记后的接口状态:

tagged-interface-ip-command

现在我们可以使用下面的 ip 命令从它们各自的 VLAN 为已经标记的接口分配 IP 地址:

[root@linuxtechi ~]# ip addr add 172.168.10.51/24 dev enp0s3.200
[root@linuxtechi ~]# ip addr add 172.168.20.51/24 dev enp0s3.300

使用下面的 ip 命令查看是否为已标记的接口分配到 IP:

ip-address-tagged-nic

重启之后,上面所有通过 ip 命令的更改都不会保持(LCTT 译注:修改后可保存至配置文件或数据库中,如果未进行保存处理,则只有当前环境生效,重启后配置失效)。系统重启和网络服务重启(LCTT 译注:service network restart,或 downup 命令)之后这些标记接口将不可用。

因此,要使标记的接口在重启后保持不变,需要使用接口的 ifcfg 文件。

编辑接口(enp0s3)文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3,并且增加下面的内容:

作者提醒:替换为你环境中的接口名称。

[root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
DEVICE=enp0s3
BOOTPROTO=none
ONBOOT=yes

保存和退出文件。

为 id 是 200 的 VLAN 创建接口文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3.200,且增加下面的内容:

[root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3.200
DEVICE=enp0s3.200
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.168.10.51
PREFIX=24
NETWORK=172.168.10.0
VLAN=yes

保存并退出此文件。

同理为 id 是 300 的 VLAN 创建接口文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3.300,且增加下面的内容:

[root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3.300
DEVICE=enp0s3.300
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.168.20.51
PREFIX=24
NETWORK=172.168.20.0
VLAN=yes

保存并退出文件,这时候使用下面的命令重启网络服务,

[root@linuxtechi ~]# systemctl restart network

现在使用下面的 ip 命令检验标记的接口是否已配置和启动,并且正在运行中:

以上就是本文的全部内容,我希望你已经学会了在 CentOS 7 / 8 和 RHEL 7 / 8 服务器上如何去配置和启用 VLAN 标签接口的方法。请分享你的反馈和意见。


via: https://www.linuxtechi.com/vlan-tagged-nic-ethernet-card-centos-rhel-servers/

作者:Pradeep Kumar 选题:lujun9972 译者:quinbyjoe 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

不同工作节点上的Pods无...
问题描述:在一个Kubernetes集群中,使用macvlan网络...
2025-01-09 02:01:53
AWS-是否有一种方式可以...
在 AWS 中,可以使用 Virtual Private Clou...
2024-11-18 19:31:30
实验2 VLAN的划分及V...
实验2 VLAN的划分及VLAN间通信的配置一、实验目的二、实验要...
2024-04-24 21:33:31
以太网 VLAN(VLAN...
2.8.3 以太网 VLAN(VLAN划分方式&#x...
2024-03-29 03:31:19
思科模拟器 | 交换机的v...
vlan 与 truck一、vlan配置【实现同一vlan的主机通...
2024-03-23 03:29:31
子网掩码与VLAN有何区别...
子网掩码与VLAN有何区别?_百度知道 (baidu.com) 可...
2024-03-03 04:21:40

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...