Linux的nmcli工具及网络组的实现
nmcli工具
nmcli是用于控制NetworkManager和获取其状态的命令行工具。
它可用于替换NM小程序或其他图形客户端。
nmcli用于创建、显示、编辑、删除、激活、和停用网络连接,以及控制和显示网络设备工作状态
格式: nmcli [OPTIONS...] {help | general | networking | radio | connection | device | agent | monitor}
[COMMAND] [ARGUMENTS... ]
常用选项:
-t:输出简明扼要
-p:分页显示,与-t大同小异
-c {yes|no|auto}:是否支持添加颜色显示
nmcli的子命令:可使用TAB键查看并补全
device:查看和管理网络接口
nmcli device [option]
device的子命令 | 功能 |
---|---|
help | 查看帮助信息 |
status [ifname] | 设备状态信息 |
set [ifname] | 设置,[autoconnect yes 或no],相当于网卡配置文件中ONBOOT项 |
connect [ifname] | 自动获取地址并连接 |
disconnect [ifname] | 将指定网卡断开网络连接 |
delete [ifname] | 删除 |
modify [ifname ] | 修改网卡属性,这个子命令很强大,可修改很多网卡属性 |
这些是常用的,使用TAB键可看到很多
例:
nmcli device status DEVICE :查看网卡状态
nmcli device modify eth0 connection.id eth100 :将网卡名字改为eth100,修改的仅是配置文件中NAME指向的名字,而不是DEVICE指向的名字
nmcli device modify eth0 ipv4.addresses 192.168.1.1 :修改eth0的IP地址
nmcli device modify eth0 ipv4.method manual|auto :修改网卡为静态或自动获取,manual为静态,auto为自动
nmcli device modify eth0 ipv4.gateway 192.168.0.1 :修改eth0的网关
nmcli device connect eth0 :自动获取一个地址连接
nmcli device disconnect eth0 :断开此网卡的连接
nmcli device set eth0 autoconnect yes :开机加载此设备,配置文件中ONBOOT项
nmcli device delete eth1 :删除此设备
connection:启动或关闭网卡等
格式:
nmcli connection [option]
connection的子命令 | 作用 |
---|---|
up ifname | 启动网卡 |
down ifname | 关闭网卡 |
add | 添加IP地址。网关。之类的 |
clone [ifname] | 克隆网卡配置,会生成配置文件,IP地址相同,需修改 |
edit [id | uuid |
delete [ifname] | 删除网卡,会删除其配置文件 |
reload [ifname ] | 重新加载网络服务 |
例:
nmcli connection up eth1 :启动网卡
nmcli connection down eth1 :关闭网卡
nmcli connection clone eth1 eth1:1 :克隆eth1,同时生成eth1:1的配置文件
nmcli connection reload :重新加载网络服务
nmcli connection delete eth1 :删除
general:常规设定
格式:
nmcli general [option]
general的子命令 | 说明 |
---|---|
hostname | 获取或永久修改系统主机名,不加参数显示当前主机名 |
permissions | 显示已经过NetworkManager验证操作的权限 |
logging | 获取或更改NetworkManager的日志级别和域,不带任何参数显示当前日志级别和域 |
status | 显示NetworkManager的总体状态 |
例:
nmcli general hostname :显示当前主机名
nmcli general logging :显示当前日志级别和域
nmcli general permissions :显示已经过验证操作的授权
nmcli general status :显示状态
radio:查看无线网状态
格式:nmcli redio [option ]
参数:
all:获取所有的状态
wifi :获取wifi的状态
wwan:获取无线广域网状态
networking:管理网络状态
格式:nmcli networking [option]
参数:
on:启动网络
off:关闭网络
connectivity:连接状态
以上只是部分介绍!!!内容太多,还请谅解!
网络组的实现(network team)
网络组:将多个网卡聚合在一起的方法,实现容错和提高吞吐量,提供更高的性能和扩展性
直接给两块网卡设置同一IP地址是不可以的,通过网络组,虚拟一块网卡对外提供连接,物理网卡的MAC地址被修改为相同的MAC地址,指向网络组接口的MAC
多种方式(runner):
broadcast
roundrobin
activebackup
loadbalance
lacp
启动网络组接口不会自动启动网络组中的port接口
启动网络组接口中的port接口总会自动启动网络组接口
禁用网络组接口会自定禁用网络组中的port接口
没有port接口的网络组接口可以启动静态IP链接
启用DHCP连接时,没有port接口的网络组会等待port接口的加入
创建网络组接口的格式:
nmcli con add type team con-name CNAME ifname INAME config JSON ipv4.addr IP/NET
CNAME:连接名
INAME:接口名
JSON:指定runner方式 mode
JSON格式:'{"runner":{"name":"activebackuo"}}'
示例:
如适用虚拟机做实验,准备两个虚拟网卡,使用相同网段
做实验之前建议将原 eth{0|1} 或 ens{33|37} 接口的配置文件移动至某目录,以下命令会自动生成新的配置文件
实验完成后删掉新生成的文件,将原 eth{0|1} 或 ens{33|37} 接口配置文件还原,重启服务就又回到了最初状态。
创建网络组接口
nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
为team0修改为手动获取IP
nmcli con modif ipv4.method manual
为team0添加IP地址
nmcli con modify team0 ipv4.address 192.168.0.100/24
添加从属接口
nmcli con addd con-name team0-eth0 type team-slave ifname eth0 master team0
nmcli con addd con-name team0-eth1 type team-slave ifname eth1 master team0
team-slave:表示本网卡将附属于team0,不再是独立工作
master:表示本网卡的主接口指向谁
启动
nmcli con up team0
nmcli con up team0-eth0
nmcli con up team0-eth1
使用ping命令查看
查看状态:
teamdctl team state
使用ifconfig team0-eth0 down 或 ifconfig team1-eth0 down,断掉一个网卡接口,测试网络是否还通!
删除接口
nmcli device dis eth0
努力!奋斗!