文章目录
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]
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论