CentOS7之前的网络管理是通过ifcfg文件配置管理接口(device),而现在是通过NetworkManager服务管理连接(connection)。
一个接口(device)可以有多个连接(connection),但是同时只允许一个连接(connection)处于激活(active)状态。
简单理解就是,一个连接就是(connection)就是/etc/sysconfig/network-scripts/目录下的一个配置文件,接口(device)
是物理设备,一个物理设置可以拥有多个配置文件,但只能有一个配置文件属于使用(active)状态;配置文件的生成与使用
状态均由NetworkManager控制。
命令介绍:
[root@localhost ~]# nmcli -h #查看帮助
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
OPTIONS
-t[erse] terse output #简洁的输出
-p[retty] pretty output #漂亮的输出
-m[ode] tabular|multiline output mode #输出模式
-c[olors] auto|yes|no whether to use colors in output #是否在输出中使用颜色
-f[ields] <field1,field2,...>|all|common specify fields to output #指定要输出的字段
-e[scape] yes|no escape columns separators in values #值中的列分隔符
-a[sk] ask for missing parameters #询问缺少的参数
-s[how-secrets] allow displaying passwords #允许显示密码
-w[ait] <seconds> set timeout waiting for finishing operations #设置超时等待完成操作
-v[ersion] show program version #显示程序版本
-h[elp] print this help #打印帮助
OBJECT
g[eneral] NetworkManager's general status and operations #网络管理的一般状况及操作
n[etworking] overall networking control #总体网络控制
r[adio] NetworkManager radio switches #安装无线电开关
c[onnection] NetworkManager's connections #网络连接管理
d[evice] devices managed by NetworkManager #设备管理
a[gent] NetworkManager secret agent or polkit agent #安装代理
m[onitor] monitor NetworkManager changes #监控网络管理器的变化
常用的object有:connection,device,general,可以分别缩写为con,dev,gen
nmcli其它使用方法请转到:使用 NETWORKMANAGER 命令行工具 NMCLI
1、nmcli general
[root@localhost ~]# nmcli general -h
用法:nmcli general { COMMAND | help }
COMMAND := { status | hostname | permissions | logging }
status
hostname [<hostname>]
permissions
logging [level <log level>] [domains <log domains>]
显示networkManager总体状态:
[root@localhost ~]# nmcli general status
状态 CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
连接的 全部 已启用 已启用 已启用 已启用
要控制NetworkManager日志记录:
[root@localhost ~]# nmcli general logging domains ip4
[root@localhost ~]# nmcli general logging domains team
修改主机名:
[root@localhost ~]# nmcli general hostname zhang
显示所有链接许可:
[root@localhost ~]# nmcli general permissions
PERMISSION VALUE
org.freedesktop.NetworkManager.enable-disable-network 是
org.freedesktop.NetworkManager.enable-disable-wifi 是
org.freedesktop.NetworkManager.enable-disable-wwan 是
org.freedesktop.NetworkManager.enable-disable-wimax 是
org.freedesktop.NetworkManager.sleep-wake 是
org.freedesktop.NetworkManager.network-control 是
org.freedesktop.NetworkManager.wifi.share.protected 是
org.freedesktop.NetworkManager.wifi.share.open 是
org.freedesktop.NetworkManager.settings.modify.system 是
org.freedesktop.NetworkManager.settings.modify.own 是
org.freedesktop.NetworkManager.settings.modify.hostname 是
org.freedesktop.NetworkManager.settings.modify.global-dns 是
org.freedesktop.NetworkManager.reload 是
org.freedesktop.NetworkManager.checkpoint-rollback 是
org.freedesktop.NetworkManager.enable-disable-statistics 是
2、nmcli device #对网卡设备接口的操作
[root@localhost ~]# nmcli device -h
Usage: nmcli device { COMMAND | help }
COMMAND := { status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp }
status
show [<ifname>]
set [ifname] <ifname> [autoconnect yes|no] [managed yes|no]
connect <ifname>
reapply <ifname>
modify <ifname> ([+|-]<setting>.<property> <value>)+
disconnect <ifname> ...
delete <ifname> ...
monitor <ifname> ...
wifi [list [ifname <ifname>] [bssid <BSSID>]]
wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] [ifname <ifname>]
[bssid <BSSID>] [name <name>] [private yes|no] [hidden yes|no]
wifi hotspot [ifname <ifname>] [con-name <name>] [ssid <SSID>] [band a|bg] [channel <channel>] [password <password>]
wifi rescan [ifname <ifname>] [[ssid <SSID to scan>] ...]
lldp [list [ifname <ifname>]]
3、nmcli connection #对网络连接的操作
[root@localhost ~]# nmcli connection -h #网络链接操作帮助
Usage: nmcli connection { COMMAND | help }
COMMAND := { show | up | down | add | modify | clone | edit | delete | monitor | reload | load | import | export }
show [--active] [--order <order spec>]
show [--active] [id | uuid | path | apath] <ID> ...
up [[id | uuid | path] <ID>] [ifname <ifname>] [ap <BSSID>] [passwd-file <file with passwords>]
down [id | uuid | path | apath] <ID> ...
add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS [-- ([+|-]<setting>.<property> <value>)+]
modify [--temporary] [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+
clone [--temporary] [id | uuid | path ] <ID> <new name>
edit [id | uuid | path] <ID>
edit [type <new_con_type>] [con-name <new_con_name>]
delete [id | uuid | path] <ID>
monitor [id | uuid | path] <ID> ...
reload
load <filename> [ <filename>... ]
import [--temporary] type <type> file <file to import>
export [id | uuid | path] <ID> [<output file>]
nmcli命令选项解释:
[root@localhost ~]# nmcli connection add -h
用法:nmcli connection add { ARGUMENTS | help }
ARGUMENTS := COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS [-- ([+|-]<setting>.<property> <value>)+]
COMMON_OPTIONS:
type <type>
ifname <interface name> | "*" #设备接口名称
[con-name <connection name>] #连接名称
[autoconnect yes|no] #是否自动连接
[save yes|no] #是否为从
[master <master (ifname, or connection UUID or name)>] #指定主设备接口名
[slave-type <master connection type>] #从接口类型
TYPE_SPECIFIC_OPTIONS: type类型
ethernet: [mac <MAC address>]
[cloned-mac <cloned MAC address>]
[mtu <MTU>]
wifi: ssid <SSID>
[mac <MAC address>]
[cloned-mac <cloned MAC address>]
[mtu <MTU>]
[mode infrastructure|ap|adhoc]
wimax: [mac <MAC address>]
[nsp <NSP>]
pppoe: username <PPPoE username>
[password <PPPoE password>]
[service <PPPoE service name>]
[mtu <MTU>]
[mac <MAC address>]
gsm: apn <APN>
[user <username>]
[password <password>]
cdma: [user <username>]
[password <password>]
infiniband: [mac <MAC address>]
[mtu <MTU>]
[transport-mode datagram | connected]
[parent <ifname>]
[p-key <IPoIB P_Key>]
bluetooth: [addr <bluetooth address>]
[bt-type panu|dun-gsm|dun-cdma]
vlan: dev <parent device (connection UUID, ifname, or MAC)>
id <VLAN ID>
[flags <VLAN flags>]
[ingress <ingress priority mapping>]
[egress <egress priority mapping>]
[mtu <MTU>]
bond: [mode balance-rr (0) | active-backup (1) | balance-xor (2) | broadcast (3) |
802.3ad (4) | balance-tlb (5) | balance-alb (6)]
[primary <ifname>]
[miimon <num>]
[downdelay <num>]
[updelay <num>]
[arp-interval <num>]
[arp-ip-target <num>]
[lacp-rate slow (0) | fast (1)]
bond-slave: master <master (ifname, or connection UUID or name)>
team: [config <file>|<raw JSON data>]
team-slave: master <master (ifname, or connection UUID or name)>
[config <file>|<raw JSON data>]
bridge: [stp yes|no]
[priority <num>]
[forward-delay <2-30>]
[hello-time <1-10>]
[max-age <6-40>]
[ageing-time <0-1000000>]
[multicast-snooping yes|no]
[mac <MAC address>]
bridge-slave: master <master (ifname, or connection UUID or name)>
[priority <0-63>]
[path-cost <1-65535>]
[hairpin yes|no]
***: ***-type ***c|open***|pptp|openconnect|openswan|libreswan|ssh|l2tp|iodine|...
[user <username>]
olpc-mesh: ssid <SSID>
[channel <1-13>]
[dhcp-anycast <MAC address>]
adsl: username <username>
protocol pppoa|pppoe|ipoatm
[password <password>]
[encapsulation vcmux|llc]
tun: mode tun|tap
[owner <UID>]
[group <GID>]
[pi yes|no]
[vnet-hdr yes|no]
[multi-queue yes|no]
ip-tunnel: mode ipip|gre|sit|isatap|vti|ip6ip6|ipip6|ip6gre|vti6
remote <remote endpoint IP>
[local <local endpoint IP>]
[dev <parent device (ifname or connection UUID)>]
macvlan: dev <parent device (connection UUID, ifname, or MAC)>
mode vepa|bridge|private|passthru|source
[tap yes|no]
vxlan: id <VXLAN ID>
remote <IP of multicast group or remote address>
[local <source IP>]
[dev <parent device (ifname or connection UUID)>]
[source-port-min <0-65535>]
[source-port-max <0-65535>]
[destination-port <0-65535>]
SLAVE_OPTIONS: #从选项
bridge: [priority <0-63>]
[path-cost <1-65535>]
[hairpin yes|no]
team: [config <file>|<raw JSON data>]
IP_OPTIONS: #ip配置
[ip4 <IPv4 address>] [gw4 <IPv4 gateway>]
[ip6 <IPv6 address>] [gw6 <IPv6 gateway>]
查看接口设备信息:
# 简单信息
nmcli device status
# 详细的接口信息
nmcli device show
# 接口的详细信息
nmcli device show interface-name
查看连接(connection)的信息:
# 简单信息
nmcli connection show
# 详细的连接信息
nmcli connection show
# 某个连接的详细信息
nmcli connection show connection-name
启动和停止接口:
nmcli connection down connection-name
nmcli connection up connection-name
nmcli device disconnect interface-name
nmcli device connect interface-name
#建议使用device命令
创建连接:
nmcli connection add type ethernet con-name 链接名 ifname 设备名
nmcli connection add type ethernet con-name 链接名 ifname 设备名 ip4 IP地址 gw4 网关地址
激活链接:
nmcli connection up 链接名
实例配置IP链接:
[root@localhost network-scripts]# nmcli device status #查看设备信息
设备 类型 状态 CONNECTION
ens32 ethernet 连接的 ens32
ens34 ethernet 已断开 --
ens35 ethernet 已断开 --
lo loopback 未管理 --
#创建动态链接:
[root@localhost network-scripts]# nmcli con add type eth con-name dynamic-eth1 ifname ens34
成功添加的连接 'dynamic-eth1'(bca051ea-5aaf-45fb-9e08-5f673be25971)。
#type为ethernet,con-name链接名为dynamic-eth1,设备名ifname为ens34
[root@localhost network-scripts]# nmcli con up dynamic-eth1 #激活链接
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/26)
[root@localhost network-scripts]# nmcli con show #查看连接
名称 UUID 类型 设备
dynamic-eth1 bca051ea-5aaf-45fb-9e08-5f673be25971 802-3-ethernet ens34
ens32 152beb06-47c5-c5e8-95a9-385590654382 802-3-ethernet ens32
[root@localhost network-scripts]# nmcli device status #查看设备状态
设备 类型 状态 CONNECTION
ens32 ethernet 连接的 ens32
ens34 ethernet 连接的 dynamic-eth1
ens35 ethernet 已断开 --
lo loopback 未管理 --
[root@localhost network-scripts]# nmcli device show ens34 #查看设备接口详细信息
GENERAL.设备: ens34
GENERAL.类型: ethernet
GENERAL.硬盘: 00:0C:29:AF:76:B0
GENERAL.MTU: 1500
GENERAL.状态: 100 (连接的)
GENERAL.CONNECTION: dynamic-eth1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/26
WIRED-PROPERTIES.容器: 开
IP4.地址[1]: 10.0.1.179/24
IP4.网关: 10.0.1.1
IP4.DNS[1]: 202.106.0.20
IP4.DNS[2]: 123.125.81.6
IP6.地址[1]: fe80::8249:699f:678e:d257/64
IP6.网关:
创建静态链接:
[root@localhost network-scripts]# nmcli con add type ethernet con-name static-eth2 ifname ens35 ip4 10.0.1.180/24 gw4 10.0.1.1
成功添加的连接 'static-eth2'(3c5f6321-c311-4938-af53-10c7b2a04461)。 #静态链接配置
[root@localhost network-scripts]# nmcli con up static-eth2
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/28)
[root@localhost network-scripts]# nmcli con show
名称 UUID 类型 设备
dynamic-eth1 bca051ea-5aaf-45fb-9e08-5f673be25971 802-3-ethernet ens34
ens32 152beb06-47c5-c5e8-95a9-385590654382 802-3-ethernet ens32
static-eth2 3c5f6321-c311-4938-af53-10c7b2a04461 802-3-ethernet ens35
[root@localhost network-scripts]# nmcli device status
设备 类型 状态 CONNECTION
ens32 ethernet 连接的 ens32
ens34 ethernet 连接的 dynamic-eth1
ens35 ethernet 连接的 static-eth2
lo loopback 未管理 --
[root@localhost network-scripts]# nmcli device show ens35
GENERAL.设备: ens35
GENERAL.类型: ethernet
GENERAL.硬盘: 00:0C:29:AF:76:BA
GENERAL.MTU: 1500
GENERAL.状态: 100 (连接的)
GENERAL.CONNECTION: static-eth2
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/28
WIRED-PROPERTIES.容器: 开
IP4.地址[1]: 10.0.1.180/24
IP4.网关: 10.0.1.1
IP6.地址[1]: fe80::e159:6735:3896:b9af/64
IP6.网关:
#创建的两个链接配置文件
[root@localhost network-scripts]# cat ifcfg-dynamic-eth1
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=dynamic-eth1 #链接名
UUID=bca051ea-5aaf-45fb-9e08-5f673be25971
DEVICE=ens34 #设备名
ONBOOT=yes
[root@localhost network-scripts]# cat ifcfg-static-eth2
TYPE=Ethernet
BOOTPROTO=none
IPADDR=10.0.1.180
PREFIX=24
GATEWAY=10.0.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=static-eth2
UUID=3c5f6321-c311-4938-af53-10c7b2a04461
DEVICE=ens35
ONBOOT=yes
修改链接的IP地址:
nmcli connection show static-eht2 #查看可修改的属性
nmcli connection modify [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+
#查看接口IP
[root@localhost network-scripts]# ip addr|grep ens35
4: ens35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
inet 10.0.1.180/24 brd 10.0.1.255 scope global ens35
#修改链接IP
[root@localhost network-scripts]# nmcli connection modify static-eth2 ipv4.addr 10.0.1.182/24
#激活链接
[root@localhost network-scripts]# nmcli con up static-eth2
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/29)
[root@localhost network-scripts]# ip addr|grep ens35
4: ens35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
inet 10.0.1.182/24 brd 10.0.1.255 scope global ens35
配置连接DNS:
[root@localhost ~]# nmcli connection modify static-eth2 ipv4.dns 202.106.0.20 #配置单个DNS
[root@localhost ~]# nmcli connection modify static-eth2 ipv4.dns "202.106.0.20 123.125.81.6" #配置多个DNS,会覆盖掉以前的配置
[root@localhost ~]# nmcli connection modify static-eth2 +ipv4.dns 202.106.0.20 #如不想覆盖,添加DNS需在前面用'+'
[root@localhost ~]# grep DNS /etc/sysconfig/network-scripts/ifcfg-static-eth2 #查看配置的DNS
DNS1=202.106.0.20
DNS2=123.125.81.6
IPV6_PEERDNS=yes
[root@localhost ~]# nmcli con up static-eth2 #需要重新激活,才能在DNS配置文件中生效
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1
nameserver 202.106.0.20
nameserver 123.125.81.6
可以使用交换模式配置连接:
[root@localhost ~]# nmcli con edit
无效连接类型:generic, 802-3-ethernet (ethernet), pppoe, 802-11-wireless (wifi), wimax, gsm, cdma, infiniband, adsl, bluetooth, ***, 802-11-olpc-mesh (olpc-mesh), vlan, bond, team, bridge, bond-slave, team-slave, bridge-slave, no-slave, tun, ip-tunnel, macvlan, vxlan
输入连接类型:team
===| nmcli interactive connection editor |===
添加新 'team' 连接
输入 'help' 或者 '?' 查看可用命令。
输入 'describe [<setting>.<prop>]' 查看详细的属性说明。
您可以编辑如下设置:connection, team, 802-3-ethernet (ethernet), ipv4, ipv6
nmcli> ?
------------------------------------------------------------------------------
---[ Main menu ]---
goto [<setting> | <prop>] :: go to a setting or property
remove <setting>[.<prop>] | <prop> :: remove setting or reset property value
set [<setting>.<prop> <value>] :: set property value
describe [<setting>.<prop>] :: describe property
print [all | <setting>[.<prop>]] :: print the connection
verify [all | fix] :: verify the connection
save [persistent|temporary] :: save the connection
activate [<ifname>] [/<ap>|<nsp>] :: activate the connection
back :: go one level up (back)
help/? [<command>] :: print this help
nmcli <conf-option> <value> :: nmcli configuration
quit :: exit nmcli
------------------------------------------------------------------------------
1、创建接口组
#查看可用的设备
[root@localhost ~]# nmcli dev status
设备 类型 状态 CONNECTION
ens32 ethernet 连接的 ens32
ens33 ethernet 连接的 有线连接 1
ens34 ethernet 连接的 有线连接 2
lo loopback 未管理 --
#使用ens33和ens34网卡在‘主动备份’模式下创建一个接口组。
#创建接口组语法:nmcli connection add type team con-name 连接名 ifname 接口名称 config JSON(JSON语法)
#json语法格式:{'runner':{'name':'METHOD'}}
#METHOD 是以下的其中一个:broadcast、activebackup、roundrobin、loadbalance 或者 lacp。
第一种模式:mod=0 ,即:(balance-rr)Round-robin policy(平衡抡循环策略)交换机配置Eth-Trunk
第二种模式:mod=1,即: (active-backup)Active-backup policy(主-备份策略)
第三种模式:mod=2,即:(balance-xor)XOR policy(平衡策略)
第四种模式:mod=3,即:broadcast(广播策略)
第五种模式:mod=4,即:(802.3ad)IEEE 802.3ad Dynamic link aggregation(IEEE802.3ad 动态链接聚合)
第六种模式:mod=5,即:(balance-tlb)Adaptive transmit load balancing(适配器传输负载均衡)
第七种模式:mod=6,即:(balance-alb)Adaptive load balancing(适配器适应性负载均衡)
#创建接口组:
[root@localhost ~]# nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
成功添加的连接 'team0'(8333f467-cf98-47c3-9c2b-f3b52b644f9d)。
#查看接口配置:
[root@localhost ~]# nmcli con show
名称 UUID 类型 设备
ens32 152beb06-47c5-c5e8-95a9-385590654382 802-3-ethernet ens32
team0 8333f467-cf98-47c3-9c2b-f3b52b644f9d team team0
有线连接 1 75e1a416-8c0c-3899-8211-858c91e911f2 802-3-ethernet ens33
有线连接 2 84b95abc-13be-35a5-bd05-ccc96108a09a 802-3-ethernet ens34
2、添加从设备到组接口:
#添加设备语法:
#nmcli con add type team-slave con-name 连接名 ifname 设备名 master 接口组名
#首先查看链接信息,发现ens33和ens34设备在连接中,正在使用,所以这里需要先把连接给删了。
[root@localhost ~]# nmcli con show
名称 UUID 类型 设备
ens32 152beb06-47c5-c5e8-95a9-385590654382 802-3-ethernet ens32
team0 8333f467-cf98-47c3-9c2b-f3b52b644f9d team team0
有线连接 1 75e1a416-8c0c-3899-8211-858c91e911f2 802-3-ethernet ens33
有线连接 2 84b95abc-13be-35a5-bd05-ccc96108a09a 802-3-ethernet ens34
[root@localhost ~]# nmcli con del "有线连接 1" #这个属于默认连接配置
成功删除连接 '有线连接 1'(75e1a416-8c0c-3899-8211-858c91e911f2)。
[root@localhost ~]# nmcli con del "有线连接 2"
成功删除连接 '有线连接 2'(84b95abc-13be-35a5-bd05-ccc96108a09a)。
[root@localhost ~]# nmcli con show #连接已删除
名称 UUID 类型 设备
ens32 152beb06-47c5-c5e8-95a9-385590654382 802-3-ethernet ens32
team0 8333f467-cf98-47c3-9c2b-f3b52b644f9d team team0
[root@localhost ~]# nmcli dev status #查看可用设备,ens33,ens34未使用
设备 类型 状态 CONNECTION
ens32 ethernet 连接的 ens32
team0 team 连接中(获得 IP 配置) team0
ens33 ethernet 已断开 --
ens34 ethernet 已断开 --
lo loopback 未管理 --
#现在开始添加从设备:
[root@localhost ~]# nmcli con add type team-slave con-name team0-p1 ifname ens33 master team0
成功添加的连接 'team0-p1'(22a90406-e8b1-4fb0-b21e-9e12558883e5)。
[root@localhost ~]# nmcli con add type team-slave con-name team0-p2 ifname ens34 master team0
成功添加的连接 'team0-p2'(750ecf69-6740-42be-830d-2daae44f5710)。
[root@localhost ~]# nmcli con show #查看添加的从设备
名称 UUID 类型 设备
ens32 152beb06-47c5-c5e8-95a9-385590654382 802-3-ethernet ens32
team0 8333f467-cf98-47c3-9c2b-f3b52b644f9d team team0
team0-p1 22a90406-e8b1-4fb0-b21e-9e12558883e5 802-3-ethernet ens33
team0-p2 750ecf69-6740-42be-830d-2daae44f5710 802-3-ethernet ens34
3、为team0接口组配置静态ip地址,会修改ifcfg-team0配置文件:
[root@localhost network-scripts]# cat ifcfg-team0 #未配置IP之前
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=team0
UUID=8333f467-cf98-47c3-9c2b-f3b52b644f9d
ONBOOT=yes
DEVICETYPE=Team
#配置ip及网关地址:
[root@localhost network-scripts]# nmcli con mod team0 ipv4.addr 192.168.1.200/24 gw4 192.168.1.1
[root@localhost network-scripts]# cat ifcfg-team0 #添加了静态地址
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
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=team0
UUID=8333f467-cf98-47c3-9c2b-f3b52b644f9d
ONBOOT=yes
DEVICETYPE=Team
IPADDR=192.168.1.200 #添加了静态地址
PREFIX=24
GATEWAY=192.168.1.1
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
#现在我们修改BOOTPROTO模式为静态,也就是将它的值从dhcp改为none,不让它自动获取ip
[root@localhost network-scripts]# nmcli con mod team0 ipv4.method manual
[root@localhost network-scripts]# cat ifcfg-team0
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
................................略
#激活接口组team0:
[root@localhost network-scripts]# nmcli con up team0
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/9)
4、验证绑定
[root@localhost network-scripts]# ip add show team0 #查看组接口信息
5: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:0c:29:e6:ca:6a brd ff:ff:ff:ff:ff:ff
inet 192.168.1.200/24 brd 192.168.1.255 scope global team0
valid_lft forever preferred_lft forever
inet6 fe80::f30b:560f:9c8:cff9/64 scope link
valid_lft forever preferred_lft forever
[root@localhost network-scripts]# teamdctl team0 state #可以使用teamdctl命令检查网络组信息
setup:
runner: activebackup #显示模式
ports:
ens33 #物理接口状态
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens34
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens33 #显示活动中的从设备
#断开ens33接口,看能否激活被用设备ens34
[root@localhost network-scripts]# nmcli dev dis ens33
成功断开设备 'ens33'。
[root@localhost network-scripts]# teamdctl team0 state
setup:
runner: activebackup
ports:
ens34
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens34 #活动链接改为了ens34备用从设备
#查看ping连接,在切换过程中会有几个丢包产生:
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
请求超时。
请求超时。
请求超时。
请求超时。
来自 192.168.1.200 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
#当我们激活ens33连接后,它不会切换回ens33设备上,还会有少量丢包
[root@localhost network-scripts]# nmcli dev con ens33
成功用 'ens33' 激活了设备 '22a90406-e8b1-4fb0-b21e-9e12558883e5'。
[root@localhost network-scripts]# teamdctl team0 state
setup:
runner: activebackup
ports:
ens33
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens34
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens34
#还可以用teamnl命令来查看组接口的端口等信息:
[root@localhost network-scripts]# teamnl team0 ports #查看team0运行的端口
3: ens33: up 1000Mbit FD
4: ens34: up 1000Mbit FD
[root@localhost network-scripts]# teamnl team0 getoption activeport #查看team0当前活动的端口
4
#到此绑定网卡的备份模式完成------------------------------------------end
5、配置使用broadcast模式,轮询模式:
[root@localhost network-scripts]# nmcli connection modify team0 config '{"runner":{"name":"broadcast"}}'
[root@localhost network-scripts]# nmcli con up team0
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/14)
[root@localhost network-scripts]# teamdctl team0 state
setup:
runner: broadcast
ports:
ens33
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens34
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
[root@localhost network-scripts]# teamnl team0 ports
3: ens33: up 1000Mbit FD
4: ens34: up 1000Mbit FD
[root@localhost ~]# nmcli dev dis ens33 #断开一个设备,连接正常
成功断开设备 'ens33'。
[root@localhost ~]# teamdctl team0 state
setup:
runner: broadcast
ports:
ens34
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.1.200 的回复: 字节=32 时间<1ms TTL=64