Skip to main content

关于armbian (network manager)以 eui64 的形式获取 Ipv6刚开始编辑 sysctl 很久发现 ipv6 还不是 eui64, 问了 llm 都没回答对

  1. 关于armbian (network manager)以 eui64 的形式获取 Ipv6

    刚开始编辑 sysctl 很久发现 ipv6 还不是 eui64, 问了 llm 都没回答对。

    查了一下,因为是 network manager接管了这一块,而不是内核管理,随意编辑 sysctl 没用。

    查看Linux_ipv6_无状态_设置为_eui64_有状态ipv6更改后缀

    —-节选—-

    修改 ipv6 无状态地址的缺省模式 addr_gen_mode 为 eui64

    检查系统是否有 nmcli 命令。如果没有。-->网络是由内核直接管理的修改方法
    执行 nmcli net 检查 NetworkManager 是否启用。
    如果返回 disabled 即没启用,-->网络由内核直接管理的修改方法
    如果返回 enabled 即启用了。
    执行 nmcli device 查看对应的网卡设备是否由 NetworkManager 管理。
    显示绿色的 connected 就是由 NetworkManager 管理的。-->由 NetworkManager 管理的修改方法
    显示灰色的 unmanaged 是 NetworkManager 没有管理的。-->网络由内核直接管理的修改方法
    你也可以考虑,启用NetworkManager对此网卡的管理。 -->见文章后面的“让 NetworkManager 管理有线网卡”


    —-
    网络由 NetworkManager 管理的,修改eui64方法

    Armbian或Debian系统,改缺省无状态ipv6 为 stable-privacy

    看帮助 man NetworkManager.conf。
    修改 cd /etc/NetworkManager/system-connections/ 目录中对应网卡的文件。比如,Armbian_ethernet文件
    [ipv6]
    - addr-gen-mode=stable-privacy
    + #addr-gen-mode=stable-privacy
    + addr-gen-mode=eui64
    dns-search=
    Armbian_ethernet 文件中包含interface-name=eth0 , 所以这个文件是设置有线网卡的。
    如果要设置无线网卡为eui64,则去修改对应的包含interface-name=wlan0的配置文件。
    对eui64地址,valid_flt 和 preferred_lft 缺省值的修改。debian系统。(未测试)。
    看 man systemd.network 有提到 ValidLifetimeSec=,PreferredLifetimeSec=。
    另外,sysctl -a| grep _lft 能看到,
    net.ipv6.conf.all.temp_prefered_lft = 86400
    net.ipv6.conf.all.temp_valid_lft = 604800
    net.ipv6.conf.default.temp_prefered_lft = 86400
    net.ipv6.conf.default.temp_valid_lft = 604800
    但 eui64实际的 valid_lft 远小于 604800,prefered_lft 远大于 86400。
    对比 eui64地址的 lft,和路由器上 ipv6-prefix的 lft 基本一样,只差几秒。(2023-10测)
    可是,在路由上设置 IPv6 RA Settings -> RA Livetime 为 1800sec,对客户机eui64的两个 lft没影响。
    CentOS 或 Debian 修改之后。 systemctl restart NetworkManager 重启服务,即可生效。

    #network