预览
-
RHEL 9 新特性与演示:
-
OpenSSH:新增禁止 root 的密码登录
-
Cockpit:RHEL 的 Web 控制台
-
DNF-3:软件安装方法
-
NetworkManager:网络管理的主要组件
-
Nftables:默认的用户空间防火墙
-
WireGuard:快速、安全的 VPN 隧道(技术预览)
-
Podman & Skopeo:新一代容器运行时与镜像搬运工具
-
LVM-VDO:以逻辑卷形式使用 VDO
RHEL 9 新特性与演示 – OpenSSH
-
RHEL 9.0 中的 OpenSSH 套件版本:
-
openssh-8.7p1-8.el9.x86_64
-
openssh-clients-8.7p1-8.el9.x86_64
-
openssh-server-8.7p1-8.el9.x86_64
-
-
OpenSSH server:
-
默认禁止 root 的密码登录
-
PermitRootLogin prohibit-password
-
RHEL 9 新特性与演示 – Cockpit
-
Cockpit:RHEL 的 Web 控制台
-
Cockpit 自 RHEL 8 开始加入系统中作为 Web 图形化控制台,可帮助系统管理员快速查看系统状态,并对系统实施简易的运维工作。
-
RHEL 9 中的 Cockpit 增强:
- 单个 Web 控制台中添加多个主机
- KVM 虚拟机的管理:cockpit-machines 插件
- 原生容器镜像与容器的管理:cockpit-podman 插件
- PCP (Performance Co-Pilot) 的支持:cockpit-pcp 插件
-
启动 cockpit 服务并设置开机自启动
1 2 3 4 |
$ sudo systemctl enable --now cockpit.socket $ sudo systemctl start cockpit.service $ sudo systemctl status cockpit.service $ sudo ss -ntulp | grep 9090 |
$ sudo systemctl enable --now serial-getty@ttyS0.service:
虚拟机中启用串口控制台连接服务
RHEL 9 新特性与演示 – DNF-3
-
自 RHEL 8 开始使用 dnf-3 用于安装 RPM 软件包。
-
RHEL 8 与 RHEL 9 中原有的 yum 安装工具依然可继续使用,yum 为 dnf-3 的软链接。
RHEL 9 的软件源管理:
-
采用 BaseOS 与 AppStream 软件仓库分开管理
-
支持模块流(module stream)可同时安装相同软件的不同版本
RHEL 9 新特性与演示- NetworkManager
-
RHEL 7 中可使用 network.service 与 NetworkManager.service 两个服务用于网络管理。
-
RHEL 8 中默认使用 NetworkManager.service,而不再默认安装 network.service (network-scripts 软件包提供),但是可手动安装该组件。
-
可通过 nmcli 命令行或 /etc/sysconfig/network-scripts/ifcfg-* 配置文件进行配置。
-
RHEL 9 中不再提供 network-scripts 软件包,只能使用 NetworkManager.service。
-
RHEL 9 网络配置工具:
-
命令行:nmcli
-
图形化:nm-connection-editor、nmtui、nmtui-connect、nmtui-edit
-
-
RHEL 8 中兼容的 ifdown 与 ifup 命令在 RHEL 9 中已弃用。
-
RHEL 9 网口配置文件路径:
-
/etc/NetworkManager/system-connections/*.nmconnection
-
/etc/sysconfig/network-scripts/ifcfg-* 配置文件依然可用,但是建议使用上述配置文件!
-
RHEL 9 新特性与演示 – NetworkManager
- RHEL 8 与 RHEL 9 网口配置对比:
RHEL 9 新特性与演示 – Nftables
-
RHEL 7 中使用 firewalld 服务作为用户配置防火墙规则的工具,iptables 作为实现防火墙规则的用户空间实现,因此通过 firewall-cmd 与 iptables 命令行均可实现防火墙的配置。
-
RHEL 8 中也使用 firewalld 服务,但其后端默认通过 nftables 实现防火墙规则,iptables 也可作为其后端,但为非默认配置可通过手动生效。
- firewalld、iptables 与 nftables 之间的联系与区别:
-
nftables 和 iptables 一样,由表(table)、链(chain)和规则(rule)组成,其中表包含链,链包含规则,规则是真正的 action。
-
与 iptables 相比,nftables 主要有以下几个变化:
-
iptables 规则的布局是基于连续的大块内存的,即数组式布局;而 nftables 的规则采用链式布局(数组和链表的区别)。
-
iptables 大部分工作在内核态完成,如果要添加新功能,只能重新编译内核;而 nftables 的大部分工作是在用户态完成,添加新功能不需要改内核。
-
-
iptables 有内置的链,即使只需要一条链,其他的链也会跟着注册;而 nftables 不存在内置的链,可以按需注册。
-
由于 iptables 内置了一个数据包计数器,所以即使这些内置的链是空的,也会带来性能损耗。
-
简化了 IPv4/IPv6 双栈管理
-
原生支持集合(IPset)、字典和映射
-
示例:nftables 添加 SNAT 规则使 KVM 虚拟机访问外网
-
KVM 虚拟机与宿主机的网络状态:
- KVM 宿主机的 nft 命令示意:
1 2 |
$ sudo systemctl stop firewalld.service $ sudo nft list ruleset |
- nftables 不存在内置链,关闭 firewalld 服务后,原先由 firewalld 创建的规则也将置空。
1 |
$ sudo nft add rule nat POSTROUTING ip saddr 172.25.10.0/24 oif bridge0 snat 192.168.110.200 |
- 添加 nftables 的 SNAT 规则
$ sudo nft list table ip nat
- 查看 nftables 的 NAT 表规则
- 若发现在 nftables 中无任何表,需从头创建 nat 表、POSTROUTING 基本链与 SNAT 规则,如下所示:
RHEL 9 新特性与演示 – WireGuard
RHEL 9 中 Linux kernel 为 5.14.0,kernel 已支持 WireGuard 功能,但还处于技术预览阶段,不推荐在生产环境中使用。
WireGuard 是由 Jason Donenfeld 等人用 C 语言编写的一个开源 VPN 协议,被视为下一代 VPN 协议,旨在解决许多困扰 IPSec/IKEv2、OpenVPN 或 L2TP 等其他 VPN 协议的问题。它与 Tinc 和 MeshBird 等现代 VPN 产品有一些相似之处,即加密技术先进、配置简单。从 2020 年 1 月开始,它已经并入了 Linux 内核的 5.6 版本,这意味着大多数 Linux 发行版的用户将拥有一个开箱即用的 WireGuard。
- WireGuard 与其他 VPN 协议的性能测试对比:
-
WireGuard 优点:
-
配置精简,可直接使用默认值。
-
只需最少的密钥管理工作,每个主机只需要 1 个公钥和 1 个私钥。
-
就像普通的以太网接口一样,以 Linux 内核模块的形式运行,资源占用小。
-
能够将部分流量或所有流量通过 VPN 传送到局域网内的任意主机。
-
能够在网络故障恢复之后自动重连,戳到了其他 VPN 的痛处。
-
比目前主流的 VPN 协议,连接速度要更快,延迟更低(见上图)。
-
使用了更先进的加密技术,具有前向加密和抗降级攻击的能力。
-
支持任何类型的二层网络通信,例如 ARP、DHCP 和 ICMP,而不仅仅是 TCP/HTTP。
-
可以运行在主机中为容器之间提供通信,也可以运行在容器中为主机之间提供通信。
-
-
WireGuard 功能示例:
-
由于 RHEL 9 中 kernel 已支持 WireGuard,因此只需安装 wireguard-tools 软件包即可。
-
创建 client 端与 server 端的 vpn 通信。
-
Ubuntu 20.04.3 LTS:
WireGuard Server(Peer) 192.0.2.1/24, 192.168.110.208/24
-
RHEL 9.0 Beta:
- WireGuard Client(Peer) 192.0.2.2/24, 172.25.10.11/24, gateway: 192.168.110.1
RHEL 9 新特性与演示 – Podman & Skopeo
-
Podman 作为下一代容器运行时自 RHEL 8 开始正式在 RHEL 中替代 Docker,红帽官方不再使用 Docker,并且还提供两个强大的容器镜像操作工具 Skopeo 与 Buildah。
-
Podman 在 RHEL 9 中版本为 4.0.x,其功能得到增强且更加稳定。
-
Podman 4.0.x 在兼容 CNI 的基础上又新增原生的网络模式 Netavark 与 Aardvark-DNS 以更好的支持 IPv6、单容器接入多个容器网络与提供更好的性能。
-
Podman 的以下特性:
-
CLI 与 Docker 命令行相互兼容,可平滑过度。
-
同样支持 Dockerfile 构建容器镜像,并且兼容 Containerfile。
-
无守护进程运行,采用 fork/exec 模型运行容器。
-
可运行 rootfull 与 rootless 容器
-
可以实现容器随操作系统启动而启动
-
-
虽然 Podman 可执行部分容器镜像相关操作,但在执行效率上与 Skopeo 相比相差甚远,因此,若对容器镜像执行操作可使用 Skopeo 与 Buildah 替换。
-
有关 Podman 与 Skopeo 的详细内容可参阅最后的 Alberthua Blog 参考链接。
-
Podman & Skopeo 命令示例:
- Podman 各特征比较:
RHEL 9 新特性与演示 – LVM-VDO
-
RHEL 9 在存储方面增加了较多特性,如已支持 exfat 文件系统、LVM-VDO 卷存储等。
-
单纯使用 VDO 卷功能已从 RHEL 9 中移除。
-
注:RHEL 9.0 Beta 中 kmod-kvdo 内核模块当前仍存在 bug,该模块所需的内核版本与系统当前版本无法匹配。
参考链接
Views: 19