笔记08:IPv6地址配置方法二——无状态地址自动配置SLAAC

手动静态配置IPv6的方式比较合适于需要固定地址的服务器、路由器、交换机等。对于一般主机,自动配置IPv6地址则更显方便。自动配置IPv6地址方式主要分为无状态和有状态。

其中无状态地址自动配置SLAAC是一种简单的IPv6地址配置方式,支持几乎所有的网络终端。其缺点是:

  • 路由器网关或服务器不记录分配给客户机的IPv6地址信息,不利于管理;
  • 不能为指定终端分配固定的IPv6地址;
  • 客户机只能获得可通信的全局IPv6地址,不能获取到诸如IPv6DNS等其他信息。

注:

无状态:是指负责地址分配的网关或服务器不会记录客户获得的IPv6地址,只在RA报文中携带前缀信息选项通告给客户端。该方式的缺点是不利于进行溯源。

无状态地址自动配置过程

IPv6设备能够自动为每个接口配置链路本地地址。通过路由器发现技术——交换RS和RA报文,设备即可确定邻居节点路由器的地址、链路上的前缀、无状态地址以及其他设置参数。路由器通告消息中包含的一些标志作用是:表明是否需要为额外的配置使用地址配置协议(如DHCPv6)。

无状态地址自动配置机制及过程大致如图1

笔记08:IPv6地址配置方法二——无状态地址自动配置SLAAC

图1

  1. 接口启用IPv6协议后,将使用fe80::/64前缀和接口标识符构建一个临时状态的链路本地地址。(接口标识符可以随机生成,也可以基于EUI-64格式,看是否禁止了随机生成接口标识符功能)
  2. 主机发送NS报文(报文中的目标地址设置为上面生成的链路本地地址)对该临时的链路本地地址进行DAD。
  3. 如果该接口收到响应NS报文的NA报文,则表明该临时的链路本地地址重复了,需重新生成链路本地地址并进行DAD。
  4. 如果没有收到NA响应报文,则说明该临时链路本地地址是唯一的,将在接口上把该地址的状态更改为选用状态
  5. 主机发送RS报文,源地址是上面通过DAD的链路本地地址,目的地址是FF02::2。
  6. 主机如果没收到RA报文,则使用DHCPv6配置地址——向DHCPv6服务器(组播地址FF02::1:2)或中继(组播地址FF05::1:3)发送DHCPv6请求报文,以完成地址配置。
  7. 如果收到RA报文,则检查RA报文中的“路由器生存时间”字段,如果值不为0,则将RA发送方设为自己的默认网关。
  8. 检查RA报文中的管理地址配置标志(M位),如是1,则使用DHCPv6配置地址。
  9. 检查RA报文中的其他状态化配置标志(O位),如是1,则采用DHCPv6获取地址外的其他参数信息。
  10. 检查RA报文,是否携带前缀信息,如果有,主机将提取RA报文中所有的前缀。
  11. 检查前缀中的链路上标志(L位),如是1(On-link),将该前缀加入自己的前缀列表(路由表)中。
  12. 检查前缀中的自治标志(A位),如是1,将进行无状态自动地址配置。
  13. 对临时IPv6地址做DAD,如果通过检测,则将地址状态转成首选状态。
  14. 继续检查前缀列表中每一个前缀的自治标志(A位),如是1,则生成随机的或基于EUI-64格式的接口标识符,加上对应的前缀构成临时状态的公用IPv6地址并进行DAD。

注:

  • 无状态自动配置的地址可与有状态DHCPv6自动配置的地址并存。
  • 无状态自动配置的地址的首选优先级一般高于有状态DHCPv6配置的地址。

自动配置地址的状态

自动配置地址存在以下几种状态,如图2。

笔记08:IPv6地址配置方法二——无状态地址自动配置SLAAC

图2

  • 试探(Tentative): 该地址正处于验证唯一性的过程中。验证通过DAD来实现的。处于此状态的地址无法接收单播流量,但可以接收和处理DAD的组播NA响应消息。
  • 选用(Preferred): 该地址的唯一性已经被验证,是有效的地址,并且可用于实现不受限制的通信。节点可以发送和接收从选用地址出入的单播流量。通过“路由器通告”消息中“前缀信息”可选项中的“选用生存时间”字段或“DHCPv6 IA地址”可选项中的“选用生存时间”字段,可以判断出该地址处于试探和选用状态的时间周期。
  • 弃用(Deprecated): 该地址的唯一性已经被验证,是有效的地址,但是并不鼓励将它用于新的通信。现存的通信会话依旧可以使用弃用的地址。节点可以发送和接收从弃用地址出入的单播流量。
  • 有效(Valid): 该地址可以用于发送和接收单播流量。有效状态中包括选用(preferred)和弃用(deprecated)状态。通过“路由器通告”消息中“前缀信息”可选项的“有效生存时间”字段或“DHCPv6 IA(身份联系)地址”可选项中的有效生存时间字段,可以确定地址保持在试探、选用以及弃用状态的时间之和。
  • 无效(Invalid): 该地址已不再用于发送或接收单播流量。在有效生存时间到期后,地址就进入无效状态。

SLAAC配置

下面使用H3C的模拟器进行SLAAC配置IPv6地址,地址规划示例如图3拓扑:

笔记08:IPv6地址配置方法二——无状态地址自动配置SLAAC

图3

与《笔记07:IPv6地址配置方法一——手动静态配置》不同点在于,主要通过R2对PC2进行SLAAC配置。

一、路由器R1配置

