导航

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

posted on 2021-07-18 11:52    阅读(7080)  评论(0)    收藏  举报