nmcli(networkmangager command line tool)基于会话的网络管理
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。
[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技术就是把同一台服务器上的多个物理网卡通过软件绑定成一个虚拟的网卡,也就是说,对于外部网络而言,这台服务器只有一个可见的网卡。对于任何应用程序,以及本服务器所在的网络,这台服务器只有一个网络链接或者说只有一个可以访问的IP地址。
之所以要利用Teaming 技术,除了利用多网卡同时工作来提高网络速度以外,还有可以通过Teaming 实现不同网卡之间的负载均衡(Load balancing)和网卡冗余(Fault tolerance)。
在system1和system2之间按以下要求配置一个聚合链路:
此链路使用接口eno3和eno5
此链路在一个接口失效时仍然能够工作
此链路在system1使用下面的地址192.168.xxx.xxx/255.255.255.0
[root@redhat ~]# nmcli device show
[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 --