Linux之nmcli

nmcli

nmcli(networkmangager command line tool)基于会话的网络管理

了解nmcli选型

type — 连接类型。

允许值为:adsl, bond, bond-slave, bridge, bridge-slave, bluetooth, cdma,
ethernet, gsm, infiniband, olpc-mesh, team, team-slave, vlan, wifi,wimax.

每个连接了类型都有具体类型的命令选项。按 Tab 键查看该列表,或查看 nmcli(1) man page 中的 TYPE_SPECIFIC_OPTIONS 列表。type 选项可用于如下命令:nmcli connection add 和 nmcli connection edit。

con-name — 为连接配置分配的名称。
如果未指定连接名称,则会以如下格式生成名称:
type-ifname[-number]

id — 用户为连接配置文件分配的身份字符串。
可在 nmcli connection 命令中用来识别某个连接的 ID。输出结果中的 NAME 字段永远代表连接 ID(名称)。它指的是 con-name 给出的同一连接配置文件名称。

uuid — 系统为连接配置文件分配的独有身份字符串。

可在 nmcli connection 命令中用来识别某个连接的 UUID。

使用nmcli手动配置网络

[root@redhat ~]# nmcli connection modify ens160 ipv4.addresses 192.168.159.150/24 ipv4.gateway 192.168.159.2 ipv4.dns 114.114.114.144 ipv4.method manual connection.autoconnect yes

最后重启网络连接即可

teaming技术配置网卡聚合链路

     所谓teaming技术就是把同一台服务器上的多个物理网卡通过软件绑定成一个虚拟的网卡,也就是说,对于外部网络而言,这台服务器只有一个可见的网卡。对于任何应用程序,以及本服务器所在的网络,这台服务器只有一个网络链接或者说只有一个可以访问的IP地址。
     之所以要利用Teaming 技术,除了利用多网卡同时工作来提高网络速度以外,还有可以通过Teaming 实现不同网卡之间的负载均衡(Load balancing)和网卡冗余(Fault tolerance)。

配置链路聚合

在system1和system2之间按以下要求配置一个聚合链路:
此链路使用接口eno3和eno5
此链路在一个接口失效时仍然能够工作
此链路在system1使用下面的地址192.168.xxx.xxx/255.255.255.0

添加两块NAT模式的网卡
在这里插入图片描述

[root@redhat ~]# nmcli device show

Linux之nmcli_第1张图片
查看网卡状态
当前状态为未连接会话

[root@redhat ~]# nmcli device status
DEVICE      TYPE      STATE                   CONNECTION 
ens160      ethernet  connected               ens160     
virbr0      bridge    connected (externally)  virbr0     
ens224      ethernet  disconnected            --         
ens256      ethernet  disconnected            --         
lo          loopback  unmanaged               --         
virbr0-nic  tun       unmanaged               --  

激活两块网卡实现会话连接

[root@redhat ~]# nmcli device connect ens224
Device 'ens224' successfully activated with '37a4f01f-113e-47a6-9b0f-90a504a9980d'.
[root@redhat ~]# nmcli device connect ens256
Device 'ens256' successfully activated with 'ed2fc778-e87f-44d8-a9ca-efee3293d85b'.

查看状态
已经实现连接

[root@redhat ~]# nmcli device status
DEVICE      TYPE      STATE                   CONNECTION 
ens160      ethernet  connected               ens160     
ens224      ethernet  connected               ens224     
ens256      ethernet  connected               ens256     
virbr0      bridge    connected (externally)  virbr0     
lo          loopback  unmanaged               --         
virbr0-nic  tun       unmanaged               --       

添加虚拟设备

[root@redhat ~]# nmcli connection add type team con-name team0 ifname team0 config'{"runner":{"name":"activebackup"}}'
Error: invalid <setting>.<property> 'config{"runner":       {"name": "activebackup"}}'. //发生错误,这个错误就是由于config后面未空格写在了一起

