目录

11.5 网络配置文件

网络配置文件

/images/linux_mt/linux_mt.jpg

本节我们来学习如何通过修改配置文件来更改网络属。RHEL系的网络配置文件主要包括两个部分:

  1. IP/NETMASK/GW/DNS等属性的配置文件,位于 /etc/sysconfig/network-scripts/ifcfg-IFACE
  2. 路由的相关配置文件,位于 /etc/sysconfig/network-scripts/route-IFACE

更改配置后需要重启网络服务以重载配置文件才能让配置的网络属性生效,因此我们会简单的说一说网络服务的管理。Linxu 的服务管理我们会在后面的章节详细介绍。本章将包括以下内容:

  1. 配置文件的修改
  2. ifcfg-IFACE 配置参数
  3. route-IFACE 配置参数
  4. Centos 网络服务的管理
  5. 给网络接口配置多个地址
  6. 网卡名称修改

1. 网络配置的修改

所有的配置文件都是文本文件,可通过vim 直接修改,Centos 也提供了专用的修改命令

  • CentOS 6:system-config-network-tuisetup
  • CentOS 7: nmtui

2. ifcfg-IFACE

ifcfg-IFACE 常用配置参数

  • DEVICE:此配置文件对应的设备的名称;
  • HWADDR:设备的MAC地址;
  • UUID:此设备的惟一标识;
  • ONBOOT:在系统引导过程中,是否激活此接口;
  • BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
  • TYPE:接口类型,常见的有Ethernet, Bridge;
  • IPADDR: IP地址;
  • NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
  • GATEWAY:默认网关;
  • DNS1:第一DNS服务器指向;
  • DNS2:备用DNS服务器指向;
  • DOMAIN:DNS搜索域;
  • IPV6INIT:是否初始化IPv6;
  • IPV4_FAILURE_FATAL: 如果 IPV4 不可用是否关闭此网络接口
  • USERCTL:是否允许普通用户控制此设备;
  • NM_CONTROLLED:是否使用NetworkManager服务来控制接口;Centos6 上建议为 no
  • PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# ifcfg-IFACE 配置示例
ESSID="CLOUD3_5G"
NAME=CLOUD3_5G
HWADDR=00:28:F8:35:06:EC
UUID=816cdc8b-e62f-4bdb-9ca8-be2545a5a7e6
ONBOOT=yes
BOOTPROTO=dhcp
MODE=Managed
KEY_MGMT=WPA-PSK
TYPE=Wireless
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_ADDR_GEN_MODE=stable-privacy
SECURITYMODE=open
MAC_ADDRESS_RANDOMIZATION=default
PEERDNS=yes
PEERROUTES=yes

3. route-IFACE

route-FACE 支持两种配置方式,但不可混用

方式一: 每行一个路由条目

1
2
TARGET  via  GW
192.168.1.101 via 172.168.2.1

方式一: 每三行一个路由条目

1
2
3
4
5
6
7
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP

ADDRESS0=192.168.4.0
NETMASK0=255.255.255.0
GATEWAY0=172.16.1.1

4. 网络服务管理

Centos6 上网络管理的服务有两个 network,NetworkManager,但 NetworkManger 仍处于实验阶段,功能还不完善,比如创建集群或桥接接口 NetworkManger 都不支持。建议在 Centos6 中关闭 NetworkManager 只使用 network;即

  1. 将 ifcfg-IFACE 配置文件中的 NM_CONTROL 设置为 No
  2. 把 NetworkManager 服务禁止掉

Centos7 中 NetworkManager 已经很完善,并且已经是网络管理的默认服务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
systemctl status network
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: active (exited) since 三 2018-08-01 10:21:35 CST; 6min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 12814 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS)
  Process: 13126 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)

systemctl status NetworkManager
 ● NetworkManager.service - Network Manager
    Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
    Active: active (running) since 三 2018-08-01 08:45:21 CST; 1h 43min ago
      Docs: man:NetworkManager(8)
  Main PID: 1199 (NetworkManager)
    CGroup: /system.slice/NetworkManager.service
            ├─1199 /usr/sbin/NetworkManager --no-daemon

4.1 管理网络服务

Centos 6,7服务的启动和管理完全并相同,我们会在后面操作系统的启动流程以及服务管理详细讲解,现在大家只要知道可以使用以下这些命令即可:

  • Centos6:
    1. service SERVICE {start|stop|restart|status}
    2. /etc/rc.d/init.d/network {start|stop|restart|status}
  • CentOS 7:
    1. systemctl {start|stop|restart|status} SERVICE[.service]

网络配置文件修改之后,如果要生效,需要重启网络服务

  • CentOS 6:service network restart
  • CentOS 7:systemctl restart NetworkManager.service

5. 给网卡配置多个地址

给网卡配置多个地址有多种方式:

  1. ip addr add ip dev IFACE label label_name
  2. ifconfig IFACE_LABEL IPADDR/NETMASK
  • IFACE_LABEL: 地址别名,eth0:0, eth0:1, …
  • eg: ifconfig ens33:1 192.168.1.117/24 up
  1. 为别名添加配置文件;
  • cp ifcfg-eth0 ifcfg-eth0:0,然后修改 ifcfg-eth0:0
1
2
3
4
> vim /etc/sysconfig/network-script/ifcfg-eth0:0
DEVICE=eth0:0      # DEVICE 修改为地址别名
BOOTPROTO=None     # 网上别名不支持动态获取地址;只能使用 static, none
删除 HWADDR,UUID

6. 网络接口名称修改

udev 程序是 Linux 识别各种设备的辅助程序,因此通过修改其配置文件可以修改网络接口的名称。

1
2
3
4
5
6
# Centos6 修改过程
vim /etc/udev/rules.d/70-persistent-ipoib.rules # 更改网络接口名称
modprobe -r e1000    # 卸载网卡驱动
modprobe e1000       # 装载网卡驱动,会重新读取 70-persistent-ipoib.rules 配置文件

# Centos7 由于网卡命名规则变化,所以 Centos6 的规则不适用