NetworkManager一些相关知识
NetworkManager和network.service都是用来管理网络的工具。在CentOS 7版本中,NetworkManager和network.service默认安装时是共存的,但习惯使然我们一般都是禁用掉NetworkManager而仍然使用配置文件+network.service的方式来配置和管理主机上的网络。
RHEL 8/CentOS 8版本开始network.service默认没有安装,默认只使用NetworkManager作为网络管理工具。而且RedHat官方指出在后续的版本中会彻底不支持network.service,这样一来除了NetworkManager我们也没有选择余地。既然无力反抗,那么就要学会享受。
其实NetworkManager也有优点,比如使用方式多样化:命令行、文本界面、图形界面、web portal均可支持。nmcli命令行支持tab补齐,使用感受类似配置交换机;nmtui工具可以在shell终端开启文本图形界面。而且Linux主流知发行版,RedHat系、Suse系、Debian/Ubuntu系均支持NetworkManager。
NetworkManager有2个基本的概念:连接(Connection)和设备(Device)。
•Device是操作系统层面能够识别到的网卡设备,如本地回环lo、本地网卡eth0(nmcli d命令可以查看到)。
•Connection可以认为是Device对应的配置文件,也就是说一个Device可以对应多个Connection。同一时间只有一个Connection是处于激活状态的(nmcli c命令输出结果中绿色的行)。
使用NetworkManager配置bond 0
假设机器上目前有2个物理网卡ens33/ens36
# nmcli con add type bond ifname bond0 con-name bond0 mode balance-rr
# nmcli con add type bond-slave ifname ens33 master bond0
# nmcli con add type bond-slave ifname ens36 master bond0
# nmcli con modify bond0 ipv4.address 192.168.1.100/24 ipv4.gateway 192.168.1.254 ipv4.dns 114.114.114.114 ipv4.method manual ipv6.method ignore
使用NetworkManager配置vlan
在bond网卡的基础之上配置vlan连接
# nmcli con add type bond ifname bond0 con-name bond0 mode balance-rr ipv4.method disabled ipv6.method ignore
# nmcli con add type bond-slave ifname ens33 master bond0
# nmcli con add type bond-slave ifname ens36 master bond0
# nmcli con add type vlan con-name bond0.101 ifname bond0.101 dev bond0 id 101 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.254 ipv4.dns 114.114.114.114 ipv4.method disabled ipv6.method ignore
使用NetworkManager配置单网卡多IP
先正常配置一个Connection:
# nmcli con add type ethernet ifname ens33 con-name ens33 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.254 ipv4.method disabled ipv6.method ignore
再按如下格式修改/etc/sysconfig/network-scripts/中的配置文件,然后nmcli con up ens33-1一下使之生效。cat /proc/net/bond和/proc/net/vlan中的内容以确定配置是否生效。
查的当前计算机网卡状态
nmcli connection show
====================================================================
NAME UUID TYPE DEVICE
enp2s0f0 149f58aa-9e9d-4c94-b2b5-49c53b2b442e ethernet enp2s0f0
enp2s0f0 6887c1b9-0c31-43b8-ac4c-f84ca7f1db44 ethernet enp2s0f1
====================================================================
例:这台计算机的两块网卡分别为:enp2s0f0 、enp2s0f1
nmcli connection modify bond0 connection.autoconnect yes
注:此处以loadbalance模式为例,需要其他模式可修改“loadbalance”为其他,可选:
broadcast、activebackup、roundrobin、loadbalance、lacp(各选项的说明见文后)
重新加载网络配置
nmcli connection reload
systemctl restart network
重新查看网络状态
nmcli connection show
====================================================================
NAME UUID TYPE DEVICE
team0 74ef7a4b-1736-4f16-a4ed10:40 2024-07-26-7b4dbac1881a team team0
team0-port1 149f58aa-9e9d-4c94-b2b5-49c53b2b442e ethernet enp2s0f0
team0-port2 6887c1b9-0c31-43b8-ac4c-f84ca7f1db44 ethernet enp2s0f1
====================================================================
注:如看到网络端口没启来(DEVICE列为空),可采用以下命令激活
nmcli device status
nmcli connection up bond0
nmcli connection up bond-slave-ens192
nmcli connection up bond-slave-ens256
ethtool bond0