本章节主要内容为:网络配置、推荐网络常用命令、网卡绑定、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:
图 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-*两种配置方式的对比,如下图 10-3:
图 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:
图 10-4 在打开的绑定配置界面中,选择需要绑定的子网卡、相关的网络参数配置以及绑定模式的选择,如下图 10-5:
图 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:
图 10-6 在打开的绑定配置界面中,选择需要绑定的子网卡、相关的网络参数配置以及对应的 JSON 格式的配置内容,如下图 10-7:
图 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
相关主题 |