centos 8 使用 nmcli 配置网桥Bridge(最后有踩坑过程)
文章最后有踩坑過程,前面先寫正常流程。
背景:最近想在自己筆記本上搭建openstack集群,再在集群上面上面跑K8S。
首先需要準備兩個網絡供虛擬機使用,一個網絡用于連接互聯網用來在線安裝各種服務和組件,這個網絡
使用KVM的NET模式實現。
另一個網絡是在KVM中創建虛擬網絡交換機(Bridge)該交換機用于將虛擬機(VM)連接到與主機相同的網絡,用來管理Openstack集群。
Bridge:網橋是將兩個或多個網段互連并在它們之間提供通信的數據鏈路層設備。它創建單個網絡接口,以從多個網絡或網段中建Bridge立單個聚合網絡。它根據主機的MAC地址(存儲在MAC地址表中)轉發流量。
可以看到有兩張網卡:一張以太網卡enp7s0,一張無線網卡wlp0s20f3,這里我們使用這個以太網卡來接入網橋,實現主機與虛擬機通信。
也可以使用nmcli device status 命令查看網卡狀態。
[root@openstack_node1 ~]# nmcli device status [root@openstack_node1 ~]# nmcli device status DEVICE TYPE STATE CONNECTION wlp0s20f3 wifi connected 1706 enp7s0 ethernet connected enp7s0 p2p-dev-wlp0s20f3 wifi-p2p disconnected -- lo loopback unmanaged --提示成功,使用nmcli device status、nmcli connection show --active進行查看
[root@openstack_node1 ~]# nmcli device status [root@openstack_node1 ~]# nmcli device status DEVICE TYPE STATE CONNECTION wlp0s20f3 wifi connected 1706 enp7s0 ethernet connected enp7s0 virbr0 bridge connecting (getting IP configuration) virbr0 p2p-dev-wlp0s20f3 wifi-p2p disconnected -- lo loopback unmanaged -- [root@openstack_node1 ~]# nmcli connection show --active [root@openstack_node1 ~]# nmcli connection show --active NAME UUID TYPE DEVICE virbr0 d02717a2-acd1-41c7-a35a-a2b296e7f62e bridge virbr0 1706 32201b66-07ad-4b41-bd58-90a20573ab61 wifi wlp0s20f3 enp7s0 2d1211ed-22d9-4bfa-9a2e-223dc56ef4ee ethernet enp7s0提示成功,此時在下面 /etc/sysconfig/network-scripts/目錄下會生成一個名為:ifcfg-bridge-slave-enp7s0的配置文件,上一步添加網橋virbr0成功后也會生成一個名為 ifcfg-virbr0 的配置文件。
[root@openstack_node1 network-scripts]# ll total 20 -rw-r--r--. 1 root root 428 Aug 8 11:35 ifcfg-1706 -rw-r--r-- 1 root root 120 Aug 8 13:26 ifcfg-bridge-slave-enp7s0 -rw-r--r-- 1 root root 348 Aug 8 11:29 ifcfg-enp7s0 -rw-r--r-- 1 root root 317 Aug 8 13:16 ifcfg-virbr0 -rw-------. 1 root root 17 Aug 1 20:21 keys-1706 -rw-r--r-- 1 root root 0 Aug 4 20:02 route-1706以下是兩個配置文件的內容。
[root@openstack_node1 network-scripts]# vim ifcfg-virbr0 STP=yes BRIDGING_OPTS=priority=32768 TYPE=Bridge 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=virbr0 UUID=d02717a2-acd1-41c7-a35a-a2b296e7f62e DEVICE=virbr0 ONBOOT=yes[root@openstack_node1 network-scripts]# vim ifcfg-bridge-slave-enp7s0
TYPE=Ethernet NAME=bridge-slave-enp7s0 UUID=00a58df5-b08c-4a17-958b-d29929ccdca9 DEVICE=enp7s0 ONBOOT=yes BRIDGE=virbr0查詢網橋狀態,這里看起來一切正常,但仔細看 nmcli device status輸出的結果,以太網enp7s0 的
“CONNECTION"還是自己,正常情況下應該是我們剛剛生成的這個 bridge-slave-enp7s0 接口,且這個接口也沒有出現在” nmcli connection show --active "的列表里。
我們使用"brctl show"進行驗證,可以看到"interfaces"那一列是空的。
[root@openstack_node1 network-scripts]# brctl show [root@openstack_node1 network-scripts]# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes停用以太網enp7s0,親測使用"nmcli connection down enp7s0"或者“ifdown enp7s0”都可以,我傾向使用"ifdown enp7s0",如下所示網橋virbr0接口顯示正常。
[root@openstack_node1 network-scripts]# ifdown enp7s0 [root@openstack_node1 network-scripts]# ifdown enp7s0 Connection 'enp7s0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)[root@openstack_node1 network-scripts]# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.b4a9fc215016 yes enp7s0[root@openstack_node1 network-scripts]# nmcli connection show --active NAME UUID TYPE DEVICE virbr0 d02717a2-acd1-41c7-a35a-a2b296e7f62e bridge virbr0 1706 32201b66-07ad-4b41-bd58-90a20573ab61 wifi wlp0s20f3 bridge-slave-enp7s0 00a58df5-b08c-4a17-958b-d29929ccdca9 ethernet enp7s0 [root@openstack_node1 network-scripts]# nmcli device status DEVICE TYPE STATE CONNECTION wlp0s20f3 wifi connected 1706 enp7s0 ethernet connected bridge-slave-enp7s0 virbr0 bridge connecting (getting IP configuration) virbr0 p2p-dev-wlp0s20f3 wifi-p2p disconnected -- lo loopback unmanaged --自此網橋就搭建完畢了。
1.以太網卡狀態為unavailable,nmcli connection up enp7s0提示centos8 Error: Failed to add/activate new connection: Connection ‘enp7s0’ is not acttive
然后使用ifup 或者ifdown進行恢復,又報錯eth0: error fetching interface information: Device not found
這里網卡的狀態可以使用上文的: nmcli device status 命令進行查詢。
device有4種狀態
(1)connected:已被NM管理,并且當前有活躍的connection
(2)disconnected:已被NM管理,但是當前沒有活躍的connection
(3)unmanaged:未被NM管理
(4)unavailable:不可用,NM無法管理,通常出現于網卡link為down時(如:ip link set ethX down)
我的解決的辦法:刪掉所有的網橋相關配置,關閉無線網,我只記得好像使用了下面四個命令:
nmcli connection up enp7s0 :可能會報錯
ifup enps70:可能會報錯
ip link set enps70
nmcli device reapply enp7s0
使用network設置中的圖形化界面添加一個連接,這個MAC Address一定要填以太網卡的MAC地址,其他的就正常填寫,填寫完了以后,重啟Networkmanager,然后運行以上四個命令,最后再查看這個以太網卡的狀態,一般都會OK的,好像還可以用nmtui這個工具添加連接,這個也可以試試,目地就是要NM管理這個以太網卡。
2.添加網橋后無法連接互聯網(我是使用無線網連接互聯網)
添加網橋后沒法連接百度,網絡圖標顯示以太網連接,查看配置無線網連接正常。
我的解決的辦法:修改網橋以及以太網卡配置文件中"DEFROUTE"參數配置為:“DEFROUTE=no"
然后shutdown所有連接,重啟Networkmanager服務,打開無線網連接,檢查網絡連接狀況,此時無線網一般都能正常連接至互聯網,然后再逐一開啟以太網卡以及網橋。這個相當于是降低以太網連接的優先級,系統默認應該是以太網優先級較高,當以太網連接被激活時,路由優先走以太卡網出去,導致電腦無法上網。
總結
以上是生活随笔為你收集整理的centos 8 使用 nmcli 配置网桥Bridge(最后有踩坑过程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zynq学习笔记
- 下一篇: found zsh 所有命令在终端失效