10.1 网络配置
CGSL 系统应用的绝大部分场景都是需要使用网络的,CGSL 系统提供了完善的网络支持,为用户提供所需的网络服务。本章主要介绍 CGSL 系统中网络相关配置。
10.1 网络配置
CGSL V5 开始,默认不再使用 eth0、eth1 等名字命令网卡设备,网卡名称遵循以下规律:
1、基于固件名称的板载网卡的命名,比如 eno1
2、基于 PCI 扩展插槽的热插拔网卡设备的命名,比如:ens1
3、基于总线号的命名,比如 enp2s0
4、基于 MAC 地址的命名,比如 enx78e7d1ea46da
5、其他设备,采用传统方式命名,比如 eth0
10.1.1 使用 NetworkManager 服务管理网络
启动 NetworkManager:
#systemctl start NetworkManager
使能 NetworkManager:
#systemctl enable NetworkManager
10.1.1.1 NetworkManager 服务特点
1、一个设备对应一个网络接口;
2、一整套关于某块设备的网络配置参数的集合称为一个连接件,一个设备可对应存在多个连接件;
3、连接件被激活后,对应的网络配置才生效;对于同一块设备,不能同时激活多个连接件;
4、每一个连接件必须拥有一个名称和一个唯一的 ID;
5、连接件对应的永久生效的配置文件保存在/etc/sysconfig/network-scripts/ifcfg-NAME,NAME 对应着相应的连接件名称,该文件在需要时可手动修改;
6、在命令提示窗口中,可使用 nmcli 或 nmtui 工具创建和编辑连接件。
10.1.1.2 使用 nmcli 工具管理配置网络
Nmcli 工具配置网络会使得命令非常长,所以 Nmcli 子命令和配置项名称均支持 tab 键自动补全。使用 Nmcli dev status 查看网卡设备信息,如图 10-1:
图 10-1 nmcli 命令查看网卡接口状态。
图中显示服务器一共有 3 块网卡,网卡类型均是 ethernet,连接状态。Ens33 这块网卡当前生效的连接件名称是 ens33,对应的配置文件名在/etc/sysconfig/network-scripts/ifcfg-ens33。当/etc/sysconfig/network-scripts/目录下没有找到对应的连接件名称时,系统对网卡分配的默认连接件,例如:“Wired Connection 1”和“Wired Connection 2”,表示使用 DHCP 获取 IP。
添加网络连接件:nmcli connection add 命令可用于添加一个连接件,指定的配置内容将写入到对应的 ifcfg 文件中。添加连接件时,不要使用已经存在的名称。以下命令将添加一个新的连接件,并且默认使用 DHCP 方式获取 IPv4 地址,新的配置文件将保存到/etc/sysconfig/network-scripts/ifcfg-ens_net5 中。
# nmcli connection add con-name ens33_net5 type Ethernet ifname ens33
或者在添加连接件时,使用以下命令配置指定 IP:
# nmcli connection add con-name ens33_net5 type Ethernet ifname ens33 \
> ip4 192.168.5.110/24 gw4 192.168.5.1
注:使用以上命令之后,需要使用 nmcli connection up nes33_net5 将其激活才能生效。
修改网络配置件内容:除了使用vi工具直接编辑配置对应 ifcfg 文件外,还可使用 nmcli 工具进行编辑和保存。执行 Nmcli connection show con-Name 命令,可以查看对应 connection 的详细参数,如下图 10-2,左边是配置参数项,右边是参数值。
图 10-2
找到要修改的参数项,比如修改 ens33_net5 这个 connection 的 IP 地址,参数项是 ipv4.addresses,执行以下命令修改:
nmcli con mod ens33_net5 ipv4 . addresses "192.168.5.120/24 192.168.5.1"
注:在指定IP时,必须将 ipv4.method 设置为 manual。
如果需要配置多个值,使用”+”号添加,比如配置备用 DNS,配置参数项是 ipv4.dns
nmcli con mod ens33_net5 +ipv4.dns “8.8.4.4”
同理,如果要删除某个项,使用“-”号。
下表列出了 nmcli 和修改 ifcfg-*两种配置方式的对比:
Nmcli networking off|on 是总开关,控制 NetworkManager 的对网络的管理状态。
Nmcli con down CNAME 是使某一个处于激活状态连接件 CNAME 失效,由于大部分有线连接的系统中都会默认自动重新连接,所以这个命令执行后,可能又会自动 up 了。使用 Nmcli dev dis IName 可以有效地断开指定的网卡,以防止自动连接。
10.1.1.3 使用 nmcli 创建网卡绑定
创建 bond 设备
# nmcli connection add type bond con-name mybond0 ifname mybond0 mode active-backup
Connection 'mybond0' (4db6cde4-2757-40b8-b866-7ec931b46e70) successfully added.
添加子网卡
|
# nmcli connection add type bond-slave ifname ens39 master mybond0
Connection 'bond-slave-ens39' (b75ce31e-dd12-4b4d-8249-e53e48a3aa6b) successfully added.
# nmcli connection add type bond-slave ifname ens40 master mybond0
Connection 'bond-slave-ens40' (ad9e9479-d20b-4a39-af17-5659e9256f40) successfully added.
|
启动 bond 和对应的子网卡
|
# nmcli connection up bond-slave-ens39
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
# nmcli connection up bond-slave-ens40
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
# nmcli connection up mybond0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
|
10.1.1.4 使用 nmtui 创建网卡绑定
在命令提示窗口运行 nmtui命令打开配置界面,选中“Edit a connection”配置连接件,然后选择”Add”添加一个连接件,再选中”Bond”进行网卡绑定的连接件配置,如下图 10-3:
图 10-3
在打开的绑定配置界面中,选择需要绑定的子网卡、相关的网络参数配置以及绑定模式的选择,如下图 10-4:
图 10-5
10.1.1.5 解除网卡绑定
1、断开 bond 设备
nmcli dev dis bond0
2、删除子网卡及 bond 的连接件
nmcli con del bond-slave-ens33
3、删除 bond 设备名称
echo -bond0 > /sys/class/net/bonding_masters
10.1.2 使用 network 服务管理网络
使用 network 服务进行网络管理时,建议将 NetworkManager 服务关闭
10.1.2.1 网卡配置文件
网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ethX(如下以 eth0 为例进行说明),如下为通过 dhcp 服务器自动获取IP地址的配置示例:
|
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:0C:29:DA:77:3C
ONBOOT=yes #主机启动时设备是否开启
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
|
如下为手动分配 IP 地址的配置示例:
|
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0C:29:DA:77:3C
IPADDR= #手动分配此设备的ip地址
NETWORK= #此设备的网络地址
NETMASK= #此设备的子网掩码
GATEWAY= #此设备的默认网关
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
|
10.1.2.2 DNS 配置文件
DNS 配置文件/etc/resolv.conf,示例如下:
|
generated by /sbin/dhclient-script
search gdlc.org
nameserver 172.16.100.3 #nameserve 表示域名服务器,ip 地址就是 DNS 服务器
nameserver 172.16.100.92
|