RHEL / Rocky Linux 8 NetworkManager WWAN 获取 IPv6 失败的解决办法

发布于:2022-12-15 ⋅ 阅读:(711) ⋅ 点赞:(0)

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


网站公告

今日签到

点亮在社区的每一天
去签到