欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Linux系統(tǒng)上使用nmcli命令配置各種網(wǎng)絡(luò)的操作方法(有線、無(wú)線、vlan、vxlan、路由、網(wǎng)橋等)

 更新時(shí)間:2025年03月06日 09:48:59   作者:web13508588635  
你是否會(huì)遇到在不同的Linux系統(tǒng)中配置網(wǎng)絡(luò)時(shí),修改的配置文件和語(yǔ)法都不一樣的煩惱呢?對(duì)于這種情況,我們可以使用NetworkManager工具在不同的系統(tǒng)上進(jìn)行統(tǒng)一語(yǔ)法的配置與管理,本文給大家介紹了在Linux系統(tǒng)上使用nmcli命令配置各種網(wǎng)絡(luò)的操作方法

前言

你是否會(huì)遇到在不同的Linux系統(tǒng)中配置網(wǎng)絡(luò)時(shí),修改的配置文件和語(yǔ)法都不一樣的煩惱呢?

各種不同的文件路徑和語(yǔ)法,甚至Ubuntu系統(tǒng)中每隔幾代網(wǎng)絡(luò)配置文件就會(huì)變換位置和語(yǔ)法,這種情況非常不利于我們?nèi)粘?duì)系統(tǒng)的維護(hù)和管理。

對(duì)于這種情況,我們可以使用NetworkManager工具在不同的系統(tǒng)上進(jìn)行統(tǒng)一語(yǔ)法的配置與管理

現(xiàn)階段所發(fā)行的Linux版本基本都支持NetworkManager工具進(jìn)行統(tǒng)一管理

如果配置時(shí)發(fā)生語(yǔ)法錯(cuò)誤,該工具將會(huì)暫停修改該網(wǎng)絡(luò),不會(huì)造成配置文件錯(cuò)誤而導(dǎo)致的一系列問(wèn)題

甚至當(dāng)你將原網(wǎng)絡(luò)配置文件刪除后,只要使用命令創(chuàng)建一個(gè)和原先參數(shù)一樣的網(wǎng)絡(luò)接口,該配置文件就會(huì)自動(dòng)的重新生成

使用該工具配置的所有網(wǎng)絡(luò)配置文件會(huì)存于/etc/NetworkManager/system-connections/目錄下

PS:network-manager接管網(wǎng)絡(luò)后使用nmcli命令修改網(wǎng)卡的相關(guān)配置后都會(huì)永久生效(重啟網(wǎng)卡后依舊生效)

一、配置NetworkManager接管網(wǎng)絡(luò)(選)

如果系統(tǒng)默認(rèn)自帶了NetworkManager工具就不用做此步,如果是后期手動(dòng)安裝的就需要配置接管網(wǎng)絡(luò)

安裝Network-Manager并啟動(dòng)

apt install network-manager -y
systemctl restart NetworkManager
systemctl enable NetworkManager

配置NetworkManager接管網(wǎng)絡(luò)

語(yǔ)法:

nmcli net <on/off>

示例:

nmcli net on

netplan管理網(wǎng)絡(luò)的系統(tǒng)

如果是netplan管理網(wǎng)絡(luò)的系統(tǒng)(如ubuntu22.04)需要在netplan中指定NetworkManager接管網(wǎng)絡(luò):

vim /etc/netplan/00-installer-config.yaml         # 每個(gè)系統(tǒng)的文件名都不一樣,我這里叫00-installer-config.yaml 
# 在version下添加,注意開頭對(duì)齊: 
renderer: NetworkManager
保存退出

使配置應(yīng)用到系統(tǒng)中

netplan apply

ifupdown管理網(wǎng)絡(luò)的系統(tǒng)

如果是ifupdown管理網(wǎng)絡(luò)的系統(tǒng)(如eve-ng或Ubuntu18.04)需要:

1、在NetworkManager配置中指定ifupdown也可管理網(wǎng)絡(luò),這樣如果系統(tǒng)原先存在有網(wǎng)絡(luò)連接,在NetworkManager接管后原網(wǎng)絡(luò)連接依舊存在不改變:

vim /etc/NetworkManager/NetworkManager.conf
修改以下內(nèi)容:
managed=true
保存退出

2、創(chuàng)建.yaml文件并修改(如果原先存在有后綴為.yaml的文件,直接修改即可,沒有的話再創(chuàng)建)

vim /etc/netplan/interface.yaml
添加以下內(nèi)容:
network:
    version: 2
    renderer: NetworkManager
保存退出

3、暫時(shí)關(guān)閉系統(tǒng)網(wǎng)絡(luò)服務(wù)后使得netplan配置在系統(tǒng)生效并重啟NetworkManager服務(wù)

systemctl stop systemd-networkd
netplan apply
systemctl restart NetworkManager
systemctl restart systemd-networkd

此時(shí)已經(jīng)可以通過(guò)nmcli管理網(wǎng)絡(luò)了

使用nmcli -p device查看設(shè)備狀態(tài)

nmcli -p device
============
  設(shè)備狀態(tài)
============
DEVICE  TYPE      STATE   CONNECTION 
--------------------------------------------------
ens32   ethernet  已連接  有線連接 1 
lo      loopback  未托管  --         

二、nmcli的相關(guān)配置(后置參數(shù)均可縮寫)

有線網(wǎng)絡(luò)配置

使用nmcli添加一個(gè)網(wǎng)卡并配置靜態(tài)ip地址

語(yǔ)法:

