nmcli device and nmcli connection
NetworkManager是RHEL 7之后推出的有效管理网络的服务
NetworkManager通过工具nmcli(Network Manager Command Line Interface)来管理网卡
网卡属于物理硬件,NetworkManager属于软件层面,如何通过软件层面给网卡绑定ip地址等信息?中间有一个核心:kernel。Linux 应用层app通过kernel来驱使底层物理硬件运行,同时必须要明确一点:软件应用没办法改变物理底层信息。如同我们给eth0配置ip地址为192.168.1.1。实质上并不是用刀在eth0网卡上刻上192.168.1.1,实际上是kernel获取eth0网卡总线,同时将该总线命名(方便人为区分),然后NetworkManager告诉kernel 00:00.0(假设eth0)的ip地址是192.168.1.1/24,那么以后访问192.168.1.1就是在访问00:00.0,kernel在中间做了一次转换或者说是绑定


00:00.0就是总线

nmcli有八个参数,这里简单记录device、 connection参数
一、nmcli device来获取底层信息

<nmcli device> tab两下可以获取device后面的参数。device获取网卡底层信息

第一列: DEVICE 表示网卡的名称(kernel获取的标识)
第二列: TYPE 表示网卡的类型
第三列: STATE 表示网卡与配置文件的连接状态(connected 表示NetworkManager接管, disconnected 表示为使用NetworkManager管理,unmanaged表示不使用NetworkManager管理 。。。。)
第四列: CONNECTION 网卡对应的配置文件名称(配置文件名可以通过nmcli connection modify uuid xxxxxxxxx con-name xxx来修改配置文件名)

这里演示的就是将网卡enp0s8的配置文件由nmcli device status 看到的Wired connection 1 名称修改成eth8(网卡的配置文件通过nmcli connection来修改)
nmcli connection show可以看到各个配置文件对应的唯一识别uuid,nmcli connection show 对应NAME是配置文件名,后面的DEVICE是配置文件对应的网卡名称,配置文件名NAME是可以修改的,而DEVICE是kernel标识的,但是也可以通过其他手段来修改
show参数可以获取网卡的所有信息:

show后面加上DEVICE名称,则显示该网卡的所有信息,因为网卡enp0s3没有配置任何信息,所以显示的相对少
show后面如何不加任何参数,则nmcli会显示所有的网卡的信息

因为网卡ens160配置了配置文件,可以看到DEVICE网卡名ens160,TYPE使用的网络类型为ethernet, HWADDR硬件地址00:0C:29:05:D6:33,还有MTU、STATE(连接状态,connected)、CONNECTION ens160,这与nmcli device status看到的基本一致,接下来的IP4.ADDRESS、IP4.GATEWAY等等都是写到配置文件中的内容
delete删除网卡
这里删除的是虚拟网卡,物理网卡是无法删除的,不可能说nmcli device delete enp0s3就会物理的将网卡在计算机上拿走了
disconnect 断开网卡与配置文件之间的连接

connect 连接网卡与配置文件关系

到这里device简单几个参数说明完了,device操作的是网卡,底层网卡的一些简单操作,比如网卡的显示status,网卡的信息show,网卡与文件的连接(connect)断开(disconnect)
二、nmcli connection用来配置配置文件,主要用来针对配置文件信息

主要有add添加配置文件、delete删除配置文件、load加载、reload重新加载配置文件、show显示配置文件、down关闭、modify修改、up激活
nmcli connection show 可以显示配置文件概述信息

第一列:NAME 配置文件的名称(可以重复)
第二列:UUID 唯一识别
第三列:TYPE 网络类型
第四列:DEVICE 网卡名称(这里与nmcli device保持一致)
add 添加配置文件(注意网卡只有一个配置文件是活动的,但是可以存在多个配置文件,可以通过connection.autoconnect-priority 设置配置文件的优先级)
add后面必须跟的三个参数:con-name(配置文件的名称)、ifname(网卡的名称)、type(网卡类型一般是ethernet),add还可以跟很多参数,比如:
ipv4.address ipv4.gateway ipv4.dns ipv4.method(设置自动连接还是手动连接auto manual等等) connection-autoconnect(开机是否自动连接)。。。。。

如果在add添加配置文件时没有ipv4.method 则Linux会自动获取ip地址,即dhcp。connection.autoconnect 为开机是否自动连接


delete 删除配置文件

无论是delete还是connection后紧跟什么参数,都可以通过name,uuid来删除修改
down不同于delete,delete是将配置文件删除,而down是将配置与网卡的连接断开,与nmcli device disconnect 效果相同

modify 修改配置文件信息

这里之所以没有修改是因为我们修改的是硬盘配置文件,加载在内存中enp0s3-1配置文件的地址还是192.168.1.12,所以我们需要将修改后的硬盘配置文件enp0s3-1加载到内存中

有时候up无法改变网卡地址,这时候我们需要reload重新连接启动,重新加载到内存中
connection.id 网卡配置文件的文件名,也可以使用con-name来修改
connection.autoconnect 设置网卡是否开机自动启动
connection.autoconnect-priority 设置网卡优先级(因为一个网卡可以使用多个配置文件,但是一个网卡只能有一个活动的配置文件)
ipv4.addresses 修改网卡配置文件的ipv4地址
ipv4.dns dns的地址
ipv4.gateway 网关地址
这里connection.id 与con-name的效果一样,uuid唯一识别网卡配置文件
只要nmcli connection show xxx(配置文件)能看到的参数都可以通过modify来修改
总结一下connection : add 添加配置文件 delete 删除配置文件 show 概述网卡配置文件 clone 克隆 (up down reload ); 同时nmcli connection add添加的配置文件默认存放目录是/etc/sysconfig/network-scripts/目录下。
END
浙公网安备 33010602011771号