Windows 系统开启 v6 协议后 会在系统中生成 IPv6 地址 和 临时 IPv6 地址两个地址,对外访问的时候使用临时 IPv6 地址,外面对内访问的时候两个地址都可以用,我看 Linux 系统都下只有一个 IPv6 地址,不知道临时 IPv6 地址这个功能能否实现?
1
duke807 2022-02-22 06:34:04 +08:00 via Android 1
一個網路接口可以支持很多個 IP 地址是 IPv6 特有的特性,和用什麼操作系統沒什麼關係
至於你問的問題,不用想就知道可以實現 |
2
acbot OP @duke807 理论上是这样的,我只知道手动可以配置多个固定地址,但是我不知道 SLAAC 或者是 DHCPv6 模式下 Linux 系统如何配置才能获取到临时地址,一个相对固定后缀的地址。
|
3
kuichieh 2022-02-22 08:47:59 +08:00 via Android
搜索关键词 IPv6 Privacy
|
4
Love4Taylor 2022-02-22 08:56:41 +08:00 via iPhone
net.ipv6.conf.all.use_tempaddr
另外我不懂,为啥请你都要用临时地址了还要固定 |
5
jtshs256 2022-02-22 08:57:08 +08:00 via iPhone
net.ipv6.conf.xxx.use_tempaddr=2
|
6
Love4Taylor 2022-02-22 08:59:41 +08:00 via iPhone
|
7
acbot OP @Love4Taylor 类似 windows 系统的策略 对外访问(比如:上网 下载更新)使用临时地址; 系统对外开放服务(比如: http )用固定地址
|
8
acbot OP @jtshs256 谢谢,我试试这个仅仅是生成两个临时地址吗,还是我可以同时让这两个临时地址在不同的策略下生成,并且指定一个地址默认 比如:一个随机后缀 一个固定后缀
|
9
raysonx 2022-02-22 13:25:18 +08:00
你用的什么发行版?不同发行版默认使用的网络配置工具不一样。比如 Debian 和 Fedora 的桌面版默认用的 NetworkManager ,可以用下面的命令开启(假设连接名称是 eth0 ):
nmcli connection modify eth0 ipv6.ip6-privacy prefer-temp-addr |
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 的支持程度了 |
13
qbqbqbqb 2022-02-23 11:51:55 +08:00
|
14
acbot OP |
15
jtshs256 2022-02-24 21:48:59 +08:00
出在系统用的 systemd 的 networkd……IPv6PrivacyExtensions=yes
|
16
acbot OP @jtshs256 谢谢,其实我一直没怎么明白 linux 网络管理配置 NetworkManager / networkd / “/etc/sysconfig/network-scripts/ifcfg-***” 和 net.ipv6.conf.all.use_tempaddr 这种修改内核的方式 他们之前的区别联系是什么 这么多配置方式容易让人糊涂
|
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. |