nmcli con add con-name <連接名> ifname <網(wǎng)卡名> type <連接類型> ipv4.method manual ipv4.addresses <ipv4地址> ipv4.gateway <ipv4網(wǎng)關(guān)地址> ipv4.dns <ipv4 dns服務(wù)器>

**注意:**如果想要添加兩個(gè)dns地址應(yīng)該用雙引號(hào)" "將兩個(gè)地址包起來(lái),表示兩個(gè)地址都是DNS地址

示例:

nmcli con add con-name test ifname ens32 type ethernet ipv4.method manual ipv4.addresses 192.168.10.10/24 ipv4.gateway 192.168.10.2 ipv4.dns 192.168.10.2
 連接 "test" (3ceeec8a-d92c-42dd-ae10-2f5478eda991) 已成功添加

此時(shí)靜態(tài)地址就配置完成了,如果不進(jìn)行指定則NetworkManager默認(rèn)會(huì)在接口創(chuàng)建的時(shí)候自動(dòng)開啟該接口,當(dāng)然我們也可以指定某個(gè)接口的打開和關(guān)閉狀態(tài)

激活/關(guān)閉網(wǎng)卡

語(yǔ)法:

nmcli con {up/down} <連接名>

示例:

nmcli con up test 
 連接已成功激活(D-Bus 活動(dòng)路徑:/org/freedesktop/NetworkManager/ActiveConnection/2)

查看網(wǎng)卡信息

nmcli con show
NAME        UUID                                  TYPE      DEVICE 
test        3ceeec8a-d92c-42dd-ae10-2f5478eda991  ethernet  ens32  
有線連接 1   b640bf63-ac94-3547-be75-8fac06083304  ethernet  --    

使用nmcli修改一個(gè)網(wǎng)卡的地址

語(yǔ)法:

nmcli con modify <連接名> ipv4.method manual ipv4.addresses <新的ipv4地址> ipv4.gateway <新的ipv4網(wǎng)關(guān)地址> ipv4.dns <dns服務(wù)器>

示例:

nmcli con modify ens33 ipv4.method manual ipv4.addresses 192.168.10.20/24 ipv4.gateway 192.168.10.2 ipv4.dns 192.168.10.2

刷新網(wǎng)卡并查看信息

nmcli con up test
ip add

使用nmcli添加一個(gè)網(wǎng)卡配置使其獲取動(dòng)態(tài)ip地址

語(yǔ)法:

nmcli con add con-name <連接名> ifname <網(wǎng)卡名> type <連接類型> ipv4.method auto

示例:

nmcli con add con-name test ifname ens32 type ethernet ipv4.method auto
nmcli con up test                        # 激活網(wǎng)卡

使用nmcli將已有的靜態(tài)網(wǎng)卡配置修改為動(dòng)態(tài) 網(wǎng)卡配置

語(yǔ)法:

nmcli con modify <連接名> ipv4.method auto

示例:

nmcli con modify test ipv4.method auto
nmcli con up test

然后需要將靜態(tài)地址刪除,否則使用ip add查看時(shí)會(huì)有兩個(gè)地址出現(xiàn)

nmcli connection modify test ipv4.addresses "" ipv4.gateway "" ipv4.dns "" # 將test的靜態(tài)地址設(shè)置為空,也就不存在了,只剩下了動(dòng)態(tài)地址

PS:需要先獲取到dhcp地址才能刪除原靜態(tài)配置,否則會(huì)提示"ipv4.method=manual 不允許這個(gè)屬性為空"

當(dāng)然,如果覺得麻煩,也可以將原靜態(tài)連接刪除后直接添加新的動(dòng)態(tài)地址配置,如下:

nmcli con del test
nmcli con add con-name test ifname ens32 type ethernet ipv4.method auto

使用nmcli將已有的動(dòng)態(tài) 網(wǎng)卡配置修改為靜態(tài)網(wǎng)卡配置

語(yǔ)法:

nmcli con modify <連接名> ipv4.method manual ipv4.address <IP地址/子網(wǎng)掩碼> ipv4.gateway <網(wǎng)關(guān)> ipv4.dns <dns地址>

示例:

nmcli con modify test ipv4.method manual ipv4.address 192.168.10.20/24 ipv4.gateway 192.168.10.2 ipv4.dns 192.168.10.2
nmcli con up test

使用nmcli刪除一個(gè)網(wǎng)卡配置信息

語(yǔ)法:

nmcli con del <連接名> 

示例:

nmcli con del test
 成功刪除連接 "test" (3ceeec8a-d92c-42dd-ae10-2f5478eda991)

查看網(wǎng)卡信息

nmcli con show
NAME        UUID                                  TYPE      DEVICE 
有線連接 1  b640bf63-ac94-3547-be75-8fac06083304  ethernet  ens32 

使用nmcli為一張網(wǎng)卡配置多個(gè)ip地址(從地址)

首先需要先創(chuàng)建一個(gè)連接使其獲得靜態(tài)或動(dòng)態(tài)ip地址才能在此基礎(chǔ)上增加地址,這里不再講述配置靜態(tài)或動(dòng)態(tài)地址的命令,直接進(jìn)行增加地址的配置

語(yǔ)法:

nmcli con modify <連接名> +ipv4.address <ipv4地址> ipv4.gateway <網(wǎng)關(guān)> ipv4.dns <dns地址>

示例:

nmcli con modify ens32 +ipv4.address 192.168.10.160/24 ipv4.gateway 192.168.10.254 ipv4.dns 114.114.114.114
nmcli con up ens32

