ICMPv6

一、机制概述:
       1、 报文分类
                 回送请求报文:发送到目标节点,以使目标立即回复一个应答报文
                 回送应答报文:对请求报文的回应
            差错报文分类
                  目的不可达报文 :无法被转发到目标节点
                  数据包过大  :报文超过出接口MTU
                  时间超时错误报文 :Hop milit 字段为0  
                                                   分段重组报文超时
                  参数错误报文  : 报头出错或者扩展报头错误
       2、邻居发现地址解析
                      地址解析类似于IPv4中的ARP协议
                              基于ICMPv6实现
                              包括NS和NA报文  NS:type字段135 NA:type字段136
           IPv6地址解析实验:

       AR1的G0/0/0接口Mac地址为00e0-fc55-6d4d
       AR2的G0/0/0接口Mac地址为00e0-fca0-319a

测试:
AR1ping测试
 Ping ipv6 2001::2

NS邻居请求报文:
       AR1发送NS邻居请求报文  
             源mac地址为接口mac地址,目的mac地址为目标IP地址转换来的目标组播mac地址  33:33:FF固定不变,将后24为直接copy下来也就是将AR2的接口地址转换为mac地址,也就是33:33:FF:00:00:02

            源IP地址为AR1的出接口IP地址,目标IP地址为由对端IP地址生成的    被请求节点的组播IPv6地址
                  由前缀和最后24bit位组成
     报文为NS type为135 

AR2收到AR1发送的NS报文后,回应NA邻居通告报文
1、源mac地址为AR2的出接口mac地址
      目标mac地址为AR1的出接口mac地址
2、源IP地址为AR2出接口IP地址
      目标IP地址为AR1的出接口IP地址

报文为NA Type为136

以上是IPv6的地址解析过程,过程类似于IPv4 ARP地址解析过程 。

二、邻居发现重复地址检测DAD:
           类似与IPv4中的免费ARP进行IP地址冲突的检测。

由于2000::1并未正式指定,所以NS报文的源地址为未指定地址。
当PC2收到该NS报文后,有两种处理方法:

1、如果PC2发现2000::1是自身的一个试验地址,则PC2放弃使用这个地址作为接口地址,并且不会发送NA报文。

2、如果PC2发现2000::1是一个已经正常使用的地址,那么PC2会向该地址的ALL-NODES组播组发送一个NA报文,该消息中会包含2000::1。这样,PC1收到这个消息后就会发现自身的试验地址是重复的,从而弃用该地址。

            在进行DAD检测是,一个IPv6单播地址在分配给一个接口之后且通过重复地址检测之前称为试验地址(Tentative Address)。此时该接口不能使用这个试验地址进行单播通信,但是仍然会加入两个组播组:ALL-NODES组播组和试验地址所对应的Solicited-Node组播组。

            IPv6重复地址检测技术和IPv4中的免费ARP类似:
             节点向一个自己将使用的试验地址所在的Solicited-Node组播组发送一个以该试验地址为请求的目标地址的NS报文,如果收到某  个其他站点回应的NA报文,就证明该地址已被网络上使用,节点将不能使用该试验地址通讯。

三、IPv6重复地址检测实验:

AR1接口mac地址为00e0-fca9-406a
AR2接口mac地址为00e0-fc10-55c4
AR1接口先配置IPv6地址,AR2后配置IPv6地址:
实验过程如下:
1、AR2会发送一个NS报文,报文中携带以目的地址为自己G0/0/0接口mac地址生成的被请求节点组播mac地址,源地址为自己接口的mac地址
 源IP为 ::(::)
目的IP为 由自己接口的mac地址生成的 ,被请求节点组播ipv6地址。

2、AR2发送第二个NS报文:
源mac地址为自己接口的mac地址,目的mac地址为由自己接口ipv6地址生成的组播mac地址
源ip地址为::(::) ,目的ip地址为由自己接口的ipv6地址生成的被请求节点组播ipv6地址。

3、当AR1收到NS报文后,会回复一个NA报文,其中
源mac地址为自己接口的mac地址,目的mac地址为自己接口ipv6地址生成的组播mac地址
源ip地址为自己接口的IPv6地址,目的ipv6地址为,由自己接口ipv6地址生成的被请求节点组播ipv6地址。


4、当AR2收到后会将该地址设置为DUPLICATE重复,不能使用 .

四、邻居发现-路由发现
     在IPv6中可以支持无状态自动配置,及主机通过某种机制进行获取网络前缀信息,然后主机自己生成地址接口标识,主要通过以下两种报文实现:
      路由器通告报文RA(Route Adevertisement),
每台路由器为了让2层的主机知道自己在哪,然后会周期组播发送RA报文,RA报文中携带网络前缀,以及其它一些标志位信息。
      路由器请求报文RS(Route Solicitation),
很多情况下主机接入网络后希望尽快获取网络前缀地址,此时主机会主动发送RS报文, 网络上的路由器回应RA报文。

五、IPv6主机无状态自动配置过程:
               1、根据接口标识产生链路本地地址。
               2、发出邻居请求,进行重复地址检测。
               3、如果地址冲突,则停止自动配置,需手动配置。
               4、如果地址不冲突,则本地链路地址生效,节点具备本地链路通信能力。
               5、主机会发送RS报文,(或接收到路由器周期发送的RA报文)默认4分25秒
               6、根据RA报文提供的网络前缀和通过EUI-64规范生成的接口标识组成IPv6地址。

六、邻居发现-重定向
           在同一网段中,如果路由器发现有更近的路径是,会回应PC重定向报文,让PC直接访问最近的路路由器。


 

1、客户端访问服务器,先去网关,
2、网关会回应PC重定向报文,可以直接去往最近的路由器,去往访问服务器
3、客户端收到后直接去往最近的路由器去访问服务器

七、PMTU
报文分片在源节点进行

PMTU协议是通过ICMPv6的Packet Too Big报文来完成的。
首先源节点假设PMTU就是其出接口的MTU,发出一个试探性的报文,当转发路径上存在一个小于当前假设的PMTU时,转发设备就会向源节点发送Packet Too Big报文,并且携带自己的MTU值,此后源节点将PMTU的假设值更改为新收到的MTU值继续发送报文。
如此反复,直到报文到达目的地之后,源节点就能知道到达目的地的PMTU了。 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值