RHEL / Rocky Linux 8.7 系统中已经修复WWAN无法获取IPv6地址的错误。
以下内容用于RHEL 8.6和之前版本
RHEL / Rocky Linux 8 系统中 WWAN 出现无法获取 IPv6 地址的情况,原因是 NetworkManager-wwan 插件源码 BUG,需要重新编译替换
[root]# rpm -ql NetworkManager-wwan
/usr/lib/.build-id
/usr/lib/.build-id/d6
/usr/lib/.build-id/d6/fdf039f93d8a811909ab90e5c869d50bd9b6b0
/usr/lib/.build-id/ed
/usr/lib/.build-id/ed/55a4e37d7caf25f0063f33d9710533c3597810
/usr/lib64/NetworkManager/1.36.0-7.el8_6/libnm-device-plugin-wwan.so
/usr/lib64/NetworkManager/1.36.0-7.el8_6/libnm-wwan.so
得知版本号为:1.36.0-7.el8_6, 编译 NetworkManager 源码需要
需要替换 libnm-device-plugin-wwan.so 和 libnm-wwan.so
先备份原文件
[root]# cp libnm-device-plugin-wwan.so libnm-device-plugin-wwan.so.orig
[root]# cp libnm-wwan.so libnm-wwan.so.orig
获取 NetworkManager 源码
[root]# yum install yum-utils
[root]# yumdownloader --source NetworkManager
解压下载的 NetworkManager*.src.rpm 文件
使用 patch 命令按照顺序打上所有补丁
[user]$ patch -p1 < *.patch [注意,根据情况执行,不要直接复制使用此命令]
对比最新版 NetworkManager-1.41.2.tar.xz 源码,可知需要做以下操作
修改 RHEL官方 src/core/devices/wwan/nm-device-modem.c 184 行
if (!IS_IPv4)
priv->iid = iid ? *iid : ((NMUtilsIPv6IfaceId) NM_UTILS_IPV6_IFACE_ID_INIT);
为
if (!IS_IPv4) {
priv->iid = iid ? *iid : ((NMUtilsIPv6IfaceId) NM_UTILS_IPV6_IFACE_ID_INIT);
nm_device_sysctl_ip_conf_set(device, AF_INET6, "disable_ipv6", "0");
}
编译源码
[user]$ ./configure --prefix=/usr --with-nmcli=yes --with-nmtui=yes --with-modem-manager-1 --enable-ifcfg-rh --enable-ifupdown --enable-firewalld-zone --enable-polkit=yes --with-resolvconf=yes --with-config-dns-rc-manager-default=auto --with-systemd-logind=yes --with-suspend-resume=systemd --libdir=/usr/lib64 --with-dist-version=1.36.0-7.el8_6
[user]$ make
[user]$ strip src/core/devices/wwan/.libs/libnm-device-plugin-wwan.so
[user]$ strip src/core/devices/wwan/.libs/libnm-wwan.so
复制 src/core/devices/wwan/.libs/libnm-device-plugin-wwan.so 和 src/core/devices/wwan/.libs/libnm-wwan.so 替换系统原文件
[user]$ systemctl restart NetworkManager
WWAN 连接配置 IPv6 Settings -> Method 设置为 Automatic 而不是 Ignore,重新连接即可获取 IPv6 地址
备注:
SELinux 可能会出现提示等,请使用 SELinux Alert Browser 工具按照提示解决
RHEL9 系统下可以参考此文档解决
如果感觉以上步骤太麻烦,直接下载我编译好的文件
链接地址: https://download.csdn.net/download/weixin_43838755/86541821