nmcli 可以操作基本的网络架构、Team、Bridge,可以自动更改系统的网络配置文件,并且让配置实时生效,功能相当强大


本节介绍用nmcli操作Bridge


首先安装命令参数自动补全功能

[root@localhost ~]# yum search bash            #记不住组件完整名称了,只记得住“bash”,先搜索下
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.yun-idc.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
================================ N/S matched: bash ===============================
bash-completion.noarch : Programmable completion for Bash
bash-doc.x86_64 : Documentation files for bash
libguestfs-bash-completion.noarch : Bash tab-completion scripts for libguestfs tools
pcp-pmda-bash.x86_64 : Performance Co-Pilot (PCP) metrics for the Bash shell
bash.x86_64 : The GNU Bourne Again shell

  Name and summary matches only, use "search all" for everything.
[root@localhost ~]# yum install -y bash-completion.noarch    #安装所需组件
[root@localhost ~]# su -                                     #需要重新login后才能生效


原始状态

[root@localhost ~]# nmcli con show
NAME         UUID                                  TYPE            DEVICE      
eno16777736  01ef745d-f2ee-421a-8dd5-4da36d509e2a  802-3-ethernet  eno16777736 
[root@localhost ~]#


新创建一个桥名字是“br-ex”

[root@localhost ~]# nmcli con add type bridge con-name br-ex ifname br-ex autoconnect yes
Connection 'br-ex' (51390341-48e3-40a9-bf82-cef38e371134) successfully added.
[root@localhost ~]#

#这里的con-name可以保持配置文件的名字也是"br-ex"

[root@localhost ~]# nmcli con show
NAME         UUID                                  TYPE            DEVICE      
br-ex        51390341-48e3-40a9-bf82-cef38e371134  bridge          br-ex       
eno16777736  01ef745d-f2ee-421a-8dd5-4da36d509e2a  802-3-ethernet  eno16777736 
[root@localhost ~]#


给Bridge添加一个物理网口

[root@localhost ~]# nmcli con add type bridge-slave con-name em1 ifname eno16777736 master br-ex
Connection 'em1' (946d158b-245f-49d9-bb7f-f558298df5a2) successfully added.
[root@localhost ~]# nmcli con show
NAME         UUID                                  TYPE            DEVICE      
br-ex        51390341-48e3-40a9-bf82-cef38e371134  bridge          br-ex       
eno16777736  01ef745d-f2ee-421a-8dd5-4da36d509e2a  802-3-ethernet  eno16777736 
em1          946d158b-245f-49d9-bb7f-f558298df5a2  802-3-ethernet  --  
#可以看到新创建的Bridge接口"em1"的"DEVICE"还没有变成物理网卡的名字,这里需要重启"network"服务        

[root@localhost ~]#systemctl restart network
[root@localhost ~]# nmcli con show
NAME         UUID                                  TYPE            DEVICE      
br-ex        51390341-48e3-40a9-bf82-cef38e371134  bridge          br-ex       
em1          946d158b-245f-49d9-bb7f-f558298df5a2  802-3-ethernet  eno16777736 
eno16777736  01ef745d-f2ee-421a-8dd5-4da36d509e2a  802-3-ethernet  --          
[root@localhost ~]#

#然后就可以删除原来的连接了
[root@localhost ~]# nmcli con delete eno16777736 
Connection 'eno16777736' (01ef745d-f2ee-421a-8dd5-4da36d509e2a) successfully deleted.
[root@localhost ~]# nmcli con show
NAME   UUID                                  TYPE            DEVICE      
br-ex  51390341-48e3-40a9-bf82-cef38e371134  bridge          br-ex       
em1    946d158b-245f-49d9-bb7f-f558298df5a2  802-3-ethernet  eno16777736 

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br-ex state UP qlen 1000
    link/ether 00:0c:29:07:82:16 brd ff:ff:ff:ff:ff:ff
4: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:0c:29:07:82:16 brd ff:ff:ff:ff:ff:ff
    inet 192.168.127.129/24 brd 192.168.127.255 scope global dynamic br-ex
       valid_lft 1687sec preferred_lft 1687sec
    inet6 fe80::93f9:ae63:2d38:153b/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]#


可以看到Bridge“br-ex”已经自动拿到了IP地址