1. 程式人生 > >nmcli命令使用以及網卡綁定bond

nmcli命令使用以及網卡綁定bond

nmcli Linux下做bond bond的實現 nmcli的用法 Linux網卡配置

一、nmcli命令

1.什麽是nmcli

以前我配置網卡的時候都要打vim /etc/sysconfig/network-scripts/ifcfg-eth0這麽一長串命令,有很多配置名字還記不住就需要去看模板,好不容易配置完了,還得去重啟網卡。直到今天我知道了這個nmcli命令,才發現原來配置網卡可以這麽簡單,媽媽再也不用擔心我不會配置網卡了。
2.nmcli的用法
命令語法:

nmcli[ OPTIONS ] OBJECT { COMMAND | help }
值得一提的是OBJECT和COMMAND可以用全程也可以用簡稱,最少可以只用一個字母,但我們一般用頭三個字母,這樣不容易搞錯。
技術分享圖片
我們使用nmcli命令去配置網卡時如果忘記了語法命令是可以用TAB鍵補齊命令的。

技術分享圖片
OBJECT裏我們平時用的最多的就是connection和device,這裏就跟大家簡單區分一下connection和device
connection是連接,偏重於邏輯設置
device叫網絡接口,是物理設備
多個connection可以應用到同一個device,但同一時間只能啟用其中一個connection。
這樣的好處是針對一個網絡接口,我們可以設置多個網絡連接,比如靜態IP和動態IP,再根據需要up相應的connection。
下面是一些nmcli的常用命令介紹
nmcli device show 查看所有網卡設備信息
show 後跟網卡名是查看某個網卡的詳細信息
技術分享圖片
nmcli connection show 查看所有連接
同理 show 後跟上連接名可以查看連接的詳細信息
不過connection show 後跟上 -a 參數是僅顯示活動的連接
技術分享圖片
像圖中home它的DEVICE選項為空,說明沒有網卡綁定,所以並未生效。
nmcli device status
列出 NetworkManager 識別出的設備列表及他們的狀態
技術分享圖片
nmcli general status
將 NetworkManager 的所有狀態都打印出來
技術分享圖片
在centos7中默認的網卡名變為了ens..,我們可以使用nmcli來改成我們熟悉的樣子(更改配置文件名):
技術分享圖片
nmcli connection add con-name config-eth0-1 ifname eth0 type ethernet
創建一個網卡連接配置文件,這裏con-name後跟的是新建的配置文件名稱,ifname後跟的是接口名稱,type為ethernet,ipve默認為dhcp
技術分享圖片
命令完成後會在/etc/sysconfig/network-scripts/目錄下產生一個名為ifcfg-config-eth0-1的配置文件
技術分享圖片
nmcli connection up config-eth0-1
nmcli connection down config-eth0-1
對創建好的配置文件我們可以用up,down來啟用和禁用
技術分享圖片
nmcli connection delete config-eth0-1
刪除連接(刪除的連接並未被啟用)
技術分享圖片
nmcli connection add con-name eth0-1 type ethernet ifname eth1 autoconnect yes ip4 10.1.252.60/24 gw4 10.1.0.254
我們也可以使用nmcli來創建一個靜態IP網絡連接配置
這裏的autoconnect 為開機是否自啟,yes為開機自啟
技術分享圖片
我們啟用eth0-1看看IP是否變化
技術分享圖片
技術分享圖片
nmcli connection modify eth0-1 +ipv4.address 2.2.2.2/24

我們也可以對連接文件進行修改
命令修改與配置文件對照表:
技術分享圖片
修改連接配置後我們要重新加載才能生效
nmcli connection reload
nmcli connection down eth0-1
nmcli connection up eth0-1
技術分享圖片

二、網卡綁定band

1.什麽是bond
網卡bond是通過把多張網卡綁定為一個邏輯網卡,實現本地網卡的冗余,帶寬擴容和負載均衡。在應用部署中是一種常用的技術。
2.bond的模式種類
常見的bond模式有七種:
Mode=0(balance-rr) 表示負載分擔round-robin,和交換機的聚合強制不協商的方式配合。
Mode=1(active-backup) 表示主備模式,只有一塊網卡是active,另外一塊是備的standby,這時如果交換機配的是捆綁,將不能正常工作,因為交換機往兩塊網卡發包,有一半包是丟棄的。
Mode=2(balance-xor) 表示XOR Hash負載分擔,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy)
Mode=3(broadcast) 表示所有包從所有interface發出,這個不均衡,只有冗余機制...和交換機的聚合強制不協商方式配合。
Mode=4(802.3ad) 表示支持802.3ad協議,和交換機的聚合LACP方式配合(需要xmit_hash_policy)
Mode=5(balance-tlb) 是根據每個slave的負載情況選擇slave進行發送,接收時使用當前輪到的slave
Mode=6(balance-alb) 在5的tlb基礎上增加了rlb。)

3.bond的創建方法
這裏我們還是用nmcli來創建bond
我們以bond1模式為例
首先我們創建一個連接配置文件
nmcli connection add con-name bond0 type bond ifname bond0 mode active-backup
mode 後跟的bond模式
技術分享圖片
因為我們還沒有在bond連接中綁定網卡所以顯示為×××
nmcli connection add type bond-slave ifname eth2 master bond0
nmcli connection add type bond-slave ifname eth3 master bond0
我們添加兩塊網卡到bong0中
技術分享圖片
啟用這兩個連接
技術分享圖片
cat /proc/net/bonding/bond0
查看bond狀態
技術分享圖片
我們來測試下bond
技術分享圖片
技術分享圖片
我們先查看下bond0的ip,然後再在另一個終端上ping
我們先down掉一個網卡
技術分享圖片
技術分享圖片
down掉eth1後依舊可以ping通
總結:
我們使用nmcli只需簡單的幾部就可以做好bond了,由此可見bond確實好用。

nmcli命令使用以及網卡綁定bond