使用nmcli修改網(wǎng)卡設(shè)備的連接名稱

語(yǔ)法:

nmcli con modify <原連接名或UUID值> connection.id <新連接名>

示例:

先查看網(wǎng)卡設(shè)備的各項(xiàng)信息

nmcli con show
NAME        UUID                                  TYPE      DEVICE 

有線連接 1   b640bf63-ac94-3547-be75-8fac06083304  ethernet  ens32   

修改網(wǎng)卡設(shè)備的連接名稱為ens32

nmcli con modify b640bf63-ac94-3547-be75-8fac06083304 connection.id ens32

再次查看網(wǎng)卡設(shè)備的各項(xiàng)信息,可以發(fā)現(xiàn)NAME這一欄的名稱被修改了

nmcli con show
NAME        UUID                                  TYPE      DEVICE 

ens32       b640bf63-ac94-3547-be75-8fac06083304  ethernet  ens32   

無(wú)線網(wǎng)絡(luò)配置(需要有無(wú)線網(wǎng)卡)

打開/關(guān)閉無(wú)線網(wǎng)絡(luò)開關(guān)

語(yǔ)法:

nmcli radio all <on/off>

示例:

nmcli radio all on

查看無(wú)線網(wǎng)絡(luò)開關(guān)狀態(tài):

語(yǔ)法:

nmcli radio <all--默認(rèn)>

示例:

nmcli radio 
  WIFI-HW  WIFI    WWAN-HW  WWAN   
  已啟用   已啟用  已啟用   已啟用 

連接無(wú)線網(wǎng)絡(luò)

掃描可用的無(wú)線網(wǎng)絡(luò)

nmcli device wifi list

這個(gè)命令會(huì)列出所有可用的無(wú)線網(wǎng)絡(luò)及其詳細(xì)信息。

連接到無(wú)線網(wǎng)絡(luò)

如果您知道無(wú)線網(wǎng)絡(luò)的 SSID(網(wǎng)絡(luò)名稱)和密碼,可以直接連接:

語(yǔ)法:

nmcli dev wifi connect <SSID> password <network-password>

示例:

nmcli device wifi con 李李密制十三香 password MySkillstree
  設(shè)備 "wlx0013ef6f25bd" 成功以 "c2d01c8d-47e5-41ee-8a3c-171aaddf53a8" 激活。

如果您知道無(wú)線網(wǎng)絡(luò)的 SSID(網(wǎng)絡(luò)名稱)但不想顯示密碼,可以加入-a 或 --ask參數(shù),此參數(shù)會(huì)詢問(wèn)缺少的參數(shù)

語(yǔ)法:

nmcli -a device wifi con <SSID>

示例:

nmcli -a device wifi con 李李密制十三香
  密碼: ????????????
  設(shè)備 "wlx0013ef6f25bd" 成功以 "afc44524-ba51-452b-ae51-21f2cd2b2f6f" 激活。

查看連接狀態(tài)

連接嘗試后,您可以檢查連接狀態(tài):

nmcli connection show
  NAME            UUID                                   TYPE      DEVICE          
  李李密制十三香   afc44524-ba51-452b-ae51-21f2cd2b2f6f   wifi      wlx0013ef6f25bd

查看連接的詳細(xì)信息

語(yǔ)法:

nmcli connection show <connetcion-name>

示例:

nmcli connection show 李李密制十三香

開啟無(wú)線熱點(diǎn)(AP模式) 查看當(dāng)前無(wú)線網(wǎng)卡是否支持AP模式:

安裝iw命令

apt install iw -y

使用iw命令查看當(dāng)前無(wú)線網(wǎng)卡是否支持AP模式

iw list
或
# iw list | grep -A 20 "Supported interface modes:" | grep -B 10 "Band 1:"

查找到Supported interface modes:字段下是否有AP字樣,有則代表該無(wú)線網(wǎng)卡支持AP模式

添加無(wú)線網(wǎng)絡(luò)并關(guān)閉自動(dòng)連接

語(yǔ)法:

nmcli con add con-name <連接名> ifname <網(wǎng)卡名> type wifi 802-11-wireless.ssid <SSID> 802-11-wireless-security.key-mgmt <wpa-psk/wpa-eap/ieee8021x/none> 802-11-wireless-security.psk <預(yù)共享密鑰> autoconnect <on/off>

wpa-psk:這是使用預(yù)共享密鑰(PSK)的WPA(Wi-Fi Protected Access)安全模式。這種模式要求所有客戶端都使用相同的密碼進(jìn)行身份驗(yàn)證,是家庭和小型企業(yè)網(wǎng)絡(luò)中常用的安全方式。wpa-psk后加psk參數(shù)和預(yù)共享密鑰

wpa-eap:這是使用擴(kuò)展認(rèn)證協(xié)議(EAP)的WPA安全模式。結(jié)合WPA的安全性和802.1X的認(rèn)證機(jī)制,通常用于需要更高安全性的場(chǎng)景,如企業(yè)網(wǎng)絡(luò)。wpa-eap后可加的參數(shù)有:802-1x.eap、802-1x.phase2-auth、802-11-wireless-security.psk、802-1x.cert-path/802-1x.private-key-path、用戶名和密碼等

