nmcli工具用法

nmcli工具简介

# nmcli 工具是 NetworkManager 服务工具包中的一个,只有在该服务正常运行时才有效。

# rhel7、rhel8系列
    网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg-eth0

# rhel9系列
    网卡配置文件路径:/etc/NetworkManager/system-connections/ens18.nmconnection

# 非常规操作
    #删除一个网卡配置文件(立即删除并应用生效并,切记小心失联哦)
    nmcli con delete con-name ens18
    #重新生成网卡文件(建议后面追加上 ipv4.method disabled  防止dhcp断网)
    nmcli con add con-name ens18 ifname ens18 type ethernet

## nmcli常用参数介绍
    # 禁用网卡防止被激活
    nmcli d disconnect ens19

nmcli在rocky9上创建bond0(mode=0)(附、剔除成员网卡)

# 我们发现当前ens18 和 ens19 都有各自的 CONNECTION (这在创建bond时不满足需求的,曲线办法是把网卡文件移走)
    [root@localhost system-connections]# nmcli de
    DEVICE  TYPE      STATE                   CONNECTION 
    ens18   ethernet  connected               ens18      
    ens19   ethernet  connected               ens19      
    lo      loopback  connected (externally)  lo 

    [root@localhost ~]# nmcli  con show
    NAME   UUID                                  TYPE      DEVICE 
    ens18  a5a1a6a7-e145-4009-9629-a879c9746717  ethernet  ens18  
    ens19  fd47fb77-f56c-49b0-8743-17ccf6aefbae  ethernet  ens19  
    lo     2d66543b-5d23-4ab6-ac9a-5410361aa3e5  loopback  lo

