云网牛站
所在位置:首页 > Linux培训 > Linux新人培训第十章:网络基本

Linux新人培训第十章:网络基本

2018-05-07 12:11:41作者:YWNZ稿源:云网牛站整理

本章节主要内容为:网络配置、推荐网络常用命令、网卡绑定、Network teaming 服务。

 

注:本Linux新人培训教程以中兴新支点服务器操作系统(CGSL)为例。

 

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:

Linux新人培训第十章:网络基本

图 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,左边是配置参数项,右边是参数值。

Linux新人培训第十章:网络基本

图 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-*两种配置方式的对比,如下图 10-3:

Linux新人培训第十章:网络基本

图 10-3

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-4:

Linux新人培训第十章:网络基本

图 10-4

在打开的绑定配置界面中,选择需要绑定的子网卡、相关的网络参数配置以及绑定模式的选择,如下图 10-5:

Linux新人培训第十章:网络基本

图 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

 

10.2.网络常用命令

关于这部分内容推荐参考Linux常用命令大全之网络管理:https://ywnz.com/linux/wlgl/

 

10.3.网卡绑定

本节以将一台机器上的 eth3 和 eth4 两块网卡绑定成 trunk0,将 eth5 和 eth6 两块网卡绑定为 trunk1 为例说明网卡绑定操作方法。创建 trunk1 的步骤请参考本文中的注释完成。

1、备份系统原有的网络配置脚本。

稳妥起见,可先将/etc/sysconfig/network-scripts/目录下所有以 ifcfg- 开头的文件备份到一个另外的目录,如:/root/eth-bak 目录。

2、创建绑定。

1)创建绑定配置文件:/etc/sysconfig/network-scripts/ifcfg-trunk0(若创建 trunk1 绑定,则文件名为 ifcfg-trunk1)内容如下:

DEVICE=trunk0             #如果创建 trunk1 绑定时,为 trunk1

IPADDR=10.215.32.67      #如果创建 trunk1 绑定时,为 trunk1 绑定的IP

NETMASK=255.255.240.0    #如果创建 trunk1 绑定时,为 trunk1 绑定的掩码

GATEWAY=10.215.32.65     #如果创建 trunk1 绑定时,为 trunk1绑定的网关

BOOTPROTO=none

ONBOOT=yes

USERCTL=no

2)修改/etc/sysconfig/network-scripts/ifcfg-eth3 为如下内容(如果创建 trunk1 绑定时,则修改的是 ifcfg-eth5 文件):

DEVICE=eth3              #如果创建 trunk1 绑定时,为 eth5

ONBOOT=yes

HWADDR=xx:xx:xx:xx:xx  #该物理设备的实际 MAC 地址

MASTER=trunk0           #如果创建 trunk1 绑定时,为 trunk1

SLAVE=yes

BOOTPROTO=none

USERCTL=no

3)修改/etc/sysconfig/network-scripts/ifcfg-eth4 为如下内容(如果创建 trunk1 绑定时,则修改的是 ifcfg-eth6):

DEVICE=eth4              #如果创建 trunk1 绑定时,为 eth6

ONBOOT=yes

HWADDR=xx:xx:xx:xx:xx   #该物理设备的实际 MAC 地址

MASTER=trunk0           #如果创建 trunk1 绑定时,为 trunk1

SLAVE=yes

BOOTPROTO=none

USERCTL=no

4)在/etc/modprobe.d/local.conf 里面添加如下语句:

alias trunk0 bonding            #如果创建 trunk1 绑定时,为 trunk1

options trunk0 miimon=100 mode=1 #如果创建 trunk1 绑定时,为 trunk1,mode 的值可以为 1 或者 0,分别代表 active-backup 与 balance-rr 的方式

5)用下面的命令重启网络服务,绑定即可生效。

# systemctl restart network  

3、解除绑定的方法

1)删除绑定网卡对应的配置文件

#rm -f /etc/sysconfig/network-scripts/ifcfg-trunk0  #如果已经创建 trunk1 时,则删除的是 ifcfg-trunk1  

2)还原原来的配置文件

#cp -f  /root/eth-bak/ifcfg-eth3 /etc/sysconfig/network-scripts/  #如果已经创建 trunk1 时,则拷贝的是 ifcfg-eth5  

#cp -f  /root/eth-bak/ifcfg-eth4 /etc/sysconfig/network-scripts/  #如果已经创建 trunk1 时,则拷贝的是 ifcfg-eth6  

3)删除/etc/modprobe.d/local.conf 里面如下语句:

alias trunk0 bonding               #如果已创建 trunk1 绑定时,为 trunk1  

options trunk0 miimon=100 mode=1  #如果已创建 trunk1 绑定时,为 trunk1  

4)按顺序执行下面的命令:

#ifconfig eth3 down  #如果已创建 trunk1 绑定时,为 eth5

#echo -eth3 > /sys/class/net/trunk0/bonding/slaves  #如果已创建 trunk1 绑定时,为 eth5 和 trunk1

#ifconfig eth4 down  #如果已创建 trunk1 绑定时,为 eth6

