RHEL7以后,网络方面变化比较大,其原因是网络服务全部都由NetworkManager管理了,而在6版本里一般都是关闭NetworkManager,主要还是因为不够成熟。下面说明下在rhel7和centos7使用nmcli命令管理配置网络的方法。

rhel7使用ip link代替ifconfig命令,使用teamd处理双网卡聚合,使用nmcli命令行配置网络。

nmcli创建的网络连接是任意的,类型多样包含bond、bridge、vlan、wifi、bluetooth、ethernet、***等等,名字可以任意取。设备和连接是一对多的关系,但每个设备同一时间只能对应一个启动的连接。


nmcli的一般用法:

nmcli dev status   //查看系统现有网络设备的连接状态
nmcli conn show     //查看已有连接
nmcli conn delete UUID1 UUID2 UUID3  //删除不需要的连接
nmcli dev connect eno16777736     //连接设备eno16777736,该操作类似于接上网卡网线
nmcli dev disconnect eno16777736   //断开设备eno16777736,类似于拔掉网线

nmcli conn down eno16777736  //关闭连接eno16777736

nmcli conn up eno16777736  //打开连接eno16777736 

nmcli dev show   //查看设备详细信息


创建、命名连接,并做基本配置

nmcli conn add type ethernet con-name ens160 ifname ens160
//创建新连接con-name是ens160,也可以根据个人习惯改为eth0.
nmcli conn mod ens160 ipv4.method manual   //配置IP地址获取方式为手动
nmcli conn mod ens160 ipv4.addresses "10.x.x.x/24" //配置IP和掩码
nmcli conn mod ens160 ipv4.gateway "10.x.x.254"   //配置网关
nmcli conn mod ens160 ipv4.dns "x.x.x.x"   //配置dns
nmcli conn mod ens160 connection.autoconnect yes  //配置开机自动启动
nmcli conn up ens160 //启动网卡

配置网卡bond

1. 创建主接口

nmcli con add type bond con-name bond0 ifname bond0 mode active-backup

2. 给主接口分配ip地址

nmcli con mod bond0  ipv4.addresses '11.16.25.100/24'

nmcli con mod bond0  ipv4.method manual

nmcli con mod bond0 connection.autoconnect yes


3. 创建从接口

nmcli con add type bond-slave ifname eno1 master bond0

nmcli con add type bond-slave ifname eno2 master bond0


4. 开启主接口和从接口

nmcli con up bond-slave-eno2

nmcli con up bond-slave-eno1

nmcli con up bond0


网卡teaming配置

#nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'

#nmcli con mod team0 ipv4.addresses '192.168.0.100/24'

#nmcli con mod team0 ipv4.method manual

#nmcli con add type team-slave con-name team0-port1 ifname eno1 master team0

#nmcli con add type team-slave con-name team0-port2 ifname eno2 master team0

#teamdctl team0 state(查看状态)


linux网卡聚合一般有以下几种模式

  • broadcast 传输来自所有端口的包

  • roundrobin 以轮循的方式传输所有端口的包

  • activebakup 这是一个故障迁移程序,监控链接更改并选择活动的端口进行传输

  • loadbalance 监控流量并使用哈希函数以尝试在选择传输端口的时候达到完美均衡

  • lacp 实施802.3ad 链路聚合协议,可以使用与 loadbalance 运行程序相同的传输端口

如果聚合采用的是lacp模式,网络中使用PXE装机会出现问题,因为PXE只会初始化一块网卡去DHCP申请地址,在这个过程中去修改交换机配置显然是不合适的,只能选择动态聚合。注意lacp模式需要接入交换机支持。