1、NetworkManager简介

在 Red Hat Enterprise Linux 7 中,NetworkManager 提供的默认联网服务是一个动态网络控制和配置守护

进程,它尝试在其可用时保持网络设备和连接处于活动状态。仍支持传统 ifcfg 类型配置文件。

 

  • nmcli:NetworkManager的命令行工具(CLI)
  • nmtui:NetworkManager的文本用户界面工具(TUI)

 

 

安装NetworkManager:

#yum  install   NetworkManager

 

查看NetworkManager守护进程状态:

#systemctl status  NetworkManager

 

设置开机启动NetworkManager服务:

#systemctl enable  NetworkManager

 

 

2、使用文本用户界面(nmtui)进行网络配置

#nmtui  

NetworkDaemon 服务启动失败 启动networkmanager_固件

从上面看出 可以配置IP地址、主机名。

建议使用这种方法配置主机名很方便。

 

 

3、使用sysconfig文件进行网络配置

网卡接口的具体信息保存在/etc/sysconfig/network-scripts/ 目录下的ifcfg文件中。

[root@test network-scripts]# cat ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="e51a1d1e-fe3b-4360-b916-d005fa98fa7d"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.110.168
NETMASK=255.255.255.0
GATEWAY=192.168.110.2
DNS1=114.114.114.114

 

在RHEL7中编辑ifcfg文件时,networkmanager不会自动意识到更改,必须让networkmanager 重新读取该配置文件,使用

如下指令:

#nmcli   connection   reload

或者,

# systemctl restart network

 

官方文档中提到:

建议不要在ifcfg文件的同一位置保存其备份文件。网络脚本会运行ifcfg-*,扩展名.old、.orig、.rpmnew、.rpmorig和

.rmpsave除外。最好不要将备份文件保存在/etc/目录下。

 

 

ifup和ifdown指令

ifup   ensxx         //调用networkmanager 启动该接口连接
ifdown    ensxx    //调用networkmanager 终止该接口连接

 

4、使用nmcli命令行工具配置网络

 

nmcli指令与配置文件对应关系

NetworkDaemon 服务启动失败 启动networkmanager_IPV6_02

 

nmcli指令帮助信息:

#nmcli  help

#nmcli  general  help


4.1 查看网卡接口信息

#nmcli  device  status

NetworkDaemon 服务启动失败 启动networkmanager_固件_03

 

#nmcli  device  show  eno49

NetworkDaemon 服务启动失败 启动networkmanager_配置文件_04

 

 

4.2查看连接信息

#nmcli  conn show

NetworkDaemon 服务启动失败 启动networkmanager_固件_05

 

 

查看某个接口连接的详细信息:

#nmcli  conn show  eno49

NetworkDaemon 服务启动失败 启动networkmanager_IPV6_06

 

 

显示所有活动连接:

NetworkDaemon 服务启动失败 启动networkmanager_IPV6_07

 

 

4.3启动与停止接口

启动接口:

nmcli connection up eno49

nmcli device connect eno49

 

#停止接口

nmcli connection down  eno49  

nmcli device disconnect  eno49

 

建议使用nmcli   dev  connect/disconnect   enoxx指令,这样断开链接后,会将接口放到“手动”模式,接口不会被自动激活。

 

 

删除网络连接的配置文件:

nmcli  conn  delete  eno49

 

重新加载网络配置文件:

nmcli  conn  reload

 

 

 

4.4 修改网卡是不是开机自动启动(ONBOOT=yes/no)

nmcli  conn modify  eno49  connection.autoconnect  no/on

NetworkDaemon 服务启动失败 启动networkmanager_配置文件_08

 

 

4.5设置修改IP地址和DNS

给eno49添加一个IP(IPADDR)

# nmcli connection modify eth0 ipv4.addresses 192.168.0.58

 

给eno49添加一个子网掩码(NETMASK)

# nmcli connection modify eth0 ipv4.addresses 192.168.0.58/24

 

 

IP获取方式设置成手动(BOOTPROTO=static/none/dhcp)

# nmcli connection modify eth0 ipv4.method manual

 

 

添加DNS

# nmcli connection modify eth0 ipv4.dns 114.114.114.114

 

删除DNS

# nmcli connection modify eth0 -ipv4.dns 114.114.114.114

 

添加一个网关(GATEWAY)

 

# nmcli connection modify eth0 ipv4.gateway 192.168.0.2

 

或者:

nmcli connection modify eno49 ipv4.addresses  '192.168.10.10/24 '  ipv4.gateway '192.168.10.254'  ipv4.dns '8.8.8.8'  

 

 


6、RHEL7中一致网络设备命名【摘自官方文档】

在 Red Hat Enterprise Linux 7 中,udev 支持大量不同的命名方案。默认是根据固件、拓扑及位置信息分配

固定名称。这样做的优点是命名可完全自动进行,并可预期,即使添加或删除硬件后也会保留其名称(不会出

现重复枚举的情况),同时可顺利更换损坏的硬件。不足之处是,相比传统的名称,比如 eth0 或 wlan0,这

些名称有时会比较难理解。例如:enp5s0。

 

 

RHEL7中命名方案层级结构:

默认情况下,systemd 会使用以下策略,采用支持的命名方案为接口命名:

  • 方案 1:如果固件或 BIOS 信息适用且可用,则使用整合了为板载设备提供索引号的固件或 BIOS 的名称(例如:eno1),否则请使用方案 2。
  • 方案 2:如果固件或 BIOS 信息适用且可用,则使用整合了为 PCI 快速热插拔插槽提供索引号的固件或BIOS 名称(例如 ens1),否则请使用方案 3。
  • 方案 3:如果硬件连接器物理位置信息可用,则使用整合了该信息的名称(例如:enp2s0),否则请使用方案 5。
  • 方案 4: 默认不使用整合接口 MAC 地址的名称(例如:enx78e7d1ea46da),但用户可选择使用此方案。
  • 方案 5:传统的不可预测的内核命名方案,在其他方法均失败后使用(例如: eth0)。

 

这个策略(如上所述)是默认策略。如果该系统已启用 biosdevname,则会使用该方案。注:启用

biosdevname 需要添加 biosdevname=1 作为命令行参数(Dell 系统除外),此时只要安装

biosdevname,就会默认使用该方案。如果用户已添加 udev 规则,该规则会更高内核设备名称,则会优

先使用这些规则。

 

结合上述规则,从下面可以看出eno49/50是板载的网卡。ens1f0/ens1f1是PCI网卡,后面添加的。

NetworkDaemon 服务启动失败 启动networkmanager_配置文件_09