#echo -eth4 > /sys/class/net/trunk0/bonding/slaves  #如果已创建 trunk1 绑定时,为 eth6 和 trunk1

#ifconfig trunk0 down  #如果已创建 trunk1 绑定时,为 trunk1

#echo -trunk0 > /sys/class/net/bonding_masters #如果已创建 trunk1 绑定时,为 trunk1

5)重启网络服务,绑定即可解除成功。

# systemctl restart network

 

10.4.Network teaming 服务

Network teaming 服务将多个物理链路聚合成一个逻辑链路,以提供更高的吞量和冗余。以前的“网卡绑定” 、”通道聚合“、“端口绑定”、“网卡均衡负载”和“链路聚合”等概念将被 teamd 服务统一实行管理。使用 teamd 服务,不会对已经存在的网卡绑定造成影响,是 CGSLV5 之后做网卡绑定的一种可选方式。该服务依赖于 NetworkManager。

10.4.1.使用 nmcli 工具创建一个网卡绑定

10.4.1.1.创建 team 设备名称

命令格式:

nmcli con add type team con-name CNAME ifname INAME [config JSON]  

CNAME 是 connection 的名字,INAME 是网卡名称。JSON 部分按这样格式书写:

{" runner" :{"name" : "METHOD"}}

METHOD 可以是:broadcast, roundrobin, activebackup, loadbalance, or lacp.

例如添加一个名字为 team0 的 bond 网口:

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

Connection 'team0' (c3609f3f-3746-4c47-a52a-97c2009d55aa) successfully added.  

10.4.1.2.分配 IP 地址

命令格式:

nmcli con mod team0 ipv4.addresses 172.168.17.120/24  

例如:

# nmcli con mod team0 ipv4.addresses 172.168.17.120/24

10.4.1.3.分配接口

命令格式:

nmcli con add type team-slave con-name CNAME ifname INAME master TEAM  

说明:CNAME 是 connection 配置名,INAME 是设备名,TEAM 是 bond 网口的名字。

例1:

# nmcli con add type team-slave ifname ens37 master team0  

Connection 'team-slave-ens37' (5c8cc7de-6334-4ba1-89f4-a84bc3d35938) successfully added.  

例2:

# nmcli con add type team-slave con-name team0-slave2-ens38 ifname ens38 master team0  

Connection 'team0-slave2-ens38' (5c6944cc-0d50-4ccf-9826-46042d2b58e9) successfully added.  

以上两条命令将会创建两个新的 connection,以前对应 ens37 和 ens38 的配置(connection)默认会保留。(建议删除,否则下次故障恢复可能导致原来的配置文件生效,而不是 bond 配置生效)

[root@localhost ~]# nmcli connection show

10.4.1.4.启动

先断开所有子网卡以及 bond 网口,再启动所有子网口。

nmcli dev dis INAME    断开子网卡设备

nmcli con up CNAME 启动两个子网卡对应 team 设备的连接件

跟启动 bond 设备类似,启动 team 设备时,也有以下特点

1、启动 team 网口不会自动启动对应的子网口

2、启动其中的一个子网口,会启动 team 网口

3、停用 team 网口,会自动停止子网口

4、没有配置子网口的 team 网口,可以配置静态 IP 后启动

5、如果没有配置子网口的 team 网口,如果使用了 DHCP 方式获取 IP,启动后将一直等待子网口完成 IP 获取。

6、使用 DHCP 获取 IP 的 team 网口,当子网口插上网线后,会一直等待它完成 IP 获取。

7、即便子网口没有接上网线,使用 DHCP 方式获取 IP 的 team 网口将持续等待子网口完成 IP 获取。

10.4.2.使用 nmtui 工具创建网卡绑定

在命令提示窗口运行 nmtui 命令打开配置界面,选中“Edit a connection”配置连接件,然后选择”Add”添加一个连接件,再选中”Team”进行网卡绑定的连接件配置,如图 10-6:

Linux新人培训第十章:网络基本

图 10-6

在打开的绑定配置界面中,选择需要绑定的子网卡、相关的网络参数配置以及对应的 JSON 格式的配置内容,如下图 10-7:

Linux新人培训第十章:网络基本

图 10-7

10.4.2.1.管理 team 设备

查看 team0 设备的状态

# teamdctl team0 state view  

查看更多信息需加-v 参数

# teamdctl team0 state view –v  

以 JSON 格式查看状态

# teamdctl team0 state dump  

# teamdctl team0 config dump  

添加子网 em1 口到 team0

# teamdctl team0 port add em1  

从 team0 中删除子网口 em1

# teamdctl team0 port remove em1  

以 JSON 格式修改子网口 em1 的配置

# teamdctl team0 port config update em1 JSON-config-string

10.4.2.2.解绑 team 设备

断开 team0 设备

nmcli device disconnect team0  

删除子网卡的连接件

nmcli connection delete team-slave-ens37  

nmcli connection delete team-slave-ens38  

刷新连接件

nmcli connection reload

 

相关主题

中兴新支点服务器操作系统:企业级的国内服务器操作系统

精选文章
热门文章