[root@redhat ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
Connection 'team0' (622c0b70-68ca-4c81-bf0c-f8f9dbecf7fb) successfully added.
[root@redhat ~]# nmcli connection show  //查看是否添加成功
NAME    UUID                                  TYPE      DEVICE 
team0   622c0b70-68ca-4c81-bf0c-f8f9dbecf7fb  team      team0  
ens160  fb9f09a5-677d-4d17-a4dd-afba85b4a9b4  ethernet  ens160 
ens224  37a4f01f-113e-47a6-9b0f-90a504a9980d  ethernet  ens224 
ens256  ed2fc778-e87f-44d8-a9ca-efee3293d85b  ethernet  ens256 
virbr0  503c64e5-6c2e-467a-a385-c42f7f7cebd5  bridge    virbr0 

将两块网卡分别作为接口加入虚拟设备中

[root@redhat ~]# nmcli connection add type team-slave con-name eno3 ifname ens224 master team0
Connection 'eno3' (80691218-f1a5-460e-9557-423137353b22) successfully added.
[root@redhat ~]# nmcli connection add type team-slave con-name eno5 ifname ens256 master team0
Connection 'eno5' (85cd8d75-2863-4811-8c97-d721d2550189) successfully added.
[root@redhat ~]# nmcli connection show   //此时的接口只是加入虚拟设备但未激活
NAME    UUID                                  TYPE      DEVICE 
team0   622c0b70-68ca-4c81-bf0c-f8f9dbecf7fb  team      team0  
ens160  fb9f09a5-677d-4d17-a4dd-afba85b4a9b4  ethernet  ens160 
ens224  37a4f01f-113e-47a6-9b0f-90a504a9980d  ethernet  ens224 
ens256  ed2fc778-e87f-44d8-a9ca-efee3293d85b  ethernet  ens256 
virbr0  503c64e5-6c2e-467a-a385-c42f7f7cebd5  bridge    virbr0 
eno3    80691218-f1a5-460e-9557-423137353b22  ethernet  --     
eno5    85cd8d75-2863-4811-8c97-d721d2550189  ethernet  --     

激活接口

[root@redhat ~]# nmcli connection up eno3
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@redhat ~]# nmcli connection up eno5
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
[root@redhat ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
ens160  fb9f09a5-677d-4d17-a4dd-afba85b4a9b4  ethernet  ens160 
team0   622c0b70-68ca-4c81-bf0c-f8f9dbecf7fb  team      team0  
virbr0  503c64e5-6c2e-467a-a385-c42f7f7cebd5  bridge    virbr0 
eno3    80691218-f1a5-460e-9557-423137353b22  ethernet  ens224 
eno5    85cd8d75-2863-4811-8c97-d721d2550189  ethernet  ens256 
ens224  37a4f01f-113e-47a6-9b0f-90a504a9980d  ethernet  --     
ens256  ed2fc778-e87f-44d8-a9ca-efee3293d85b  ethernet  -- 

查看team0的状态

[root@redhat ~]# teamdctl team0 stat
setup:
  runner: activebackup
ports:
  ens224
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens256
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens224

查看此时team0的IP地址
[root@redhat ~]# ip a

team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:b0:ee:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.159.141/24 brd 192.168.159.255 scope global dynamic noprefixroute team0
       valid_lft 1771sec preferred_lft 1771sec
    inet6 fe80::8835:7884:9f9a:2e77/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

断开eno3接口测试,查看虚拟网卡是否能偶正常运行

[root@redhat ~]# nmcli connection down eno3
Connection 'eno3' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@redhat ~]# teamdctl team0 stat
setup:
  runner: activebackup
ports:
  ens256
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens256 
  [root@redhat ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
ens160  fb9f09a5-677d-4d17-a4dd-afba85b4a9b4  ethernet  ens160 
ens224  37a4f01f-113e-47a6-9b0f-90a504a9980d  ethernet  ens224 
team0   622c0b70-68ca-4c81-bf0c-f8f9dbecf7fb  team      team0  
virbr0  503c64e5-6c2e-467a-a385-c42f7f7cebd5  bridge    virbr0 
eno5    85cd8d75-2863-4811-8c97-d721d2550189  ethernet  ens256 //正在运行的接口
eno3    80691218-f1a5-460e-9557-423137353b22  ethernet  --     
ens256  ed2fc778-e87f-44d8-a9ca-efee3293d85b  ethernet  --  

你可能感兴趣的:(Linux,linux)