# 第一步、(备份)移走ens18 ens19 原本的网卡文件(在实际场景中,该步骤非常关键,PS:若是不这样做 也可以后面手动删除 原本 ens18 和 ens19的配置文件,注意是删原本的不是删新生成的ens18 文件)
    mv /etc/NetworkManager/system-connections/* /root/

# 第二步、创建类型为bond,连接名称为bond0,配置文件名为bond0,模式为balance-rr的网卡
    nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=0"

# 第三步、bond0添加ens18 ens19两个口(注意:建议是 con-name 使用其他名字 如bond0-port1 这样,避免后期在踢出 成员接口时把 原本的ens18 网卡文件删除)
    nmcli con add type ethernet slave-type bond con-name ens18 ifname ens18 master bond0
    nmcli con add type ethernet slave-type bond con-name ens19 ifname ens19 master bond0
    nmcli con up bond0
    # 附、剔除成员网卡
    # nmcli con delete ens18    # 删除绑定网卡(该命令会把ens18的配置文件删除,并立即应用,所以 需要重新生成ens18配置文件 nmcli con add con-name ens18 ifname ens18 type ethernet)

# 第四步、为bond配置静态ipv4
    # nmcli con modify bond0 ipv4.method auto
    nmcli con modify bond0 ipv4.addresses 192.168.60.165/24 ipv4.gateway 192.168.60.254 ipv4.dns 8.8.8.8,8.8.4.4
    nmcli con modify bond0 ipv4.method manual
    nmcli con reload
    nmcli con down bond0 ; nmcli con up bond0

# 第五步、查验
    cat /proc/net/bonding/bond0    # 查看bond0的类型
    [root@localhost ~]# nmcli con s
    NAME   UUID                                  TYPE      DEVICE 
    bond0  599fd701-2e47-46ab-9d50-5a562427c318  bond      bond0  
    lo     2d66543b-5d23-4ab6-ac9a-5410361aa3e5  loopback  lo     
    ens18  ec938906-7018-4cd1-bf88-3fd91afefd5f  ethernet  ens18  
    ens19  fd436dde-21be-4932-a8f9-4665fa6dedcd  ethernet  ens19  

    [root@localhost ~]# nmcli de
    DEVICE  TYPE      STATE                   CONNECTION 
    bond0   bond      connected               bond0      
    lo      loopback  connected (externally)  lo         
    ens18   ethernet  connected               ens18      
    ens19   ethernet  connected               ens19

# 附、该步骤生成的配置文件如下
[root@localhost system-connections]# cat bond0.nmconnection 
[connection]
id=bond0
uuid=599fd701-2e47-46ab-9d50-5a562427c318
type=bond
interface-name=bond0
timestamp=1726908978

[bond]
mode=balance-rr

[ipv4]
address1=192.168.60.165/24,192.168.60.254
dns=8.8.8.8;8.8.4.4;
method=manual

[ipv6]
addr-gen-mode=default
method=auto

[proxy]
[root@localhost system-connections]# cat ens18-ec938906-7018-4cd1-bf88-3fd91afefd5f.nmconnection 
[connection]
id=ens18
uuid=ec938906-7018-4cd1-bf88-3fd91afefd5f
type=ethernet
interface-name=ens18
master=bond0
slave-type=bond

[ethernet]

[bond-port]
[root@localhost system-connections]# cat ens19-fd436dde-21be-4932-a8f9-4665fa6dedcd.nmconnection 
[connection]
id=ens19
uuid=fd436dde-21be-4932-a8f9-4665fa6dedcd
type=ethernet
interface-name=ens19
master=bond0
slave-type=bond

[ethernet]

[bond-port]

nmcli在rocky9上将 mode=0 的 bond0网卡 模式 改成mode=1 或者 mode=4

# 第一、先查验是否是mode=0 即rr模式
    cat /proc/net/bonding/bond0    # 查看bond0的类型

# 第二、修改模式、重载配置、并让配置生效
    nmcli con modify bond0 bond.options "mode=1"
    nmcli con reload
    nmcli con down bond0 ; nmcli con up bond0

# 附、将bond0的模式改成mode=4(生效情况 待验证)
    nmcli con modify bond0 bond.options "mode=4,miimon=100,lacp_rate=fast,xmit_hash_policy=layer2+3"
    nmcli con reload
    nmcli con down bond0 ; nmcli con up bond0

nmcli在rocky9上创建bridge网卡vmbr0(附、将新网卡ens19 加入vmbr0)

# 第一、创建vmbr0
    nmcli con add type bridge con-name vmbr0 ifname vmbr0

# 第二、将ens18 加入vmbr0
    nmcli con add type ethernet slave-type bridge con-name ens18 ifname ens18 master vmbr0
    nmcli con up vmbr0

# 第三、为vmbr0设置ip,请启动
    nmcli con modify vmbr0 ipv4.addresses 192.168.60.164/24 ipv4.gateway 192.168.60.254 ipv4.dns 8.8.8.8,8.8.4.4
    nmcli con modify vmbr0 ipv4.method manual
    nmcli con reload
    nmcli con down vmbr0 ; nmcli con up vmbr0

# 第四、配置vmbr0生成树协议(STP)优先级设为 16384(默认启用 STP )(该项目是可选项)
    #nmcli connection modify vmbr0 bridge.priority '16384'

# 附、当您激活连接的任何端口时,NetworkManager 也会激活网桥,但不会激活它的其它端口。您可以配置 Red Hat Enterprise Linux 在启用桥接时自动启用所有端口
    # 启用网桥连接的 connection.autoconnect-slaves 参数
    #nmcli con modify vmbr0 connection.autoconnect-slaves 1
    # 重新激活桥接
    #nmcli con up vmbr0

# 附、将ens19网卡 加入 vmbr0(上面已经创建vmbr0,且有ens18成员了)
    nmcli con modify ens19 master vmbr0
    nmcli con down ens19 ; nmcli con up ens19

# 附、vmbr0相关的网卡配置文件
[root@localhost system-connections]# cat vmbr0.nmconnection 
[connection]
id=vmbr0
uuid=b270dc48-2908-424b-bcb9-e5d26af758c8
type=bridge
interface-name=vmbr0

[ethernet]

[bridge]

[ipv4]
address1=192.168.60.164/24,192.168.60.254
dns=8.8.8.8;8.8.4.4;
method=manual

[ipv6]
addr-gen-mode=default
method=auto

[proxy]
[root@localhost system-connections]# cat ens18.nmconnection 
[connection]
id=ens18
uuid=f2d75d77-3e30-45e9-abec-904536bcc9d8
type=ethernet
interface-name=ens18
master=vmbr0
slave-type=bridge

[ethernet]

[bridge-port]

nmcli 创建 vlan网卡(附、如何删除vlan接口网卡)

# 第一、创建vlan子接口(注意:vlan id的合法范围是 0~4094)
    # 创建一个名称是vlan10,其父接口是ens20,vlan号为10的 网络接口
    nmcli con add type vlan con-name vlan10 ifname vlan10 vlan.parent enp1s0 vlan.id 10
    # nmcli con add type vlan con-name vlan10 ifname vlan10 dev ens20 id 10    与上面命令等价

# 第二、配置IP
    nmcli con modify vlan10 ipv4.addresses 192.168.10.10/24 ipv4.dns 8.8.8.8 ipv4.gateway 192.168.10.1 
    nmcli con modify vlan10 ipv4.method manual
    nmcli con up vlan10

# 第三、核验
[root@localhost ]# ls -lh /proc/net/vlan/
total 0
-rw------- 1 root root 0 Sep 22 03:27 config
-rw------- 1 root root 0 Sep 22 03:27 vlan10
[root@localhost ]# cat /proc/net/vlan/config 
VLAN Dev name    | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
vlan10         | 10  | ens20

# 附、如何删除vlan接口网卡
    nmcli con down vlan10   # 命令一敲,ip a 就看不到该网卡了
    nmcli con del vlan10

# 附、vlan10网卡配置文件
[root@localhost system-connections]# cat vlan10.nmconnection 
[connection]
id=vlan10
uuid=7ba366e0-da8b-4376-97ad-1173f7b4ee7a
type=vlan
interface-name=vlan10

[ethernet]

[vlan]
flags=1
id=10
parent=ens20

[ipv4]
address1=192.168.10.10/24,192.168.10.1
dns=8.8.8.8;
method=manual

[ipv6]
addr-gen-mode=default
method=auto

[proxy]
[root@localhost system-connections]# cat ens20.nmconnection 
[connection]
id=ens20
uuid=ea5b58ee-6899-4663-9af5-56517e175417
type=ethernet
interface-name=ens20

[ethernet]

[ipv4]
method=disabled

[ipv6]
addr-gen-mode=default
method=auto

[proxy]
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/1403.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2024/9/23作者: 辣条①号

目标:网络规划设计师、系统工程师、ceph存储工程师、云计算工程师。 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录