在配置Centos6時,大家第一想到的就是把networkManager這個服務關掉,讓它消失,這個服務台太雞肋了,不該起作用的時候經常起作用,給管理帶來了不便,但是在Centos7當中networkManager的bug已經修復了,並且可以使用一個很強大的命令nmcli來管理(nmcli命令依賴networkManager服務)。我不知道為什么紅帽官方為什么要推薦使用這么強大復雜的,不是應該越簡潔越好么,但是既然推薦了,那么還是好好練習一下吧,沒准兒就像git一樣,雖然復雜,但是用熟練了可以提升n倍的工作效率。因為nmcli命令非常復雜,所以就單獨寫一篇博客了。
nmcli一些基礎用法,nmcli后面的命令是支持縮寫的,但是本篇博客就用完整的名字來寫了:
nmcli connection show 顯示網卡配置信息
- [root@newhostname etc]# nmcli connection show
- 名稱 UUID 類型 設備
- Bond bond0 ad33d8b0-1f7b-cab9-9447-ba07f855b143 bond bond0
- System ens33 c96bc909-188e-ec64-3a96-6a90982b08ad 802-3-ethernet ens33
- System ens38 be9e2b6b-674b-771d-7251-f3b49b3d23e0 802-3-ethernet ens38
- eth0 4a5516a4-dfa4-24af-b1c4-e843e312e2fd 802-3-ethernet ens37
有設備標注的表示已經啟用的網卡配置文件
nmcli connection delete 刪除一個網卡配置文件
- [root@newhostname network-scripts]# cp ifcfg-ens37 ifcfg-ens37.bak
- [root@newhostname network-scripts]# nmcli connection delete eth0
- 成功刪除連接 'eth0'(4a5516a4-dfa4-24af-b1c4-e843e312e2fd)。
查看一下是否刪除了
- [root@newhostname network-scripts]# ls | grep ifcfg-ens
- ifcfg-ens33
- ifcfg-ens37.bak
- ifcfg-ens38
恢復配置
- [root@newhostname network-scripts]# mv ifcfg-ens37.bak ifcfg-ens37
- [root@newhostname network-scripts]# nmcli connection show
- 名稱 UUID 類型 設備
- Bond bond0 ad33d8b0-1f7b-cab9-9447-ba07f855b143 bond bond0
- System ens33 c96bc909-188e-ec64-3a96-6a90982b08ad 802-3-ethernet ens33
- System ens38 be9e2b6b-674b-771d-7251-f3b49b3d23e0 802-3-ethernet ens38
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
配置恢復了
現在我們來用nmcli命令來添加配置文件
首先,我們需要先知道,在服務器上啟用的網卡
使用 nmcli device命令可以查看到網卡的連接狀態
- [root@newhostname network-scripts]# nmcli device
- 設備 類型 狀態 連接
- bond0 bond 連接的 Bond bond0
- ens33 ethernet 連接的 System ens33
- ens37 ethernet 連接的 Wired connection 1
- ens38 ethernet 連接的 System ens38
- lo loopback 未托管 --
可以這樣理解nmcli device 類似 ip link
現在我們來為bond0添加網卡配置文件
- [root@newhostname ~]# nmcli connection add con-name bond0-office ifname bond0 type bond mode 0 ipv4.method auto
- 連接“bond0-office”(86f5c5d1-7b22-425f-96ad-cce91da27f98) 已成功添加。
- #con-name: 表示設備別名,文件的標識
- #type: 類型 bond、ethernet、brigde
- #ifname :設備名
- #ipv4.method : manual 為手動配置 ;auto為自動(可以獲取dhcp)
- #ipv4.addresses : ipv4的IP地址
- #ipv4.gateway : ipv4的網關
- #ipv4.dns : ipv4的dns服務器
通過nmcli connection add 方法,我們成功的添加了一個新的網卡配置文件
我們再來看一下文件的狀態
- [root@newhostname ~]# nmcli connection show
- 名稱 UUID 類型 設備
- Bond bond0 ad33d8b0-1f7b-cab9-9447-ba07f855b143 bond bond0
- System ens33 c96bc909-188e-ec64-3a96-6a90982b08ad 802-3-ethernet ens33
- System ens38 be9e2b6b-674b-771d-7251-f3b49b3d23e0 802-3-ethernet ens38
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
- bond0-office 86f5c5d1-7b22-425f-96ad-cce91da27f98 bond --
可以看出,新加的網卡配置文件並沒有啟用,我們現在啟用這個配置文件
- [root@newhostname ~]# nmcli connection up bond0-office #剛才實驗其實做錯了,我這里就不寫了,在創建文件的時候,如果是bond類型,那么type必須是bond,如果不寫type,這里是激活不了的
- 成功激活(主服務器等待從服務器)連接(D-Bus 激活路徑:/org/freedesktop/NetworkManager/ActiveConnection/15)
我們查看一下新的配置文件狀態和屬性
- [root@newhostname ~]# nmcli connection show bond0-office
- connection.id: bond0-office
- connection.uuid: 86f5c5d1-7b22-425f-96ad-cce91da27f98
- connection.stable-id: --
- connection.interface-name: bond0
- connection.type: bond
- connection.autoconnect: yes
- connection.autoconnect-priority: 0
- connection.autoconnect-retries: -1 (默認)
- connection.timestamp: 1513493496
- connection.read-only: no
- connection.permissions: --
- connection.zone: --
- connection.master: --
- connection.slave-type: --
- connection.autoconnect-slaves: -1 (默認)
- connection.secondaries: --
- connection.gateway-ping-timeout: 0
- connection.metered: 未知
- connection.lldp: -1 (default)
- ipv4.method: auto
- ipv4.dns: --
- ipv4.dns-search: --
- ipv4.dns-options: (默認)
- ipv4.dns-priority: 0
- ipv4.addresses: --
- ipv4.gateway: --
- ipv4.routes: --
- ipv4.route-metric: -1
- ipv4.ignore-auto-routes: no
- ipv4.ignore-auto-dns: no
- ipv4.dhcp-client-id: --
- ipv4.dhcp-timeout: 0
- ipv4.dhcp-send-hostname: yes
- ipv4.dhcp-hostname: --
- ipv4.dhcp-fqdn: --
- ipv4.never-default: no
- ipv4.may-fail: yes
- ipv4.dad-timeout: -1 (默認)
- ipv6.method: auto
- ipv6.dns: --
- ipv6.dns-search: --
- ipv6.dns-options: (默認)
- ipv6.dns-priority: 0
- ipv6.addresses: --
- ipv6.gateway: --
- ipv6.routes: --
- ipv6.route-metric: -1
- ipv6.ignore-auto-routes: no
- ipv6.ignore-auto-dns: no
- ipv6.never-default: no
- ipv6.may-fail: yes
- ipv6.ip6-privacy: -1 (未知)
- ipv6.addr-gen-mode: stable-privacy
- ipv6.dhcp-send-hostname: yes
- ipv6.dhcp-hostname: --
- ipv6.token: --
- bond.options: mode=balance-rr
- proxy.method: none
- proxy.browser-only: no
- proxy.pac-url: --
- proxy.pac-script: --
- GENERAL.名稱: bond0-office
- GENERAL.UUID: 86f5c5d1-7b22-425f-96ad-cce91da27f98
- GENERAL.設備: bond0
- GENERAL.狀態: 已激活 #激活狀態
- GENERAL.默認: 否
- GENERAL.默認6: 否
- GENERAL.VPN 參數: 否
- GENERAL.區: --
- GENERAL.DBUS路徑: /org/freedesktop/NetworkManager/ActiveConnection/15
- GENERAL.連接路徑: /org/freedesktop/NetworkManager/Settings/7
- GENERAL.指定對象: --
- GENERAL.主路徑: --
- IP4.地址[1]: 172.18.16.206/16 #自動獲取的地址
- IP4.網關: 172.18.0.1
- IP4.DNS[1]: 223.5.5.5
- IP4.DNS[2]: 223.6.6.6
- IP4.域[1]: --
- DHCP4.選項[1]: requested_routers = 1
- DHCP4.選項[2]: requested_domain_search = 1
- DHCP4.選項[3]: requested_time_offset = 1
- DHCP4.選項[4]: requested_domain_name = 1
- DHCP4.選項[5]: requested_rfc3442_classless_static_routes = 1
- DHCP4.選項[6]: requested_classless_static_routes = 1
- DHCP4.選項[7]: dhcp_server_identifier = 172.18.0.1
- DHCP4.選項[8]: requested_wpad = 1
- DHCP4.選項[9]: requested_broadcast_address = 1
- DHCP4.選項[10]: next_server = 0.0.0.0
- DHCP4.選項[11]: broadcast_address = 172.18.255.255
- DHCP4.選項[12]: requested_interface_mtu = 1
- DHCP4.選項[13]: requested_subnet_mask = 1
- DHCP4.選項[14]: expiry = 1513494096
- DHCP4.選項[15]: dhcp_message_type = 5
- DHCP4.選項[16]: ip_address = 172.18.16.206
- DHCP4.選項[17]: routers = 172.18.0.1
- DHCP4.選項[18]: domain_name = magedu.com
- DHCP4.選項[19]: requested_static_routes = 1
- DHCP4.選項[20]: requested_nis_servers = 1
- DHCP4.選項[21]: requested_ntp_servers = 1
- DHCP4.選項[22]: requested_domain_name_servers = 1
- DHCP4.選項[23]: dhcp_lease_time = 600
- DHCP4.選項[24]: domain_name_servers = 223.5.5.5 223.6.6.6
- DHCP4.選項[25]: requested_ms_classless_static_routes = 1
- DHCP4.選項[26]: subnet_mask = 255.255.0.0
- DHCP4.選項[27]: network_number = 172.18.0.0
- DHCP4.選項[28]: requested_host_name = 1
- DHCP4.選項[29]: requested_nis_domain = 1
- IP6.地址[1]: fe80::8714:3d23:b1a9:73b7/64
- IP6.地址[2]: fe80::cd18:b4a3:9d06:2ff3/64
- IP6.地址[3]: fe80::da49:1504:e231:df1a/64
- IP6.網關: --
看一下配置文件
- [root@newhostname ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0-office
- DEVICE=bond0
- BONDING_OPTS=mode=balance-rr
- TYPE=Bond
- BONDING_MASTER=yes
- PROXY_METHOD=none
- BROWSER_ONLY=no
- BOOTPROTO=dhcp
- DEFROUTE=yes
- IPV4_FAILURE_FATAL=no
- IPV6INIT=yes
- IPV6_AUTOCONF=yes
- IPV6_DEFROUTE=yes
- IPV6_FAILURE_FATAL=no
- IPV6_ADDR_GEN_MODE=stable-privacy
- NAME=bond0-office
- UUID=86f5c5d1-7b22-425f-96ad-cce91da27f98
- ONBOOT=yes
我們創建的是一個bond設備配置文件,那么就需要slave網卡來支撐,下面我們在添加連個slave網卡
- [root@newhostname ~]# nmcli connection add type bond-slave ifname ens33 master bond0
- 連接“bond-slave-ens33”(0c0f0e30-6f4a-4fb2-9237-c8380225f61a) 已成功添加。
- [root@newhostname ~]# nmcli connection add type bond-slave ifname ens38 master bond0
- 連接“bond-slave-ens38”(1a21b214-4e3e-435c-8c2b-ab4ca2934980) 已成功添加。
OK!我們來看下這倆網卡的配置文件
- [root@newhostname network-scripts]# cat ifcfg-bond-slave-ens3[38] # 剛才我沒有指定管理文件名,系統默認給起了一個ifcfg-bond-slave-ens33 和 ifcfg-bond-slave-ens38 如果要指定名字可以使用 con-name
- TYPE=Ethernet
- NAME=bond-slave-ens33
- UUID=0c0f0e30-6f4a-4fb2-9237-c8380225f61a
- DEVICE=ens33
- ONBOOT=yes
- MASTER=bond0
- SLAVE=yes
- TYPE=Ethernet
- NAME=bond-slave-ens38
- UUID=1a21b214-4e3e-435c-8c2b-ab4ca2934980
- DEVICE=ens38
- ONBOOT=yes
- MASTER=bond0
- SLAVE=yes
查看一下現在生效的配置文件
- [root@newhostname network-scripts]# nmcli connection show
- 名稱 UUID 類型 設備
- System ens33 c96bc909-188e-ec64-3a96-6a90982b08ad 802-3-ethernet ens33
- System ens38 be9e2b6b-674b-771d-7251-f3b49b3d23e0 802-3-ethernet ens38
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
- bond0-office 86f5c5d1-7b22-425f-96ad-cce91da27f98 bond bond0
- Bond bond0 ad33d8b0-1f7b-cab9-9447-ba07f855b143 bond --
- bond-slave-ens33 0c0f0e30-6f4a-4fb2-9237-c8380225f61a 802-3-ethernet --
- bond-slave-ens38 1a21b214-4e3e-435c-8c2b-ab4ca2934980 802-3-ethernet --
因為我們之前已經將bond0-office啟用了,所以再把ifcfg-bond-slave-ens33 和 ifcfg-bond-slave-ens38啟用就好了
- [root@newhostname network-scripts]# nmcli connection up bond-slave-ens33
- 連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/18)
- [root@newhostname network-scripts]# nmcli connection up bond-slave-ens38
- 連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/19)
現在看來也不是太麻煩,名字長用tab鍵補全完全沒問題!
如果我們不用bond,需要給普通網卡添加設置type可以不寫,也可以寫type ethernet,后面的參數正常配置就OK了。
修改配置文件
我們可以通過nmcli connection modity 來實現修改配置文件。
我們先來添加一個ip地址看看
- [root@newhostname network-scripts]# nmcli connection modify bond0-office +ipv4.addresses 172.18.30.1/16
- [root@newhostname network-scripts]# cat ifcfg-bond0-office
- DEVICE=bond0
- BONDING_OPTS=mode=balance-rr
- TYPE=Bond
- BONDING_MASTER=yes
- PROXY_METHOD=none
- BROWSER_ONLY=no
- BOOTPROTO=dhcp
- DEFROUTE=yes
- IPV4_FAILURE_FATAL=no
- IPV6INIT=yes
- IPV6_AUTOCONF=yes
- IPV6_DEFROUTE=yes
- IPV6_FAILURE_FATAL=no
- IPV6_ADDR_GEN_MODE=stable-privacy
- NAME=bond0-office
- UUID=86f5c5d1-7b22-425f-96ad-cce91da27f98
- ONBOOT=yes
- IPADDR=172.18.30.1
- PREFIX=16
我們再來刪掉這個地址
- [root@newhostname network-scripts]# nmcli connection modify bond0-office -ipv4.addresses 172.18.30.1
- [root@newhostname network-scripts]# cat ifcfg-bond0-office
- DEVICE=bond0
- BONDING_OPTS=mode=balance-rr
- TYPE=Bond
- BONDING_MASTER=yes
- PROXY_METHOD=none
- BROWSER_ONLY=no
- BOOTPROTO=dhcp
- DEFROUTE=yes
- IPV4_FAILURE_FATAL=no
- IPV6INIT=yes
- IPV6_AUTOCONF=yes
- IPV6_DEFROUTE=yes
- IPV6_FAILURE_FATAL=no
- IPV6_ADDR_GEN_MODE=stable-privacy
- NAME=bond0-office
- UUID=86f5c5d1-7b22-425f-96ad-cce91da27f98
- ONBOOT=yes
由以上操作可以看出,nmcli connection modify 是可以添加減少,直接修改網絡參數的
對配置文件和設備的一些操作
這些操作很簡單,簡單列出來就好了
nmcli connection down bond0-office 關閉bond0-office配置文件
nmcli connection up bond0-office 啟用這個配置文件
nmcli device down bond0 關閉設備,是設備不是文件
nmcli device up bond0 啟用這個設備
再來說一個新玩意兒“網絡組Network Teaming”
網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量;網絡組不同於舊版中bonding技術,提供更好的性能和擴展性,由內核驅動和teamd守護進程實現.這玩意兒展現的形式就和bond差不多,和bond的功能也差不多,據官方說這個要比bond性能高很多,但是在生產上還不太敢用,這里先把配置方法寫出來吧,沒准兒以后會用到。
我們來添加一個網絡組:
1、我們先刪掉所有的網卡配置文件
- [root@newhostname network-scripts]# nmcli connection show
- 名稱 UUID 類型 設備
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
- bond-slave-ens33 0c0f0e30-6f4a-4fb2-9237-c8380225f61a 802-3-ethernet ens33
- bond-slave-ens38 1a21b214-4e3e-435c-8c2b-ab4ca2934980 802-3-ethernet ens38
- bond0-office 86f5c5d1-7b22-425f-96ad-cce91da27f98 bond bond0
- Bond bond0 ad33d8b0-1f7b-cab9-9447-ba07f855b143 bond --
- System ens33 c96bc909-188e-ec64-3a96-6a90982b08ad 802-3-ethernet --
- System ens38 be9e2b6b-674b-771d-7251-f3b49b3d23e0 802-3-ethernet --
- [root@newhostname network-scripts]# nmcli con del bond0-office
- 成功刪除連接 'bond0-office'(86f5c5d1-7b22-425f-96ad-cce91da27f98)。
- [root@newhostname network-scripts]# nmcli con del Bond\ bond0
- 成功刪除連接 'Bond bond0'(ad33d8b0-1f7b-cab9-9447-ba07f855b143)。
- [root@newhostname network-scripts]# nmcli con del bond-slave-ens33
- 成功刪除連接 'bond-slave-ens33'(0c0f0e30-6f4a-4fb2-9237-c8380225f61a)。
- [root@newhostname network-scripts]# nmcli connection delete bond-slave-ens38
- 成功刪除連接 'bond-slave-ens38'(1a21b214-4e3e-435c-8c2b-ab4ca2934980)。
- [root@newhostname network-scripts]# nmcli con del System\ ens33
- 成功刪除連接 'System ens33'(c96bc909-188e-ec64-3a96-6a90982b08ad)。
- [root@newhostname network-scripts]# nmcli con del System\ ens38
- 成功刪除連接 'System ens38'(be9e2b6b-674b-771d-7251-f3b49b3d23e0)。
- [root@newhostname network-scripts]# lsmod | grep bond
- bonding 145728 0
- [root@newhostname network-scripts]# modprobe -r bonding #刪除bonding驅動,如果有需要可以再添加回來
- [root@newhostname network-scripts]# nmcli connection show
- 名稱 UUID 類型 設備
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
現在只剩下終端連接的網卡了,我們查看一下設備
- [root@newhostname network-scripts]# nmcli device
- 設備 類型 狀態 連接
- ens37 ethernet 連接的 Wired connection 1
- ens33 ethernet 已斷開 --
- ens38 ethernet 已斷開 --
- lo loopback 未托管 --
創建一個Team
- [root@newhostname network-scripts]# nmcli connection add type team con-name team_default ifname team0 config '{"runner":{"name":"loadbalance"}}' ipv4.method manual ipv4.addresses 172.18.30.252/16 ipv4.gateway 172.18.0.1 ipv4.dns 172.18.0.1
- 連接“team_default”(87361b99-da59-411f-8c22-e842a734e6b7) 已成功添加。
網絡組type為team
注意:在添加team工作方式的時候,其配置表現形式是json的格式
‘{“runner”: {“name”: “METHOD”}}’
METHOD 可以是broadcast, roundrobin,activebackup, loadbalance, lacp
創建節點(port)
- [root@newhostname network-scripts]# nmcli connection add type team-slave con-name team-ens33 ifname ens33 master team0
- 連接“team-ens33”(dd0286bf-eb75-40a1-aa50-09bbd0f2fec9) 已成功添加。
- [root@newhostname network-scripts]# nmcli connection add type team-slave con-name team-ens38 ifname ens38 master team0
- 連接“team-ens38”(d6691baa-6a11-4c57-b038-e136940c219d) 已成功添加。
- [root@newhostname network-scripts]# nmcli connection show
- 名稱 UUID 類型 設備
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
- team-ens33 dd0286bf-eb75-40a1-aa50-09bbd0f2fec9 802-3-ethernet ens33
- team-ens38 d6691baa-6a11-4c57-b038-e136940c219d 802-3-ethernet ens38
- team_default 87361b99-da59-411f-8c22-e842a734e6b7 team team0
連接名若不指定,默認為team-slave-IFACE
顯而易見創建port的方法和bond極其相似,我們再來看一下設備狀態
- [root@newhostname network-scripts]# nmcli device
- 設備 類型 狀態 連接
- ens33 ethernet 連接的 team-ens33
- ens37 ethernet 連接的 Wired connection 1
- ens38 ethernet 連接的 team-ens38
- team0 team 連接的 team_default
- lo loopback 未托管 --
創建完配置之后設備直接啟用了。
現在我們來看一下team的配置文件
- [root@newhostname network-scripts]# cat ifcfg-team-ens33 #節點的配置文件
- NAME=team-ens33
- UUID=dd0286bf-eb75-40a1-aa50-09bbd0f2fec9
- DEVICE=ens33
- ONBOOT=yes
- TEAM_MASTER=team0
- DEVICETYPE=TeamPort
- [root@newhostname network-scripts]# cat ifcfg-team_default #team組的配置文件
- DEVICE=team0
- TEAM_CONFIG="{\"runner\":{\"name\":\"loadbalance\"}}"
- PROXY_METHOD=none
- BROWSER_ONLY=no
- BOOTPROTO=none
- IPADDR=172.18.30.252
- PREFIX=16
- GATEWAY=172.18.0.1
- DNS1=172.18.0.1
- DEFROUTE=yes
- IPV4_FAILURE_FATAL=no
- IPV6INIT=yes
- IPV6_AUTOCONF=yes
- IPV6_DEFROUTE=yes
- IPV6_FAILURE_FATAL=no
- IPV6_ADDR_GEN_MODE=stable-privacy
- NAME=team_default
- UUID=87361b99-da59-411f-8c22-e842a734e6b7
- ONBOOT=yes
- DEVICETYPE=Team
刪除Team組
- [root@newhostname network-scripts]# teamdctl team0 state #查看team0狀態
- setup:
- runner: loadbalance #運行方式
- ports:
- ens33
- link watches:
- link summary: up #狀態
- instance[link_watch_0]:
- name: ethtool
- link: up
- down count: 0
- ens38
- link watches:
- link summary: up #狀態
- instance[link_watch_0]:
- name: ethtool
- link: up
- down count: 0
- [root@newhostname network-scripts]# nmcli connection down team_default
- 成功取消激活連接 'team_default'(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/24)
- [root@newhostname network-scripts]# teamdctl team0 state
- Device "team0" does not exist
再將連個port刪掉就ok了。
網橋的配置
寫到這里,我突然感覺nmcli這個命令根本就是一個配置網卡的神器!Very big nice!
看一下現在的網絡配置狀態
- [root@newhostname network-scripts]# nmcli connection show
- 名稱 UUID 類型 設備
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
- team-ens33 dd0286bf-eb75-40a1-aa50-09bbd0f2fec9 802-3-ethernet ens33
- team-ens38 d6691baa-6a11-4c57-b038-e136940c219d 802-3-ethernet ens38
- team_default 87361b99-da59-411f-8c22-e842a734e6b7 team team0
現在我們就將ens38和ens33連接在一起
- [root@newhostname ~]# nmcli connection show
- 名稱 UUID 類型 設備
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
- team-ens33 dd0286bf-eb75-40a1-aa50-09bbd0f2fec9 802-3-ethernet ens33
- team-ens38 d6691baa-6a11-4c57-b038-e136940c219d 802-3-ethernet ens38
- team_default 87361b99-da59-411f-8c22-e842a734e6b7 team team0
- [root@newhostname ~]# nmcli connection add type bridge con-name briage_default ifname bridge0 ipv4.method manual ipv4.addresses 172.18.30.252/16 #添加網橋
- 連接“briage_default”(478fcfee-e338-4a4b-9ed0-9c592b381e45) 已成功添加。
- [root@newhostname ~]# nmcli connection add type bridge-slave ifname ens33 master bridge0 #添加接口
- 連接“bridge-slave-ens33”(d4a58e67-e349-4dcf-8fbe-bb340eb4a0a7) 已成功添加。
- [root@newhostname ~]# nmcli connection add type bridge-slave ifname ens38 master bridge0 #添加接口
- 連接“bridge-slave-ens38”(9f64f919-a62a-4d4d-99b5-9a44f77d3658) 已成功添加。
- [root@newhostname ~]# nmcli connection show
- 名稱 UUID 類型 設備
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
- briage_default 478fcfee-e338-4a4b-9ed0-9c592b381e45 bridge bridge0
- team-ens33 dd0286bf-eb75-40a1-aa50-09bbd0f2fec9 802-3-ethernet ens33
- team-ens38 d6691baa-6a11-4c57-b038-e136940c219d 802-3-ethernet ens38
- team_default 87361b99-da59-411f-8c22-e842a734e6b7 team team0
- bridge-slave-ens33 d4a58e67-e349-4dcf-8fbe-bb340eb4a0a7 802-3-ethernet --
- bridge-slave-ens38 9f64f919-a62a-4d4d-99b5-9a44f77d3658 802-3-ethernet --
- [root@newhostname ~]# nmcli connection up bridge-slave-ens33 #激活接口
- 連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/34)
- [root@newhostname ~]# nmcli connection up bridge-slave-ens38 #激活接口
- 連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/35)
- [root@newhostname ~]# nmcli connection show
- 名稱 UUID 類型 設備
- Wired connection 1 f0c177b9-f8a8-3686-bbb1-f79af06df083 802-3-ethernet ens37
- briage_default 478fcfee-e338-4a4b-9ed0-9c592b381e45 bridge bridge0
- bridge-slave-ens33 d4a58e67-e349-4dcf-8fbe-bb340eb4a0a7 802-3-ethernet ens33
- bridge-slave-ens38 9f64f919-a62a-4d4d-99b5-9a44f77d3658 802-3-ethernet ens38
- team_default 87361b99-da59-411f-8c22-e842a734e6b7 team team0
- team-ens33 dd0286bf-eb75-40a1-aa50-09bbd0f2fec9 802-3-ethernet -- #team的接口被頂掉了
- team-ens38 d6691baa-6a11-4c57-b038-e136940c219d 802-3-ethernet -- #team的接口被頂掉了
這樣一個網橋就ok了
查看網橋
- [root@newhostname network-scripts]# cat ifcfg-briage_default
- DEVICE=bridge0
- STP=yes
- BRIDGING_OPTS=priority=32768
- TYPE=Bridge
- PROXY_METHOD=none
- BROWSER_ONLY=no
- BOOTPROTO=none
- IPADDR=172.18.30.252
- PREFIX=16
- DEFROUTE=yes
- IPV4_FAILURE_FATAL=no
- IPV6INIT=yes
- IPV6_AUTOCONF=yes
- IPV6_DEFROUTE=yes
- IPV6_FAILURE_FATAL=no
- IPV6_ADDR_GEN_MODE=stable-privacy
- NAME=briage_default
- UUID=478fcfee-e338-4a4b-9ed0-9c592b381e45
- ONBOOT=yes
- [root@newhostname network-scripts]# brctl show
- bridge name bridge id STP enabled interfaces
- bridge0 8000.000c29ff3fce yes ens33
- ens38
現在刪除網橋
- [root@newhostname network-scripts]# brctl delif bridge0 ens33 ens38
- [root@newhostname network-scripts]# ip link set bridge0 down #必須停掉,否則無法刪除網橋
- [root@newhostname network-scripts]# brctl delbr bridge0
注意:NetworkManager只支持以太網接口接口連接到網橋,不支持聚合接口(這個我就不做實驗了,確實不行!)如果需要配置聚合接口,那么在配置文件內填入“BRIDGE=bridge0”
以上刪除操作只是把briage當掉了,也可以在nmcli中操作。就不再掩飾了,前面那么多操作看明白了,This so easy!