ICMPv6介绍


ICMPv6消息

  • ICMPv6 是IPv6的基础协议之一。协议号58,该协议号在IPv6报头的“下一个包头”字段中
  • ICMP报文有两种:差错消息及信息消息

消息类型

image-20200328190751913

拓扑

R1
ipv un
int e0/0
ipv add 2012::1/64
no sh
ipv route ::/0 2012::2
===================
R2
ipv un
int e0/0
ipv add 2012::2/64
no sh
int s1/1
ipv add 2023::2/64
no sh
===================
R3
ipv un
int s1/1
ipv add 2023::3/64
no sh
ipv route ::/0 2023::2

检查连通性

R1#ping 2023::3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2023::3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 7/8/9 ms

无路由

R1#ping 2024::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2024::1, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)

地址不可达

R1#ping 2023::4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2023::4, timeout is 2 seconds:
HHHHH
Success rate is 0 percent (0/5)

管理原因禁止访问

R2(config)#ipv6 access-list denyany
R2(config-ipv6-acl)#deny any any
R2(config-ipv6-acl)#int s1/1
R2(config-if)#ipv6 tr
R2(config-if)#ipv6 traffic-filter denyany out
R1#ping 2023::3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2023::3, timeout is 2 seconds:
AAAAA
Success rate is 0 percent (0/5)

PMTUD

  • PMTU就是路径上的最小接口MTU。
  • IPv6的由源节点自己对数据包进行分片。

IPv4分片

拓扑

R1#ping 3.3.3.3 size 2500        
Type escape sequence to abort.
Sending 5, 2500-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/5 ms

在ipv4中,如果一个数据超过了接口的mtu,那么会被瓶颈的网络设备进行分片

IPv6探测MTU

拓扑

完成环境的搭建及设备的基本配置,保证全网互通。
R1去ping R4,能够ping通。

R1#ping 2034::4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2034::4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/17 ms

修改R2的e0/1接口的MTU

R2(config)#int e0/1
R2(config-if)#ipv6 mtu 1400

在R2上查看接口的MTU

R2#sh ipv6 int e0/1
  MTU is 1400 bytes

在R1上ping一下

R1#ping 2034::4 re 1 size 1500
Type escape sequence to abort.
Sending 1, 1500-byte ICMP Echos to 2034::4, timeout is 2 seconds:
B
Success rate is 0 percent (0/1)

此刻R1已经学到了这条路线上最小的MTU

R1#show ipv6 mtu
 MTU     Since    Source Address      Destination Address
1400    00:00:08  2012::1             2034::4

NDP邻居发现协议

NDP可以帮助我们实现以下功能

  • 地址解析(代替ARP协议,使用ICMP完成地址解析)
  • 邻居的状态跟踪
  • 无状态自动配置
  • 重复地址检测(DAD)
  • 前缀重编址
  • 路由器重定向

ICMPv6 for NDP

ICMPv6 Type 消息名称
133 路由器请求(RS)
134 路由器通告(RA)
135 邻居请求(NS)
136 邻居通告(NA)
137 重定向消息

NDP机制使用的ICMPv6消息

机制 RS133 RA134 NS135 NA136 重定向消息137
报文介绍 主机可以发送RS要求路由器立即产生RA 包含MTU、前缀信息等 用来判断邻居的链路层地址,也用于DAD等
替代ARP
前缀通告
前缀重新编址
DAD
路由重定向

地址解析

拓扑

R1#ping 2012::2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2012::2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/4/17 ms

R1从e0/0接口发出了一个NS消息,报文如下

R2的e0/0接口正在监听ff02::1:ff00:2这个组播地址

R2#show ipv int e0/0
  Joined group address(es):
    FF02::1
    FF02::1:FF00:2
    FF02::1:FF00:2000

R2收到之后进行回复,报文如下

R1收到了之后,将R2的mac地址信息记录到IPv6的邻居表中

R1#show ipv6 neighbors 
IPv6 Address                              Age Link-layer Addr State Interface
2012::2                                     4 aabb.cc00.2000  STALE Et0/0
FE80::A8BB:CCFF:FE00:2000                   4 aabb.cc00.2000  STALE Et0/0

注意到报文中的Flag字段

  • R位置1表示这是台路由器
  • S位置1表示这是响应某个邻居请求的通告,置0则为主动发送的
  • O位置1表示NA消息中的条目是否覆盖已有,收到该消息的邻居会覆盖已有条目

邻居状态

  • Incomplete 邻居请求已经发送到目标节点的请求组播地址,但没有收到邻居的通告
  • Reachable 可达,收到确认,不续再发包确认
  • Stale 从收到上一次可达性确认后过了超过30s
  • Delay 在stale状态后发送过一个报文,并且5s内没有可达性确认
  • Probe 每隔1s重传邻居请求来主动请求可达性确认,直到收到确认
  1. A发送NS,并生成缓存条目,状态为Incomplete
  2. 若B回复NA,则Incomplete ->Reachable。否则10S后Incomplete->Empty,即删除条目
  3. 经过ReachableTime(默认30S),B的条目状态Reachable->stale,或者在Reachable状态,收到B的非请求NA,且链路层地址不同,则马上->stale
  4. 在Stale状态若A要向B发送数据,并从Stale->Delay,等待应用层的提示信息,提示邻居可达
  5. 在Delay_First_Probe_Time(默认5S)内,若有NA应答或者应用层的提示信息,则Delay->Reachable,无应用层提示信息,Delay->Probe
  6. 在Probe状态,每隔RetransTimer(默认1S)发送单播NS,发送MAX_Unicast_Solicit个后再等RetransTimer,有应答则Reachable,无则进入Empty,即删除条目

测试命令debug ipv6 nd

DAD(Duplicate Address Detection)

节点向一个自己将使用的tentative地址所对应的Solicited-Node组播地址发送一个NS,如果收到某个其他站点回应的NA,就证明该地址已被网络上使用,节点将不能使用该tentative地址通讯。

如果1S后没有检测到冲突,A就会发送non-solicited advertisement(一个NA消息),宣告大家我将正式使用这个IPv6地址。


文章作者: AaronXu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AaronXu !
评论
 上一篇
bgp简介 bgp简介
AS 属于同一个组织管理下的网络集合称为自制系统 一个自制系统往往具有相同的路由管理规范和策略 AS通过不同的AS号进行区分,AS号范围原本范围是0-65535,后来进行扩展0-2^32^ 中国电信163 AS号:4134 中国电信CN2
下一篇 
IPv6概念 IPv6概念
IPv6特点 128bits的地址方案,为未来数十年提供了巨大的IP地址空间 多等级层次有助于路由聚合,提高了因特网网络路由的效率及可扩展性 自动配置过程允许IPv6网络中的节点更加便捷的接入IPv6网络 重新编址机制使得IPv6提供商之间
  目录