V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
acbot
V2EX  ›  Linux

Linux 能否实现 Windows 临时 IPv6 地址

  •  
  •   acbot · 2022-02-22 06:27:11 +08:00 · 4597 次点击
    这是一个创建于 987 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Windows 系统开启 v6 协议后 会在系统中生成 IPv6 地址 和 临时 IPv6 地址两个地址,对外访问的时候使用临时 IPv6 地址,外面对内访问的时候两个地址都可以用,我看 Linux 系统都下只有一个 IPv6 地址,不知道临时 IPv6 地址这个功能能否实现?

    第 1 条附言  ·  2022-02-23 09:38:33 +08:00
    上面可能我没太描述清楚:SLAAC 模式下 Linux 生成相对固定后缀和随机后缀两个模式地址同时存在在一个网卡上。
    第 2 条附言  ·  2022-02-25 09:47:51 +08:00
    参考 #9 修改后达到预期了 nmcli connection modify *** ipv6.ip6-privacy 2

    上面的命令执行后,我看是在 /etc/sysconfig/network-scripts/ifcfg-*** 文件中增加了 IPV6_PRIVACY=rfc3041 参数,所以应该直接增加参数也是可以的
    17 条回复    2022-02-26 00:38:06 +08:00
    duke807
        1
    duke807  
       2022-02-22 06:34:04 +08:00 via Android   ❤️ 1
    一個網路接口可以支持很多個 IP 地址是 IPv6 特有的特性,和用什麼操作系統沒什麼關係

    至於你問的問題,不用想就知道可以實現
    acbot
        2
    acbot  
    OP
       2022-02-22 07:31:37 +08:00
    @duke807 理论上是这样的,我只知道手动可以配置多个固定地址,但是我不知道 SLAAC 或者是 DHCPv6 模式下 Linux 系统如何配置才能获取到临时地址,一个相对固定后缀的地址。
    kuichieh
        3
    kuichieh  
       2022-02-22 08:47:59 +08:00 via Android
    搜索关键词 IPv6 Privacy
    Love4Taylor
        4
    Love4Taylor  
       2022-02-22 08:56:41 +08:00 via iPhone
    net.ipv6.conf.all.use_tempaddr

    另外我不懂,为啥请你都要用临时地址了还要固定
    jtshs256
        5
    jtshs256  
       2022-02-22 08:57:08 +08:00 via iPhone
    net.ipv6.conf.xxx.use_tempaddr=2
    Love4Taylor
        6
    Love4Taylor  
       2022-02-22 08:59:41 +08:00 via iPhone
    @Love4Taylor 另外 arch wiki 其实是真的很好用的
    https://wiki.archlinux.org/title/IPv6
    acbot
        7
    acbot  
    OP
       2022-02-22 10:02:09 +08:00
    @Love4Taylor 类似 windows 系统的策略 对外访问(比如:上网 下载更新)使用临时地址; 系统对外开放服务(比如: http )用固定地址
    acbot
        8
    acbot  
    OP
       2022-02-22 10:04:11 +08:00
    @jtshs256 谢谢,我试试这个仅仅是生成两个临时地址吗,还是我可以同时让这两个临时地址在不同的策略下生成,并且指定一个地址默认 比如:一个随机后缀 一个固定后缀
    raysonx
        9
    raysonx  
       2022-02-22 13:25:18 +08:00
    你用的什么发行版?不同发行版默认使用的网络配置工具不一样。比如 Debian 和 Fedora 的桌面版默认用的 NetworkManager ,可以用下面的命令开启(假设连接名称是 eth0 ):

    nmcli connection modify eth0 ipv6.ip6-privacy prefer-temp-addr
    acbot
        10
    acbot  
    OP
       2022-02-22 13:43:45 +08:00
    @raysonx 平常用 ubuntu 和 centos 多
    qakito
        11
    qakito  
       2022-02-23 08:54:27 +08:00
    在 SLAAC 中,作为 IPv6 host 可以通过 RS/RA 学习 IPv6 前缀以及默认网关
    通过 IPv6 前缀生成 IPv6 地址的方式有
    EUI64 对于 ethernet 来说,就是通过 mac 地址变换得到,为固定地址
    临时地址

    这个就看 linux kernel 对 IPv6 SLAAC 的支持程度了
    acbot
        12
    acbot  
    OP
       2022-02-23 09:33:56 +08:00
    @qakito 可能是我没有描述清楚,实际上我得需求不是选择或者是配置某一种模式,而是一个网卡能不能两种模式同时存在。
    qbqbqbqb
        13
    qbqbqbqb  
       2022-02-23 11:51:55 +08:00
    @acbot 开启隐私扩展后就是两者同时存在的。

    不开隐私扩展时只有固定地址,开隐私扩展后同时有固定地址和临时地址。不存在只有临时地址的情况。
    acbot
        14
    acbot  
    OP
       2022-02-24 11:16:46 +08:00
    @jtshs256
    @qbqbqbqb

    net.ipv6.conf.all.use_tempaddr = 2
    net.ipv6.conf.default.use_tempaddr = 2

    在 ubuntu 和 centos 都没有成功 ifconfig -a 和 ip -6 add show 系统还是显示一个地址 把值改成 1 也是一样 甚至尝试下面的参数 都无效

    net.ipv6.conf.default.accept_ra=2
    net.ipv6.conf.all.accept_ra=2

    不知道问题出在哪里
    jtshs256
        15
    jtshs256  
       2022-02-24 21:48:59 +08:00
    出在系统用的 systemd 的 networkd……IPv6PrivacyExtensions=yes
    acbot
        16
    acbot  
    OP
       2022-02-25 09:51:51 +08:00
    @jtshs256 谢谢,其实我一直没怎么明白 linux 网络管理配置 NetworkManager / networkd / “/etc/sysconfig/network-scripts/ifcfg-***” 和 net.ipv6.conf.all.use_tempaddr 这种修改内核的方式 他们之前的区别联系是什么 这么多配置方式容易让人糊涂
    qbqbqbqb
        17
    qbqbqbqb  
       2022-02-26 00:38:06 +08:00
    @acbot
    SLAAC 是内核直接支持的,不像 DHCP 必须启动客户端软件,即使不用任何网络配置工具,内核也会自动配置 IPv6 SLAAC. 修改内核参数其实就是修改内核默认的 SLAAC 行为。

    用 sysctl 命令修改 net.ipv6.conf.all.use_tempaddr ,就像用 ifconfig 或者 ip addr 命令设置静态 ip 一样,是不持久的,重启丢失(除非你写到 sysctl.conf 里)。通过网络配置工具来配置,可以在以后开机的时候自动生效。本质上也是网络配置工具帮你改了内核设置。

    用网络配置工具来配置这个设置(而不是用 sysctl.conf 配置 net.ipv6.conf.all.use_tempaddr )的另一个好处就是可以统一在一个地方配置 IPv4 和 IPv6.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3184 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:41 · PVG 20:41 · LAX 04:41 · JFK 07:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.