# 进入全局配置模式
<H3C> system-view
# 修改主机名
[H3C] hostname R1
# 手工指定接口G6/1的全球单播地址。
[R1] interface gigabitethernet 6/1
[R1-GigabitEthernet6/1] ipv6 address 2001::1/64
# 手工指定接口G0/0的全球单播地址。
[R1-GigabitEthernet6/1] interface gigabitethernet 0/0
[R1-GigabitEthernet0/0] ipv6 address 2012::1/64
[R1-GigabitEthernet0/0] quit

二、路由器R2配置

# 进入全局配置模式
<H3C> system-view
# 修改主机名
[H3C] hostname R2
# 手工指定接口G6/1的全球单播地址,使能接口发布RA消息功能。
[R2] interface gigabitethernet 6/1
[R2-GigabitEthernet6/1] ipv6 address 2002::1/64
[R2-GigabitEthernet6/1] undo ipv6 nd ra halt
# 手工指定接口G0/0的全球单播地址。
[R2-GigabitEthernet6/1] interface gigabitethernet 0/0
[R2-GigabitEthernet0/0] ipv6 address 2012::2/64
[R2-GigabitEthernet0/0]
[R2-GigabitEthernet0/0] quit
# 手工配置IPv6静态路由。
[R2] ipv6 route-static 2001:: 64 2012::1
# 保存配置
[R2] save

注:在HCL5.9版中,缺省情况下,路由器的接口不会发布RA消息,需要手动打开。

三、PC1配置

# 进入全局配置模式
<H3C> system-view
# 修改主机名
[H3C] hostname PC1
# 手工指定接口G0/1的全球单播地址。
[PC1] interface gigabitethernet 0/1
[PC1-GigabitEthernet0/1] ipv6 address 2001::2/64
[PC1-GigabitEthernet0/1] quit
# 手工配置IPv6缺省路由。
[PC1] ipv6 route-static :: 0 2001::1
# 保存配置
[PC1] save

四、PC2配置

# 进入全局配置模式
<H3C> system-view
# 修改主机名
[H3C] hostname PC2
# 使能指定接口G0/1的地址自动配置。
[PC1] interface gigabitethernet 0/1
[PC1-GigabitEthernet0/1] ipv6 address auto
[PC1-GigabitEthernet0/1] quit
# 手工配置IPv6缺省路由。
[PC2] ipv6 route-static :: 0 2002::1
# 保存配置
[PC2] save

验证

一、查看接口信息和邻居状态

(一) 在PC2上查看,如下命令输出

  • 从第5~6行的IPv6地址可以看出:PC2与R2成为了邻居;状态由于没有数据传输,所以处于stale。
  • 从第11~14行可以看到:自动配置的链路本地地址、无状态自动配置的全球单播地址,以及相应的定时器。
  • 从第14~18行可以看到:加入的组播组。
  • 从第20~22行可以看到:ND的默认参数信息。
# 查看邻居状态
<PC2> display ipv6 neighbors all
Type: S-Static    D-Dynamic    O-Openflow     R-Rule    IS-Invalid static
IPv6 address                      MAC address       VID  Interface          State T    Aging
2002::1                               666d-5839-020f  --     GE0/1               STALE D   21
FE80::646D:58FF:FE39:20F  666d-5839-020f  --     GE0/1               STALE D  12
# 查看接口信息
<PC2>display ipv6 interface GigabitEthernet 0/1
GigabitEthernet0/1 current state: UP
Line protocol current state: UP
IPv6 is enabled, link-local address is FE80::8283:69FF:FEC0:306
  Global unicast address(es):
    2002::8283:69FF:FEC0:306, subnet is 2002::/64 [AUTOCFG]
      [valid lifetime 2591720s/preferred lifetime 604520s]
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FFC0:306
  MTU is 1500 bytes
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds
  ND retransmit interval is 1000 milliseconds

(二) 类似的在R2上查看,如下命令输出

  • 从第5~8行的IPv6地址可以看出:R2分别与R1、PC2成为了邻居;
  • 从第13~15行可以看到:自动配置的链路本地地址、手工配置的全球单播地址。
# 查看邻居状态
<R2>display ipv6 neighbors all
Type: S-Static    D-Dynamic    O-Openflow     R-Rule    IS-Invalid static
IPv6 address              MAC address    VID  Interface           State T  Aging
2012::1                   666d-4b28-0105 --   GE0/0               STALE D  914
FE80::646D:4BFF:FE28:105  666d-4b28-0105 --   GE0/0               STALE D  909
2002::8283:69FF:FEC0:306  8083-69c0-0306 --   GE6/1               STALE D  919
FE80::8283:69FF:FEC0:306  8083-69c0-0306 --   GE6/1               STALE D  909
# 查看接口信息
<R2>display ipv6 interface GigabitEthernet 6/1
GigabitEthernet6/1 current state: UP
Line protocol current state: UP
IPv6 is enabled, link-local address is FE80::646D:58FF:FE39:20F
  Global unicast address(es):
    2002::1, subnet is 2002::/64
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FF00:1
    FF02::1:FF39:20F
  MTU is 1500 bytes
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds
  ND retransmit interval is 1000 milliseconds
  ND advertised reachable time is 0 milliseconds
  ND advertised retransmit interval is 0 milliseconds
  ND router advertisements are sent every 600 seconds
  ND router advertisements live for 1800 seconds
  Hosts use stateless autoconfig for addresses

二、使用Ping测试PC2与PC1之间的互通性

(一) 在PC2上 ping PC1的手工配置的IPv6地址,结果如图4所示,可以ping通。

笔记08:IPv6地址配置方法二——无状态地址自动配置SLAAC

图4

(二) 在PC1上 ping PC2的自动配置的IPv6地址,结果如图5所示,可以ping通。

笔记08:IPv6地址配置方法二——无状态地址自动配置SLAAC

图5

从以上验证的结果来看,手工配置和自动配置的IP地址都没有问题。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共1条

请登录后发表评论