ieee8021x:這是使用802.1X認(rèn)證協(xié)議的安全模式。在這種模式下,客戶端需要通過(guò)認(rèn)證服務(wù)器(如RADIUS服務(wù)器)進(jìn)行身份驗(yàn)證。ieee8021x后可加的參數(shù)有:認(rèn)證方法(如:802-1x.eap)、證書和私鑰(如:EAP-TLS)、認(rèn)證服務(wù)器(如:RADIUS服務(wù)器)、用戶身份和密碼(802-1x.identity指定用戶名和802-1x.password指定密碼)等

none:這表示不使用密鑰管理,即無(wú)線網(wǎng)絡(luò)不使用加密或身份驗(yàn)證。這種方式非常不安全,不建議在公共或未受保護(hù)的環(huán)境中使用

示例:

使用wpa-psk模式創(chuàng)建一個(gè)最常用的無(wú)線網(wǎng)絡(luò)連接安全模式,我這里的無(wú)線網(wǎng)卡設(shè)備名為:wlx0013ef6f25bd

nmcli con add con-name MySkillstree ifname wlx0013ef6f25bd type wifi 802-11-wireless.ssid MySkillstree  802-11-wireless.mode ap 802-11-wireless-security.key-mgmt wpa-psk 802-11-wireless-security.psk a1234567 autoconnect no
  連接 "MySkillstree" (7f0c422d-644e-4c98-b615-8eac99304139) 已成功添加。

以上配置命令過(guò)長(zhǎng)和繁瑣,可以簡(jiǎn)寫為以下命令:

nmcli con add con-name MySkillstree ifname wlx0013ef6f25bd type wifi ssid MySkillstree mode ap wifi-sec.key-mgmt wpa-psk wifi-sec.psk a1234567 autoconnect no
  連接 "MySkillstree" (7f0c422d-644e-4c98-b615-8eac99304139) 已成功添加。

其中:

802-11-wireless.ssid 可縮寫為 ssid

802-11-wireless.mode ap 可縮寫為 mode ap

802-11-wireless-security 可縮寫為 wifi-sec

當(dāng)然如果就只使用wpa-psk模式創(chuàng)建簡(jiǎn)單的個(gè)人熱點(diǎn),也可以使用device參數(shù)進(jìn)行快速創(chuàng)建

nmcli device wifi hotspot con-name MySkillstree ifname wlx0013ef6f25bd ssid MySkillstree password a1234567
  設(shè)備 "wlan0" 成功以 "1facecb6-bf75-461a-b847-b63911bb3f61" 激活。
  提示:"nmcli dev wifi show-password" 顯示 Wi-Fi 名稱和密碼。

為無(wú)線網(wǎng)卡接口配置地址

nmcli con modify MySkillstree ipv4.method manual ipv4.address 10.0.0.1/24

安裝dhcp服務(wù)

用于下發(fā)無(wú)線熱點(diǎn)和管理連接到熱點(diǎn)的設(shè)備的 DNS 和 DHCP(ubuntu、kali中為isc-dhcp-server,在centos中為dhcpd)

apt install isc-dhcp-server
vim /etc/dhcp/dhcpd.conf
修改以下內(nèi)容:
subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.2 10.0.0.100; 
  option domain-name-servers 114.114.114.114;
  option subnet-mask 255.255.255.0;
  option routers 10.0.0.1; 
  option broadcast-address 10.0.0.255;
}
保存退出

指定dhcp服務(wù)下發(fā)地址的物理接口(當(dāng)系統(tǒng)中存在多個(gè)網(wǎng)卡設(shè)備,不做會(huì)報(bào)錯(cuò))

vim /etc/default/isc-dhcp-server
修改以下內(nèi)容:
INTERFACESv4="wlx0013ef6f25bd"
保存退出

進(jìn)行源地址轉(zhuǎn)換SNAT

網(wǎng)關(guān)默認(rèn)是不知道我們自己創(chuàng)建的這個(gè)ip地址的,只有使用地址轉(zhuǎn)換技術(shù)NAT將無(wú)線網(wǎng)卡上的收到的地址轉(zhuǎn)換成我們連接公網(wǎng)的地址才能正常訪問(wèn)互聯(lián)網(wǎng)

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ens32 -j MASQUERADE

查看SNAT轉(zhuǎn)換列表

iptables -t nat -nvL POSTROUTING
 Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts   bytes  target     prot opt  in     out      source               destination         
   0     0    MASQUERADE   0    --  *      ens32    10.0.0.0/24          0.0.0.0/0

開啟路由轉(zhuǎn)發(fā)

Linux系統(tǒng)默認(rèn)不轉(zhuǎn)發(fā)路由,只有開啟路由轉(zhuǎn)發(fā)后才會(huì)轉(zhuǎn)發(fā)其他網(wǎng)卡接受到的數(shù)據(jù)包

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

重啟DHCP服務(wù)和新建WiFi熱點(diǎn)

systemctl restart isc-dhcp-server
nmcli con up MySkillstree

此時(shí)通過(guò)手機(jī)連接到熱點(diǎn)后可以正確獲取地址和上網(wǎng)

這里還有一點(diǎn)要注意:

如果是外接的usb無(wú)線網(wǎng)卡到虛擬機(jī)內(nèi),有可能會(huì)導(dǎo)致驅(qū)動(dòng)和內(nèi)核不匹配,即使無(wú)線網(wǎng)卡支持AP模式也能正常連接WiFi,但是在開啟個(gè)人熱點(diǎn)時(shí)依舊會(huì)報(bào)錯(cuò)802.1x認(rèn)證超時(shí)

