Linux中國

如何在 CentOS/RHEL 系統中使用帶 VLAN 標記的乙太網卡

假設我們有一個 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 命令檢驗標記的介面是否已配置和啟動,並且正在運行中:

tagged-interface-status-ip-command-linux-server

以上就是本文的全部內容,我希望你已經學會了在 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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國