Linux|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模式的网卡
Linux|Linux之nmcli
文章图片

[root@redhat ~]# nmcli device show

Linux|Linux之nmcli
文章图片

查看网卡状态
当前状态为未连接会话
[root@redhat ~]# nmcli device status DEVICETYPESTATECONNECTION ens160ethernetconnectedens160 virbr0bridgeconnected (externally)virbr0 ens224ethernetdisconnected-- ens256ethernetdisconnected-- loloopbackunmanaged-- virbr0-nictununmanaged--

激活两块网卡实现会话连接
[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 DEVICETYPESTATECONNECTION ens160ethernetconnectedens160 ens224ethernetconnectedens224 ens256ethernetconnectedens256 virbr0bridgeconnected (externally)virbr0 loloopbackunmanaged-- virbr0-nictununmanaged--

添加虚拟设备
[root@redhat ~]# nmcli connection add type team con-name team0 ifname team0 config'{"runner":{"name":"activebackup"}}' Error: invalid >. '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//查看是否添加成功 NAMEUUIDTYPEDEVICE team0622c0b70-68ca-4c81-bf0c-f8f9dbecf7fbteamteam0 ens160fb9f09a5-677d-4d17-a4dd-afba85b4a9b4ethernetens160 ens22437a4f01f-113e-47a6-9b0f-90a504a9980dethernetens224 ens256ed2fc778-e87f-44d8-a9ca-efee3293d85bethernetens256 virbr0503c64e5-6c2e-467a-a385-c42f7f7cebd5bridgevirbr0

将两块网卡分别作为接口加入虚拟设备中
[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//此时的接口只是加入虚拟设备但未激活 NAMEUUIDTYPEDEVICE team0622c0b70-68ca-4c81-bf0c-f8f9dbecf7fbteamteam0 ens160fb9f09a5-677d-4d17-a4dd-afba85b4a9b4ethernetens160 ens22437a4f01f-113e-47a6-9b0f-90a504a9980dethernetens224 ens256ed2fc778-e87f-44d8-a9ca-efee3293d85bethernetens256 virbr0503c64e5-6c2e-467a-a385-c42f7f7cebd5bridgevirbr0 eno380691218-f1a5-460e-9557-423137353b22ethernet-- eno585cd8d75-2863-4811-8c97-d721d2550189ethernet--

激活接口
[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 NAMEUUIDTYPEDEVICE ens160fb9f09a5-677d-4d17-a4dd-afba85b4a9b4ethernetens160 team0622c0b70-68ca-4c81-bf0c-f8f9dbecf7fbteamteam0 virbr0503c64e5-6c2e-467a-a385-c42f7f7cebd5bridgevirbr0 eno380691218-f1a5-460e-9557-423137353b22ethernetens224 eno585cd8d75-2863-4811-8c97-d721d2550189ethernetens256 ens22437a4f01f-113e-47a6-9b0f-90a504a9980dethernet-- ens256ed2fc778-e87f-44d8-a9ca-efee3293d85bethernet--

【Linux|Linux之nmcli】查看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: 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 NAMEUUIDTYPEDEVICE ens160fb9f09a5-677d-4d17-a4dd-afba85b4a9b4ethernetens160 ens22437a4f01f-113e-47a6-9b0f-90a504a9980dethernetens224 team0622c0b70-68ca-4c81-bf0c-f8f9dbecf7fbteamteam0 virbr0503c64e5-6c2e-467a-a385-c42f7f7cebd5bridgevirbr0 eno585cd8d75-2863-4811-8c97-d721d2550189ethernetens256 //正在运行的接口 eno380691218-f1a5-460e-9557-423137353b22ethernet-- ens256ed2fc778-e87f-44d8-a9ca-efee3293d85bethernet--

    推荐阅读