1、簡介
NetworkManager是RedHat 7系列提供網絡服務的一個動態網絡控制和配置守護進程,圖形界面工具爲nmtui,命令行工具爲nmcli,由GNOME Shell提供的圖形界面工具control-center,尚未由 control-center 處理的某些任務的由nm-connection-editor處理。
NetworkManager 可用於以下連接類型:以太網、VLAN、網橋、綁定、成組、Wi-Fi、移動寬帶(比如移動網絡 3G)及 IP-over-InfiniBand。在這些連接類型中,NetworkManager 可配置網絡別名、IP 地址、靜態路由器、DNS 信息及 *** 連接以及很多具體連接參數。最後,NetworkManager 通過 D-bus 提供 API,D-Bus 允許應用程序查詢並控制網絡配置及狀態。
2、nmcli
使用nmcli需先安裝並啓動NetworkManager
2.1、安裝並啓動NetworkManager
yum install NetworkManager
systemctl start NetworkManager
systemctl enable NetworkManager
2.2、nmcli使用格式
nmcli OPTIONS OBJECT { COMMAND | help }
OPTIONS
-a, --ask 詢問缺少的參數
-c, --colors auto|yes|no 是否在輸出中使用顏色
-e, --escape yes|no 值中是否有轉義符分隔符
-f, --fields <field,...>|all|common 指定要輸出的字段
-g, --get-values <field,...>|all|common 通用快捷方式 -m 表格 -t -f
-h, --help 打印幫助信息
-m, --mode tabular|multiline 指定輸出模式,輸出網卡相關信息
-o, --overview 輸出網卡相關信息的概述
-p, --pretty 輸出網卡相關信息
-s, --show-secrets 允許顯示密碼
-t, --terse 簡短的輸出
-v, --version 查看程序版本
-w, --wait <seconds> 設置超時等待時間
OBJECT
g[eneral] 常規操作
* status 顯示 NetworkManager 總體狀態
* hostname [<主機名>]
* permissions
* logging [level <日誌級別>] [domains <日誌域>] NetworkManager 日誌記錄
n[etworking] 管理網絡
* on
* off
* connectivity [check]
r[adio] 管理無線交換機
* all | wifi | wwan [ on | off
c[onnection] 管理連接
* 查看相關:
* * show [--active] [--order <order spec>]
* * show [--active] [id | uuid | path | apath] <ID> …
* 啓動與關閉連接:
* * up [[id | uuid | path] <ID>] [ifname <ifname>] [ap <BSSID>] [passwd-file <file with passwords>]
* * down [id | uuid | path | apath] <ID> …
* 管理連接相關:
* * add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS [-- ([+|-]<setting>.<property> <value>)+]
* * modify [--temporary] [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+
* * clone [--temporary] [id | uuid | path ] <ID> <new name>
* * edit [id | uuid | path] <ID>
* * edit [type <new_con_type>] [con-name <new_con_name>
* * delete [id | uuid | path] <ID>
* * monitor [id | uuid | path] <ID> …
* 重載連接:
* * reload
* * load <filename> [ <filename>... ]
* * import [--temporary] type <type> file <file to import>
* * export [id | uuid | path] <ID> [<output file>]
d[evice] 管理設備
* status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp
a[gent] 管理代理相關
* secret | polkit | all
m[onitor] 監視網絡管理器(NetworkManager)的更改,每當 NetworkManager 出現更改時打印一行信息。
2.3、配置IPv4示例
nmcli con modify eth0 ipv4.addresses "172.25.0.11/24 172.25.254.254" ipv4.method manual
nmcli con modify eth0 ipv4.dns 172.25.254.254
nmcli con down eth0
nmcli con up eth0
2.4、配置示例:使用 nmcli 配置端口聚合
在server0和desktop0之間按以下要求配置:
此鏈路使用接口eth1和eth2
此鏈路在一個接口失效時仍然能工作
此鏈路在server0使用下面的地址 192.168.0.101/255.255.255.0
此鏈路在desktop0使用下面的地址 192.168.0.102/255.255.255.0
此鏈路在系統重啓之後依然保持正常狀態
# server0配置
#創建新的成組接口,NetworkManager 還會將配置寫入 /etc/sysconfig/network-scripts/ifcfg-team0,其中會將對應的 ONBOOT 設定爲 yes,並將 BOOTPROTO 設定爲 dhcp
nmcli con add type team con‐name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
#向team0中添加名爲team0-slave1的接口eth1
nmcli con add type team‐slave con‐name team0‐slave1 ifname eth1 master team0
nmcli con add type team‐slave con‐name team0‐slave2 ifname eth2 master team0
#爲聚合組配置IP
nmcli con mod team0 ipv4.addresses "192.168.0.101/24 192.168.0.254" ipv4.method manual
#要啓用成組,必須首先激活端口
nmcli con up team0‐slave1
nmcli con up team0‐slave2
#啓用成組
nmcli con up team0
# desktop0配置
nmcli con add type team con‐name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
nmcli con add type team‐slave con‐name team0‐slave1 ifname eth1 master team0
nmcli con add type team‐slave con‐name team0‐slave2 ifname eth2 master team0
nmcli con mod team0 ipv4.addresses "192.168.0.102/24 192.168.0.254" ipv4.method manual
nmcli con up team0‐slave1
nmcli con up team0‐slave2
nmcli con up team0
# 檢查
nmcli con show
teamdctl team0 state
參考資料:
RedHat官方文檔:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html-single/networking_guide/index#sec-Network_Config_Using_nmcli