2.2 RHEL 8的网络配置
RHEL 8的网络配置大致分为IPv4和IPv6两大部分。由于IPv6的应用较少,因此这里重点介绍IPv4。
2.2.1 网络配置基础命令
由于RHEL 8默认没有安装经典的network.service,因此只能通过Netware Manager管理网络配置,否则无法使用网络,不过RHEL中可以使用如下命令手动恢复传统的network.service。
还可以通过如下命令安装相应的网络工具。
鉴于上述服务已被官方所抛弃,不建议继续使用network.service管理网络,与其被迫改变,不如积极地进行改变。
1.使用nmcli或nmtui命令管理网卡
(1)获得网卡列表:
需要提醒大家的是,device可以简写为d,上述命令可简写为:
(2)查看网卡连接信息。
需要注意的是,网卡连接名称不是网卡名称,默认名称相同。
需要提醒大家的是,connection可以简写为c,show可以简写为s,因此上述命令可简写为:
(3)启用网卡连接:
(4)停止网卡连接:
(5)删除网卡连接:
(6)创建网络连接并配置静态IP地址:
(7)创建网络连接并配置动态IP地址:
(8)修改IP地址:
2.使用nmtui命令管理网卡
推荐大家使用nmtui这个文本界面配置工具来管理网络设备,便捷高效,具体操作为:
或者直接指定网卡,具体操作为:
此工具类似CentOS 4/5时代的netconfig或system-config-network-tui文本界面配置工具,使用起来十分便捷,下面以nmtui命令为例来介绍其使用方法。
nmtui首先出现习惯的文本界面,即NetworkManager文本界面,该界面有以下4个选项。
(1)Edit a connection:编辑一个网络连接。
(2)Activate a connection:激活一个网络连接。
(3)Set system hostname:设置主机名,本书将主机名设置为www.example.com。
(4)Quit:退出。
通常,高频的操作是配置网卡,选择Edit a connection选项即可开始配置,服务器大多有多块网卡,所以首先从连接列表中选中要配置的连接名称,默认网络连接名称应该与网卡名称相同。需要提醒大家的是,网卡不等于网络连接,一块网卡可以创建多个网络连接。按Enter键后便出现了熟悉的配置界面,首先将鼠标光标置于IPv4 CONFIGURATION右侧,按下Enter键将出现一个菜单,选中手动配置(Manual)选项即可开始具体配置,如IP地址、子网掩码、网关和DNS服务器等。至于配置方法,需要提醒大家的是,子网掩码可以斜杠方式和IP地址一起配置,如IP/8、IP/24或其他数字,还可以通过Tab(下一个)键或Shift+Tab(上一个)组合键快速移动光标,在按下OK键之前,检查一下Automatically connect选项是否选中,如果选中就按下OK键,这时将返回选择网络连接界面,直接按下Esc键回到主界面,最后选择Quit选项退出即可完成配置。网卡的配置实际上保存在/etc/sysconfig/network-scripts/ifcfg-ens3*的文件中,以ens33为例,文件内容如下。
这是一个静态IP的典型配置,即使可以方便地通过nmtui等工具配置,但鉴于网卡配置极为重要,建议大家熟练掌握,最后运行如下命令重启网络服务。
或者重启服务器,命令如下。
2.2.2 配置Bonding
Bonding是企业中最为常用的技术之一,由于服务器网卡较多,因此企业通常将网卡创建Bonding虚拟网卡来使用。所谓Bonding,是指企业服务器中将多块物理网卡充当一块虚拟网卡使用,实现了负载均衡和高可用,也就是常说的多块网卡配置为一个IP地址,不过以两块网卡居多。配置Bonding,首先需要加载bonding模块,配置方法为:
然后可以使用如下命令检测模块情况:
为了稳妥起见,将内核的配置写到文件,具体方法为:
Tips:Bonding模式知多少?
● balance-rr:使用数字0表示,用于容错和负载均衡的循环模式。
● active-backup:使用数字1表示,可用于容错的活动备份模式。
● balance-xor:使用数字2表示,容错和负载均衡设置为异或模式。
● broadcast:使用数字3表示,容错的广播模式,所有传输都从接口上发送。
● 802.3ad:使用数字4表示,IEEE 802.3ad动态链接聚合模式,创建共享相同速度和双工设置的聚合组。
● balance-tlb:使用数字5表示,传输负载均衡模式(TLB)以实现容错和负载均衡。
● balance-alb:使用数字6表示,活动负载均衡模式(ALB),通常为容错和负载均衡设置。
成功加载和配置完内核模块后,编辑Bonding虚拟设备的配置文件,配置方法为:
添加如下内容:
上述内容仅供参考,可根据自己的实际情况修改,然后配置作为Slave的两块网卡,具体操作如下。
第一块网卡(ens33)的命令为:
添加如下内容:
第二块网卡(ens34)的命令为:
添加如下内容:
保存退出后,运行如下命令重启网络服务:
或者重启服务器,命令如下:
2.2.3 配置Bridge
与Bonding类似,Bridge也是一个虚拟网络设备,其实就是基于网卡的一部虚拟交换机,而且是一种成熟可靠的虚拟交换技术,比后起之秀Open vSwitch(OvS)要成熟和可靠很多,实现也比较简单。要使用KVM虚拟化环境一般需要配置Bridge,有了它,KVM虚拟机就可以使用桥接模式接入网络。
Bridge是通过内核模块bridge实现桥接的,所以要运行如下命令来检测相关模块是否加载。
默认应该已经加载,如果没有被加载,那么可以运行如下命令手动加载。
保存配置文件,重启系统,即可开始创建网桥配置文件ifcfg-br0,具体操作为:
添加如下内容:
与Bonding类似,上述配置可以根据实际情况修改,在成功创建Bridge之后,添加网卡到网桥,关键配置为:
添加如下内容:
重启后生效,需要注意的是,连接到网桥上的网卡,无法再设置IP地址,并且即使配置文件设置了IP地址,也不会生效。
1.彻底手动管理自己的网卡
在上述配置中,如果要彻底手动管理自己的网卡,不受NetworkManager的管理,那么只需在相应网卡的配置文件中添加如下关键配置:
重启NetworkManager服务后,再次使用nmcli命令查看网卡状态时,就会发现那块网卡的状态变为unmanaged了,配置过程中不建议关闭NetworkManager服务,如果非要关闭,就在网络配置好后关闭。
2.停用IPv6
运行如下命令停止IPv6:
然后永久停用IPv6,具体操作为:
添加如下两行配置:
再运行如下命令生效:
重启后生效,在进行上述操作前建议先关闭SELinux。
2.2.4 停用和启用IPv6
在停用IPv6前,检查一下网卡的状态:
上述结果中,以inet6开头的便是IPv6的地址,如果用不到IPv6,那么可以运行如下命令暂时停用IPv6。
上述命令只能暂时关闭IPv6,系统重启后,IPv6又回来了。如果需要永久停用IPv6,就需要编辑GRUB的启动配置,具体操作为:
重启后生效,当然有禁用就有启用,如果要再次启用IPv6,就要从GRUB的启动配置开始,关键操作为:
通常重启后就可以看到IPv6地址了,但有时依然需要重启系统,这时执行如下命令:
需要提醒大家的是,在进行上述操作前最好先关闭SELinux。
1.ifconfig和ip命令
RHEL 8默认使用较新的ip系列命令,同样可以实现上述配置,而且其功能比ifconfig更为强大和全面,具体实现方法如下。
(1)显示网络配置信息。显示网络配置信息的关键操作为:
或
(2)设置/删除IP地址。可以通过ip命令设置/删除IP地址,关键操作为:
(3)启用或禁用网卡。可以通过ip命令启用或禁用网卡,关键操作为:
(4)配置默认网关。可以通过ip命令设置默认网关,具体操作为:
删除默认网关的操作为:
(5)显示当前路由表。除了route命令,还可以使用ip命令来显示当前路由表。
此外,ip命令还可以开启或关闭网卡的混杂模式,这在虚拟化或云计算中十分有用,具体实现方法为:
当然,作为后起之秀的ip命令还有很多ifconfig命令所没有的功能和用法,更多信息请参考其manpage。
2.netstat和ss命令
netstat命令是一个常用的检测端口与服务工具,在CentOS 7和Ubuntu server 18.04中也出现了替代品,即ss命令。ss命令可以实现netstat的多数功能,具体操作为:
查看进程,网络服务及端口信息可使用如下命令。
获得正在侦听的端口的命令为:
获得当前所有端口的命令为:
查看主机监听的端口的命令为:
查看所建立的TCP连接的命令为:
在RHEL 8中,默认的ip和ss命令成为ifconfig、route、arp和netstat命令的替代品,为了便于大家掌握,归纳的对应关系如下。
此外,如果实在不习惯上述命令,那么可以使用如下命令将“老朋友”找回来。
配置完网络,RHEL 8就可以联网了,这时最适合激活RHEL 8的订阅服务,设置好主机名再激活订阅,具体操作为:
看到Subscribed,说明订阅成功,上述命令中的“XXXX”和“XXXXXXXX”分别为订阅服务的账号和密码,订阅服务被激活后,即可运行如下命令更新系统了。
或
此外,还可以通过最新的Web控制台Cockpit来管理网络及订阅服务,十分直观和方便。