當(dāng)然以上情況會(huì)有但是不常見,但還是建議開啟個(gè)人熱點(diǎn)的話還是在自帶wifi模塊的Linux物理機(jī)上進(jìn)行比較好

其他設(shè)置:

對(duì)于其他設(shè)置如:動(dòng)靜態(tài)地址,修改連接名稱,刪除連接等均與有線網(wǎng)絡(luò)設(shè)置一樣,這里就不在講述

VLAN相關(guān)配置

創(chuàng)建vlan

創(chuàng)建一個(gè)vlan100接口并將物理網(wǎng)卡ens32綁定到vlan100中,這里的vlan是虛擬設(shè)備常被用做子接口配置,同樣bond和team類型的網(wǎng)絡(luò)接口也可以被配置為子接口

語(yǔ)法:

nmcli con add con-name <連接名稱> ifname <接口名稱> type vlan id <vlan-id> dev <網(wǎng)卡設(shè)備> ipv4.method manual ipv4.address <ipv4地址> ipv4.gateway <網(wǎng)關(guān)> ipv4.dns <dns地址>

示例:

nmcli con add con-name vlan100 ifname vlan100 type vlan id 100 dev ens32 ipv4.method manual ipv4.address 192.168.100.100/24 ipv4.gateway 192.168.100.254 ipv4.dns 114.114.114.114

網(wǎng)橋Bridge配置

bridge 是內(nèi)核提供的虛擬以太網(wǎng)橋,原理上類似于物理交換機(jī),工作在第二層,可以將多個(gè)以太網(wǎng)接口連接在一起,使它們成為一個(gè)邏輯上的以太網(wǎng)段。這樣,在同一個(gè)網(wǎng)橋上的設(shè)備可以直接通信,就像它們連接在同一個(gè)物理以太網(wǎng)上一樣,同樣也可以配置生成樹(STP)協(xié)議

要注意的是,綁定為bridge上的成員接口都無(wú)法配置地址且可以和bridge共用一個(gè)地址,如果要配置地址進(jìn)行通信,可以配置子接口進(jìn)行通信

創(chuàng)建名為br-vxlan的網(wǎng)橋

創(chuàng)建一個(gè)名為br-vxlan的網(wǎng)橋且不設(shè)置ip地址

語(yǔ)法:

nmcli con add con-name <連接名> ifname <接口名> type bridge ipv4.method disabled ipv6.method disabled

示例:

nmcli con add con-name br0 ifname br0 type bridge ipv4.method disabled ipv6.method disabled

VXLAN配置

VXLAN可將二層報(bào)文用四層協(xié)議進(jìn)行封裝,即在四層網(wǎng)絡(luò)的基礎(chǔ)上構(gòu)建一個(gè)虛擬的二層網(wǎng)絡(luò)進(jìn)行二層通信,包括廣播

注意?。?!

1、請(qǐng)事先關(guān)閉或放行防火墻和SELinux等

2、以下實(shí)驗(yàn)如果是兩個(gè)ubuntu虛擬機(jī)且其中一個(gè)是克隆,配置VXLAN時(shí)當(dāng)接口名稱(ifname)一樣時(shí)可能會(huì)出現(xiàn)兩個(gè)vxlan接口的MAC地址一樣的情況。

正常來(lái)講Mac地址是唯一的,但是可能因?yàn)槭莢mware的小bug吧,導(dǎo)致罕見的Mac地址會(huì)沖突

此時(shí)可以更改接口名稱(ifname)為其他的,只要VNI也就是vxlan的id值一樣就不影響,或者使用工具將某一vxlan接口的mac地址修改但這種方法通常關(guān)機(jī)后會(huì)恢復(fù)

這種情況下使用wireshark抓包只能抓到對(duì)放發(fā)來(lái)的arp報(bào)文,但是沒有arp回應(yīng)報(bào)文,因?yàn)殡p方的mac地址一樣,會(huì)被誤以為是自己發(fā)的,就不會(huì)發(fā)送arp回復(fù)報(bào)文。

單播模式(點(diǎn)對(duì)點(diǎn))

語(yǔ)法:

nmcli con add con-name <連接名> ifname <接口名> type vxlan id <vni> local <本地地址> remote <對(duì)端地址> destination-port <UDP端口,默認(rèn)為4789> dev <設(shè)備名> ipv4.method manual ipv4.address <ipv4地址> ipv4.gateway <網(wǎng)關(guān)> ipv4.dns <dns地址>

示例:

創(chuàng)建名為 vxlan100 的 vxlan 接口,指定其 vni、對(duì)端 ip、目的 udp 端口和本設(shè)備上承載 vxlan 流量的物理接口

nmcli con add con-name vxlan100 ifname vxlan100 type vxlan id 100 local 192.168.10.100 remote 192.168.10.200 destination-port 4789 dev ens32 ipv4.method manual ipv4.address 172.16.0.1/24 ipv4.gateway 172.16.0.254nmcli con up vxlan100 

查看 vxlan0 的詳細(xì)信息

ip -d link show vxlan100

查看系統(tǒng)路由表會(huì)發(fā)現(xiàn)多了172.16.1.0/24網(wǎng)段的路由表

route -n
內(nèi)核 IP 路由表
目標(biāo)            網(wǎng)關(guān)            子網(wǎng)掩碼        標(biāo)志  躍點(diǎn)    引用     使用 接口
0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens32
0.0.0.0         172.16.0.254    0.0.0.0         UG    20500  0        0 vxlan100
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens32
172.16.0.0      0.0.0.0         255.255.255.0   U     500    0        0 vxlan100
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens32

