使用SLAAC添加全球IPv6地址

无状态地址自动configuration允许链路上的节点通过将其接口标识符(64位)附加到由路由器通告的前缀(64位)来自动configuration全球IPv6地址。

让我们假设我有一台全球IPv6地址的服务器

2001:0db8:85a3:08d3:1319:8a2e:0370:7347 

现在我想通过更改接口标识符并保留前缀,将另一个全局IPv6地址添加到同一个接口。 例如

 2001:0db8:85a3:08d3:3315:2b5e:a320:3254 -------same--------|-----different----- 

我怎样才能使用SLAAC,接口标识符自动附加到networking前缀? 我目前正在使用Ubuntu。

(这与IPv6隐私扩展的function类似,但是我想控制自己添加和删除临时IPv6地址。)

目前,我不知道任何手动导致系统切换到一个新的临时地址的方法。

但是,您可以调整使用临时地址的时间段,并使系统更频繁地创build临时地址。

从内核文档 :

 temp_valid_lft - INTEGER valid lifetime (in seconds) for temporary addresses. Default: 604800 (7 days) temp_prefered_lft - INTEGER Preferred lifetime (in seconds) for temporary addresses. Default: 86400 (1 day) 

(是的,拼写错误是故意的…)

所以,让我们说你希望系统每10分钟开始一个新的临时地址。 您将然后设置:

 sysctl net.ipv6.conf.all.temp_prefered_lft=600 sysctl net.ipv6.conf.default.temp_prefered_lft=600 

另一个 sysctl temp_valid_lft允许使用临时地址完成现有连接的额外时间。 你也可以减less这个,特别是如果你不预期长时间连接。 这里我把它缩小到1小时:

 sysctl net.ipv6.conf.all.temp_valid_lft=3600 sysctl net.ipv6.conf.default.temp_valid_lft=3600 

隐私扩展正是你在找什么。 你只是想对它们进行一些手动控制。 您可以通过使用ip address命令来操作到期和生成。 ip-address手册页说:

mngtmpaddr(仅限于IPv6)使内核pipe理临时地址作为隐私扩展(RFC3041)的代名词模板。 要使其成为活动状态,必须将use_tempaddr sysctl设置设置为大于零的值。 给定地址的前缀长度必须为64.该标志允许在手动configuration的networking中使用隐私扩展,就像无状态自动configuration处于活动状态一样。