如何在 CentOS/RHEL 系統(tǒng)中使用帶 VLAN 標(biāo)記的以太網(wǎng)卡
在某些場(chǎng)景中,我們希望在 Linux 服務(wù)器(CentOS/RHEL)的同一塊以太網(wǎng)卡(NIC)上分配來(lái)自不同 VLAN 的多個(gè) IP。這個(gè)可以通過(guò)使用 VLAN 標(biāo)記接口來(lái)實(shí)現(xiàn)。但是要做到這一點(diǎn),我們必須確保交換機(jī)的端口上連接了多個(gè) VLAN,也就是說(shuō)我們可以在交換機(jī)上添加多個(gè) VLAN 來(lái)配置聚合端口(LCTT 譯注:一般有聚合端口、接入端口、混合端口三種)。
假設(shè)我們有一個(gè) Linux 服務(wù)器,我們?cè)谶@里有兩張以太網(wǎng)卡(enp0s3
和enp0s8
),第一張網(wǎng)卡(enp0s3
)會(huì)用于數(shù)據(jù)傳輸,而第二張網(wǎng)卡(enp0s8
) 會(huì)用于控制/流量管理。我會(huì)使用多個(gè) VLAN 用于數(shù)據(jù)傳輸(或在數(shù)據(jù)流量網(wǎng)卡上從不同的 VLAN 中分配多個(gè) IP)。
我假設(shè)連接到我服務(wù)器的數(shù)據(jù)網(wǎng)卡的端口,是通過(guò)映射多個(gè) VLAN 來(lái)配置為聚合端口。
下面是映射到數(shù)據(jù)傳輸網(wǎng)卡(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 系統(tǒng)中使用 VLAN 標(biāo)記接口,必須加載內(nèi)核模塊8021q
。
加載內(nèi)核模塊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
命令顯示內(nèi)核模塊8021q
的詳細(xì)信息:
[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 ~]#
現(xiàn)在使用ip 命令給enp0s3
網(wǎng)卡標(biāo)記(或映射)上200
和300
的 VLAN 。
(LCTT 譯注:這是先給enp0s3
網(wǎng)卡映射上200
的 VLAN 標(biāo)簽。)
[root@linuxtechi ~]# ip link add link enp0s3 name enp0s3.200 type vlan id 200
使用下面的ip
命令打開(kāi)接口:
[root@linuxtechi ~]# ip link set dev enp0s3.200 up
同理給enp0s3
網(wǎng)卡映射上300
的 VLAN 標(biāo)簽:
[root@linuxtechi ~]# ip link add link enp0s3 name enp0s3.300 type vlan id 300 [root@linuxtechi ~]# ip link set dev enp0s3.300 up
現(xiàn)在使用ip
命令查看標(biāo)記后的接口狀態(tài):
現(xiàn)在我們可以使用下面的ip
命令從它們各自的 VLAN 為已經(jīng)標(biāo)記的接口分配 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
命令查看是否為已標(biāo)記的接口分配到 IP:
重啟之后,上面所有通過(guò)ip
命令的更改都不會(huì)保持(LCTT 譯注:修改后可保存至配置文件或數(shù)據(jù)庫(kù)中,如果未進(jìn)行保存處理,則只有當(dāng)前環(huán)境生效,重啟后配置失效)。系統(tǒng)重啟和網(wǎng)絡(luò)服務(wù)重啟(LCTT 譯注:service network restart
,或down
和up
命令)之后這些標(biāo)記接口將不可用。
因此,要使標(biāo)記的接口在重啟后保持不變,需要使用接口的ifcfg
文件。
編輯接口(enp0s3
)文件/etc/sysconfig/network-scripts/ifcfg-enp0s3
,并且增加下面的內(nèi)容:
作者提醒:替換為你環(huán)境中的接口名稱。
[root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 TYPE=Ethernet DEVICE=enp0s3 BOOTPROTO=none ONBOOT=yes
保存和退出文件。
為 id 是200
的 VLAN 創(chuàng)建接口文件/etc/sysconfig/network-scripts/ifcfg-enp0s3.200
,且增加下面的內(nèi)容:
[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 創(chuàng)建接口文件/etc/sysconfig/network-scripts/ifcfg-enp0s3.300
,且增加下面的內(nèi)容:
[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
保存并退出文件,這時(shí)候使用下面的命令重啟網(wǎng)絡(luò)服務(wù)
[root@linuxtechi ~]# systemctl restart network
現(xiàn)在使用下面的ip
命令檢驗(yàn)標(biāo)記的接口是否已配置和啟動(dòng),并且正在運(yùn)行中:
到此這篇關(guān)于如何在 CentOS/RHEL 系統(tǒng)中使用帶 VLAN 標(biāo)記的以太網(wǎng)卡的文章就介紹到這了,更多相關(guān)CentOS系統(tǒng)中使用帶 VLAN 標(biāo)記的以太網(wǎng)卡內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。