查看vxlan的fdb表(轉(zhuǎn)發(fā)表)

bridge fdb show dev vxlan100
    00:00:00:00:00:00 dst 192.168.10.200 via ens32 self permanent

這個(gè)表項(xiàng)的意思是,默認(rèn)的VTEP對(duì)端地址為 192.168.10.200。換句話說(shuō),原始報(bào)文經(jīng)過(guò)vxlan0后,會(huì)被內(nèi)核加上VXLAN頭部,而外部UDP頭部的目的IP地址為192.168.10.200(源VTEP封包過(guò)程)

此時(shí)對(duì)端設(shè)備也配置vxlan100

保證VNI也是100,dstport也是4789,并修改VTEP的local和remote IP地址的值

nmcli con add con-name vxlan100 ifname vxlan100 type vxlan id 100 local 192.168.10.200 remote 192.168.10.100 destination-port 4789 dev ens32 ipv4.method manual ipv4.address 172.16.0.2/24 ipv4.gateway 172.16.0.254
nmcli con up vxlan100

ping測(cè)試

ping 172.16.0.2 -I 172.16.0.1

多播模式(點(diǎn)對(duì)多點(diǎn))

要組成同一個(gè)VXLAN網(wǎng)絡(luò),VTEP必須能夠感知到彼此的存在,多播組本身的功能就是把網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)組成一個(gè)虛擬的組,所以VXLAN最初想到用多播來(lái)實(shí)現(xiàn)也是很自然的。

注意,如果VXLAN要使用多播,那么底層網(wǎng)絡(luò)結(jié)構(gòu)需要支持多播功能

本實(shí)驗(yàn)與前面的實(shí)驗(yàn)比較相似,只不過(guò)主機(jī)之間不是點(diǎn)對(duì)點(diǎn)的連接,而是通過(guò)多播組成一個(gè)虛擬的整體。

在host1配置,使用多播模式

此時(shí)參數(shù)remote應(yīng)指定相同的多播地址(范圍: 224.0.0.0~239.255.255.255)

nmcli con add con-name vxlan101 ifname vxlan101 type vxlan id 101 local 192.168.10.100 remote 239.1.1.1 destination-port 4789 dev ens32 ipv4.method manual ipv4.address 172.17.0.1/24 ipv4.gateway 172.17.0.254
nmcli con up vxlan101

在host2配置,使用多播模式

此時(shí)參數(shù)remote應(yīng)指定相同的多播地址(范圍: 224.0.0.0~239.255.255.255)

nmcli con add con-name vxlan101 ifname vxlan101 type vxlan id 101 local 192.168.10.200 remote 239.1.1.1 destination-port 4789 dev ens32 ipv4.method manual ipv4.address 172.17.0.2/24 ipv4.gateway 172.17.0.254
nmcli con up vxlan101

互ping測(cè)試

VXLAN+網(wǎng)橋網(wǎng)絡(luò)(Bridge)+組播

上述的點(diǎn)對(duì)點(diǎn) VXLAN 網(wǎng)絡(luò)通信雙方只有一個(gè) VTEP,且只有一個(gè)通信實(shí)體,而在實(shí)際生產(chǎn)中(主要是云服務(wù)器),每臺(tái)物理機(jī)上都有幾十臺(tái)甚至上百臺(tái)虛擬機(jī)或容器需要通信,因此需要一種機(jī)制將這些通信實(shí)體組織起來(lái),再通過(guò)隧道口 VTEP 轉(zhuǎn)發(fā)出去。

方案其實(shí)也很常見,Linux Bridge 就可以將多塊虛擬網(wǎng)卡連接起來(lái),因此可以選擇使用 Bridge 將多個(gè)虛擬機(jī)或容器放到同一個(gè) VXLAN 網(wǎng)絡(luò)中。和上面的模式相比,這里只是多了一個(gè) Bridge,用來(lái)連接不同 network namespace (網(wǎng)絡(luò)名稱空間)中的 veth pair,同時(shí) VXLAN 網(wǎng)卡也需要連接到該 Bridge

其實(shí)說(shuō)大白話就是:

  • 點(diǎn)對(duì)點(diǎn)的是設(shè)備-1和設(shè)備-2的虛擬二層通信;
  • 多播是多個(gè)設(shè)備之間的虛擬二層通信;
  • 而VXLN+Bridge則多用于多設(shè)備內(nèi)都開了很多虛擬機(jī),這些虛擬機(jī)跨物理機(jī)之間的虛擬二層通信的云計(jì)算場(chǎng)景

題目:

  • 在兩臺(tái)物理設(shè)備上創(chuàng)建網(wǎng)絡(luò)命名空間ns0和ns1,veth pair
  • 新建vxlan隧道,網(wǎng)橋名稱為 br-vxlan,網(wǎng)橋的出口為vxlan103,id為103
  • 設(shè)備-1的vxlan隧道地址為172.18.0.1/24,設(shè)備-2的vxlan隧道地址為172.18.0.2/24.
  • 新建網(wǎng)橋bridge,將vxlan網(wǎng)絡(luò)和veth pair綁定到bridge上
  • 測(cè)試不同設(shè)備中命名空間內(nèi)網(wǎng)絡(luò)的二層聯(lián)通性。

注意??!!

