适用于:✔️ Linux VM
网络层配置错误可能会导致 Red Hat 更新基础结构 (RHUI) 中出现常见问题。 本文可帮助你识别和解决其中一些问题。
概述
对 Microsoft Azure 托管的 RHUI 的访问限制为 Azure 数据中心 IP 范围内的虚拟机 (VM)。 有关详细信息,请参阅用于 Azure 中按需 Red Hat Enterprise Linux VM 的 Red Hat 更新基础结构。
Red Hat 配置了这些 Azure 托管的 RHUI 服务器,以仅允许来自 Azure 公共 IP 范围的流量。 由于此设置,这意味着如果使用虚拟专用网络(VPN)或其他方法来重新路由 Azure 与 Azure 托管的 RHUI 服务器之间的流量,则 Azure 托管的 RHUI 服务器会阻止该流量。
重要
RHUI 仅适用于即用即付 (PAYG) 映像。 对于黄金映像(也称为自带订阅(BYOS),仅当系统附加到 Red Hat 订阅管理器(RHSM)或 Red Hat Satellite 时,才能收到更新。 有关详细信息,请参阅如何注册和订阅 RHEL 系统。
现象
RHUI 管理的 yum 存储库列表是在预配期间在 Red Hat Enterprise Linux (RHEL) 实例中配置的。 无须进行任何额外的配置。 请在 RHEL VM 准备好后运行 yum update
以获取最新更新。 但是,在 yum update
操作期间,连接最终将超时,你将看到类似于以下输出字符串之一的错误消息:
输出 1
https://rhui-3.microsoft.com/pulp/repos/microsoft-azure-rhel7/repodata/repomd.xml:[Errno 12]超时时间https://rhui-3.microsoft.com/pulp/repos/microsoft-azure-rhel7/repodata/repomd.xml:(28,“操作在 30000 毫秒后超时,接收的字节数为 0 个)”
输出 2
https://rhui4-1.microsoft.com/pulp/repos/content/dist/rhel8/rhui/8/x86_64/baseos/os/repodata/repomd.xml[OpenSSL SSL_connect:连接到 ] SSL_ERROR_SYSCALL http://rhui4-1.microsoft.com:443
输出 3
调试错误:Curl 错误 (28): 达到超时时间 https://rhui-1.microsoft.com/pulp/repos/content/dist/rhel8/rhui/8/x86_64/baseos/os/repodata/repomd.xml [操作超时后 30000 毫秒,收到 0 个字节中的 0 个字节] (https://rhui-1.microsoft.com/pulp/repos/content/dist/rhel8/rhui/8/x86_64/baseos/os/repodata/repomd.xml).
输出 4
https://rhui-3.microsoft.com/pulp/repos/microsoft-azure-rhel7/repodata/repomd.xml: [Errno 14] curl#56 - “网络错误 recv()” [Errno 12] 超时时间 https://rhui-3.microsoft.com/pulp/repos/microsoft-azure-rhel7/repodata/repomd.xml: (28, '操作在 30000 毫秒后超时,接收 0 个字节的 0 个字节')
故障排除清单
故障排除步骤 1:更新 RHUI 版本 4 的 IP 地址
是否使用网络配置(自定义防火墙或 UDR 配置)进一步限制来自 RHEL 即用即付 (PAYG) VM 的 https
访问? 这种情况下,请确保允许 yum update
使用正确的 IP 地址,具体取决于你的环境。 下表显示了 RHUI 版本 4 的 Azure Global 中用于不同区域的 IP 地址。
区域 | IP 地址 |
---|---|
西欧 | 52.136.197.163 |
美国中南部 | 20.225.226.182 |
美国东部 | 52.142.4.99 |
澳大利亚东部 | 20.248.180.252 |
东南亚 | 20.24.186.80 |
注意
截至 2023 年 10 月 12 日,所有 PAYG 客户端将在未来两个月内分阶段定向到 RHUI 4 个 IP 地址。 在此期间,RHUI 3 IP 地址仍可使用以便能够持续更新,但将来会被删除。 若要不间断地访问包和更新,必须更新允许访问 RHUI 3 IP 地址的现有路由和规则,以便它们同时包括 RHUI 4 IP 地址。 为了在过渡期间继续接收更新,建议不要删除 RHUI 3 IP 地址。
所有 Azure 政府 PAYG 实例都使用以前涵盖的相同 RHUI IP 地址。
故障排除步骤 2:运行验证脚本
Azure 在 GitHub 中提供 RHUI 存储库验证脚本。 脚本的许多功能之一是验证存储库服务器的连接性,并在发现连接错误时提供修复建议。 此 Python 脚本具有以下功能:
- 验证 RHUI 客户端证书。
- 验证 RHUI rpm 一致性。
- 在 EUS、非 EUS 存储库配置及其要求之间进行一致性检查。
- 验证与 RHUI 存储库的连接。 报告如果未观察到任何错误,则存储库连接成功。
- 验证与 RHUI 存储库的 SSL 连接。
- 专门关注 RHUI 存储库。
- 使用定义的条件验证找到的错误,并提供修复建议。
支持的 Red Hat 映像
此版本的验证脚本当前仅支持从 Azure 市场映像部署的以下 Red Hat VM:
- RHEL 7.x PAYG VM
- RHEL 8.x PAYG VM
- RHEL 9.x PAYG VM
- RHEL 10。x 付费即用虚拟机
如何运行验证脚本
要运行验证脚本,请在 Red Hat VM 上输入以下 shell 命令:
如果虚拟机具有 Internet 访问权限,请使用以下命令从 VM 执行脚本:
curl -sL https://raw.githubusercontent.com/Azure/azure-support-scripts/refs/heads/master/Linux_scripts/rhui-check/rhui-check.py | sudo python2 -
如果虚拟机没有 Internet 访问权限,请下载 RHUI 检查脚本 并将其传输到虚拟机,然后执行以下命令:
sudo python2 ./rhui-check.py
该脚本将生成一个报告,用于标识任何特定问题。 执行后,脚本输出也会保存在该脚本输出中 /var/log/rhuicheck.log
。 还可以单独检查该日志文件。
原因
以下列表包含 RHUI 连接失败的根本原因:
用户定义的路由(UDR)未配置为具有 Internet 的下一跃点 IP 地址。
UDR 规则未配置为访问 UDR 规则上的任何 RHUI 版本。
为网络接口配置了不正确的或缺失的网络安全组(NSG)。
NSG 规则未配置为访问任何 RHUI 版本。
以下部分包含可能导致这些基础故障原因发生的方案,并概述了修复连接失败的解决方案。
方案 1:VM 配置为使用内部负载均衡器
为网络接口配置内部负载均衡器时,它不提供出站连接。
解决方案 1a:添加公共 IP 地址
在 VM 的网络接口上添加一个公共 IP 地址。 有关详细信息,请参阅 将公共 IP 地址关联到虚拟机。
解决方案 1b:使用外部负载均衡器
使用外部 Azure 负载均衡器而不是内部 Azure 负载均衡器。 有关详细信息,请参阅快速入门:使用 Azure 门户创建公共负载均衡器,以便对 VM 进行负载均衡。
解决方案 1c:在子网上使用 NAT 网关
在 VM 子网上使用网络地址转换 (NAT) 网关进行出站访问。 有关详细信息,请参阅 Azure NAT 网关资源。
解决方案 1d:使用内部基本负载均衡器
降级以使用内部基本负载均衡器而不是内部标准负载均衡器。
注意
此解决方案只是临时修复,因为负载均衡器的基本版本计划停用。 有关详细信息,请参阅 Azure 基本负载均衡器将于 2025 年 9 月 30 日停用 - 请升级到标准负载均衡器。
解决方案 1e:使用 SNAT 规则
使用源网络地址转换(SNAT)规则。 有关详细信息,请参阅 将 SNAT 用于出站连接。
方案 2:RHUI 服务器连接到本地网络,而不是 RHUI 公共 IP 地址
Azure 中的 Red Hat VM 必须连接到 RHUI 服务器才能使用 RHUI 存储库并完成更新。 连接要求将请求发送到 RHUI 服务器。 在强制隧道方案(快速路由)或 VPN 中,连接失败,因为服务器连接到本地网络而不是 RHUI 公共 IP 地址。
解决方案 2:创建 UDR
创建 UDR 以将流量路由到 RHUI 服务器。 以下屏幕截图显示了必须在Azure 门户上的路由表中创建的 UDR。 UDR 基于故障排除步骤 1:更新 RHUI 版本 4 的 IP 地址中的 Azure 全局区域和 IP 地址。 有关详细信息,请参阅 创建、更改或删除路由表。
方案 3:Azure 防火墙或虚拟设备位于虚拟网络和 Internet 之间
Azure 防火墙或虚拟设备存在的目的是充当 Azure 虚拟网络和 Internet 之间的保护性屏障。 此屏障强制实施安全策略,并提供可通过将所有流量发送到防火墙来有效控制和监视流量的功能。 在这种情况下,防火墙会阻止与 RHUI 服务器的通信。
解决方案 3:确保可以访问 RHUI IP 地址
通过执行以下操作,确保 RHUI IP 地址完全可访问:
验证防火墙策略中是否允许目标 RHUI IP 地址。
如果安全套接字层 (SSL) 检查处于活动状态,请验证是否允许 RHUI IP 地址。
如果使用 NSG,请确保将 RHUI IP 地址添加到网络接口 NSG 或子网 NSG 的出站规则允许列表中。 优先级应高于
Block_Internet_Access_outbound
规则。
方案 4:检查点防火墙运行 SSL 检查
如果网络流量路由经过运行 SSL 检查的检查点防火墙设备,则此过程可能会改变 RHUI 证书影响与 RHUI 服务器的通信的方式。
解决方案 4:将 RHUI IP 地址和 URL 添加到允许列表
如果 SSL 检查处于活动状态,请确保允许列表中包括 RHUI IP 地址和 URL。
方案 5:代理用于通信
Internet 通信通过影响与 RHUI 服务器的通信的客户代理。
解决方案 5:修复代理配置设置
如果在 RHEL VM 和 RHUI 之间的 Microsoft Azure 中配置了代理服务器,请在 /etc/yum.conf
或 /etc/dnf.conf
文件中使用正确的代理配置设置,如以下代码片段所示:
重要
如果配置的代理服务器具有专用 IP 地址,请确保它在 Azure 公共地址空间中具有连接性。
proxy=http://myproxy.mydomain.com:3128
proxy_username=proxy-user
proxy_password=password
重要
如果 RHEL VM 和 RHUI 之间不存在代理服务器,请搜索并删除 /etc/yum.conf
或 /etc/dnf.conf
文件中的任何代理配置设置。
第三方信息免责声明
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 对这些产品的性能和可靠性不作任何明示或默示担保。
第三方联系人免责声明
Microsoft 会提供第三方联系信息来帮助你查找有关本主题的其他信息。 此联系信息可能会更改,恕不另行通知。 Microsoft 不保证第三方联系信息的准确性。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。