以下實(shí)驗(yàn)如果是在兩臺(tái)ubuntu虛擬機(jī)上做的,且一臺(tái)為克隆,最好將vxlan,bridge,veth pair的ifname修改,否則可能會(huì)有mac地址沖突的情況發(fā)生,會(huì)導(dǎo)致實(shí)驗(yàn)結(jié)果不通

host1創(chuàng)建vxlan+bridge+組播網(wǎng)絡(luò):

# 創(chuàng)建vxlan網(wǎng)絡(luò),如果ipv6.method disabled不可用,也可以將disabled換成ignore,主要是為了讓其不獲取地址
nmcli con add con-name vxlan102 ifname vxlan102 type vxlan id 102 local 192.168.10.100 remote 239.1.1.1 destination-port 4789 dev ens32 ipv4.method disabled ipv6.method disabled
# 然后創(chuàng)建網(wǎng)橋 br0,把 VXLAN 網(wǎng)卡 vxlan102 綁定到上面,如果ipv6.method disabled不可用,也可以將disabled換成ignore,主要是為了讓其不獲取地址
nmcli con add con-name br0 ifname br0 type bridge ipv4.method disabled ipv6.method disabled
nmcli con modify vxlan102 master br0
# 刷新vxlan102
nmcli con up vxlan102
# 下面創(chuàng)建一對(duì)veth pair(veth0和veth1)
ip link add veth0 type veth peer name veth1
# 把veth pair一端veth0綁定到網(wǎng)橋
ip link set veth0 master br0
ip link set veth0 up
# 創(chuàng)建命名空間
ip netns add ns0
# 把veth pair一端veth1放到命名空間
ip link set dev veth1 netns ns0
# 給veth1設(shè)置ip
ip netns exec ns0 ip addr add 172.18.0.1/24 dev veth1
# 把veth1 和 lo up
ip netns exec ns0 ip link set lo up
ip netns exec ns0 ip link set veth1 up
# 查看 ns0 的網(wǎng)卡信息
ip netns exec ns0 ip add

host2創(chuàng)建vxlan+bridge+組播網(wǎng)絡(luò):

# 創(chuàng)建vxlan網(wǎng)絡(luò),如果ipv6.method disabled不可用,也可以將disabled換成ignore,主要是為了讓其不獲取地址
nmcli con add con-name vxlan102 ifname vxlan102 type vxlan id 102 local 192.168.10.200 remote 239.1.1.1 destination-port 4789 dev ens32 ipv4.method disabled ipv6.method disabled
# 然后創(chuàng)建網(wǎng)橋 br0,把 VXLAN 網(wǎng)卡 vxlan102 綁定到上面,如果ipv6.method disabled不可用,也可以將disabled換成ignore,主要是為了讓其不獲取地址
nmcli con add con-name br0 ifname br0 type bridge ipv4.method disabled ipv6.method disabled
nmcli con modify vxlan102 master br0
# 刷新vxlan102
nmcli con up vxlan102
# 下面創(chuàng)建一對(duì)veth pair(veth0和veth1)
ip link add veth0 type veth peer name veth1
# 把veth pair一端veth0綁定到網(wǎng)橋
ip link set veth0 master br0
ip link set veth0 up
# 創(chuàng)建命名空間
ip netns add ns1
# 把veth pair一端veth1放到命名空間
ip link set dev veth1 netns ns1
# 給veth1設(shè)置ip
ip netns exec ns1 ip addr add 172.18.0.2/24 dev veth1
# 把veth1 和 lo up
ip netns exec ns1 ip link set lo up
ip netns exec ns1 ip link set veth1 up
# 查看 ns1 的網(wǎng)卡信息
ip netns exec ns1 ip add

互ping測(cè)試,隧道建立需要一定時(shí)間,可以耐心等一會(huì)

Veth Pair配置

Veth Pair是成對(duì)的虛擬網(wǎng)卡,使用ip命令可以創(chuàng)建但是在重啟系統(tǒng)后就會(huì)失效,而nmcli命令創(chuàng)建的所有連接在重啟系統(tǒng)后都還會(huì)生效

在centos7/8中并不支持使用nmcli命令配置,而在新版的ubuntu和kali中是支持的,預(yù)計(jì)在以后的發(fā)行版中也是會(huì)支持的

添加一對(duì)Veth網(wǎng)卡

語(yǔ)法:

nmcli con add con-name <連接名> ifname <網(wǎng)卡名> type veth peer <對(duì)端網(wǎng)卡名>

示例:

注意配置時(shí)需要配置一對(duì)

nmcli con add con-name veth0 ifname veth0 type veth peer veth1 
nmcli con add con-name veth1 ifname veth1 type veth peer veth0

此時(shí)veth會(huì)默認(rèn)關(guān)閉,可以通過(guò)添加之前內(nèi)容中添加靜態(tài)地址的方式添加相應(yīng)的網(wǎng)卡配置后開啟

示例:

nmcli con modify veth0 ipv4.method manual ipv4.address 192.168.10.10/24 nmcli con up veth0

注意:

在Ubuntu上配置veth后,關(guān)機(jī)重啟,該對(duì)veth中的一個(gè)會(huì)因?yàn)槟撤N原因(暫時(shí)還不知道)無(wú)法連接,此時(shí)需要重啟NetworkManager服務(wù)后重新打開該對(duì)veth網(wǎng)卡

systemctl restart NetworkManager 
nmcli con up veth0 
nmcli con up veth1

靜態(tài)路由相關(guān)配置

添加靜態(tài)路由和優(yōu)先級(jí)

語(yǔ)法:

nmcli con modify <連接名> ipv4.routes "<目標(biāo)網(wǎng)段/子網(wǎng)掩碼> <下一跳>"
或
nmcli con modify <連接名> ipv4.routes "<目標(biāo)網(wǎng)段/子網(wǎng)掩碼> <下一跳> <優(yōu)先級(jí)>"
nmcli con up <連接名>

示例:

nmcli con modify ens32 ipv4.routes "10.0.0.0/24 192.168.10.2 99"
nmcli con up ens32

查看系統(tǒng)路由表

route -n

刪除靜態(tài)路由

語(yǔ)法:

nmcli con modify <連接名> -ipv4.routes "<目標(biāo)網(wǎng)段/子網(wǎng)掩碼> <下一跳>"
nmcli con up <連接名>

示例:

nmcli con modify ens32 -ipv4.routes "10.0.0.0/24 192.168.10.2"
nmcli con up ens32

注意:

1、在命令中如果未設(shè)置優(yōu)先級(jí)則默認(rèn)為100,默認(rèn)路由的值不一定,有的為100有的為20100;

2、優(yōu)先級(jí)越小越優(yōu)先,如:100 > 110

3、由網(wǎng)關(guān)生成的默認(rèn)路由的優(yōu)先級(jí)無(wú)法更改

4、刪除靜態(tài)路由無(wú)需添加優(yōu)先級(jí)選項(xiàng)

三、總結(jié)

這其中當(dāng)屬無(wú)線網(wǎng)絡(luò)的AP模式開啟和兩個(gè)ubuntu系統(tǒng)配置Vxlan上最耗費(fèi)時(shí)間

因?yàn)槭翘摂M機(jī),會(huì)遇到各種各樣的不適配或者其他bug,都需要一樣找出問(wèn)題來(lái)

目前這里暫時(shí)只展現(xiàn)這些最常用的配置示例,目的是為了讓大家在以后面對(duì)各式各樣的Linux系統(tǒng)時(shí)能夠更便捷的進(jìn)行統(tǒng)一的網(wǎng)絡(luò)配置

以上就是在Linux系統(tǒng)上使用nmcli命令配置各種網(wǎng)絡(luò)的操作方法(有線、無(wú)線、vlan、vxlan、路由、網(wǎng)橋等)的詳細(xì)內(nèi)容,更多關(guān)于Linux nmcli配置各種網(wǎng)絡(luò)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Linux解壓文件到指定目錄的方法

    Linux解壓文件到指定目錄的方法

    本篇文章主要介紹了Linux解壓文件到指定目錄的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Linux下PyTorch安裝教程

    Linux下PyTorch安裝教程

    這篇文章主要介紹了Linux下PyTorch安裝教程,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Shell中的單中括號(hào)和雙中括號(hào)的用法詳解

    Shell中的單中括號(hào)和雙中括號(hào)的用法詳解

    shell中的中括號(hào)在條件測(cè)試中是使用最頻繁的,無(wú)論是中括號(hào)還是雙中括號(hào),可用于一些條件的測(cè)試:算術(shù)比較、文件屬性測(cè)試、字符串比較。這篇文章主要介紹了Shell中的單中括號(hào)和雙中括號(hào)的用法詳解,需要的朋友可以參考下
    2022-12-12
  • Linux 使用init命令實(shí)現(xiàn)關(guān)機(jī),重啟,切換模式

    Linux 使用init命令實(shí)現(xiàn)關(guān)機(jī),重啟,切換模式

    這篇文章主要介紹了Linux 使用init命令實(shí)現(xiàn)關(guān)機(jī),重啟,切換模式的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Linux下Nodejs安裝步驟(完整詳細(xì))

    Linux下Nodejs安裝步驟(完整詳細(xì))

    這篇文章主要介紹了Linux下Nodejs安裝步驟(完整詳細(xì)),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • Centos7下yum安裝Ceph分布式存儲(chǔ)教程

    Centos7下yum安裝Ceph分布式存儲(chǔ)教程

    大家好,本篇文章主要講的是Centos7下yum安裝Ceph分布式存儲(chǔ)教程,感興趣的同學(xué)快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下哦
    2021-11-11
  • linux文件目錄管理命令整理總結(jié)

    linux文件目錄管理命令整理總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于linux文件目錄管理命令整理總結(jié),需要的朋友們參考下。
    2019-11-11
  • Linux中別名與二進(jìn)制的使用教程

    Linux中別名與二進(jìn)制的使用教程

    這篇文章主要給大家介紹了關(guān)于Linux中別名與二進(jìn)制的使用方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • linux服務(wù)器下PHPCMS v9 安全配置詳解

    linux服務(wù)器下PHPCMS v9 安全配置詳解

    這篇文章主要介紹了linux服務(wù)器下PHPCMS v9 安全配置詳解,需要的朋友可以參考下
    2015-02-02
  • DDNS 的工作原理及其在 Linux 上的實(shí)現(xiàn)

    DDNS 的工作原理及其在 Linux 上的實(shí)現(xiàn)

    DDNS (Dynamic DNS) 擴(kuò)展了 DNS 將客戶端 IP 與其域名進(jìn)行靜態(tài)映射的功能,它可以將同一域名實(shí)時(shí)地解析為不同的動(dòng)態(tài) IP,而不需要額外的人工干預(yù)
    2016-09-09

最新評(píng)論