IPV6 NDP协议/IPV6 ICMP重定向

(NDP 全称(Neighbor Discovery Protocol)邻居发现协议
主要内容有 分为 NS/NA ,RS/RA消息

一.NS/NA

1.1 介绍
用于三层ipv6地址与二层mac地址映射关系(替代IPv4 ARP)
用于DAD(Duplicate Address Detect)IP地址冲突检测 类似于IPv4的-garp(免费ARP)

Neighbor Solicitation ( ICMPv6 Type 135)
Neighbor Advertisement ( ICMPv6 Type 136)

1.2 冲突检测过程(DAD)
当一个接口配置了ip地址,那么他会发送一个RA消息
NS消息的源地址为接口ip地址或者为(::)目的地址是一个被请求节点组播地址
内容是谁在使用这个ipv6地址你的mac是多少
被请求节点地址计算;
被请求节点前102bit固定为 FF02::1:FF
后24bit则直接使用要请求的IPv6地址的后24bit即可

1.3 DAD抓包实验 ,验证

R1(config-if)#ipv6 enable 

我在一台路由器接口启用了ipv6功能,他自己生成了一个link-locl地址并且发出了NS消息
在这里插入图片描述
上图是抓到的NS消息
源mac地址是接口的mac地址,目的mac地址是 33:33:FF:0C:00:00 这是一个组播mac地址
33:33为固定,后32bit直接使用组播ip地址的后32bit也就是 FF:0C:00:00
内容为要请求的ip地址,其实就是自己的link-locl地址

如果不存在ip地址冲突,路由器自己会给自己回复一个NA消息
在这里插入图片描述
源ip就是自己的link-locl地址
目的ip地址为 FF02::1是一个所有设备都可以接收到的ip地址
源mac就是自己的接口mac地址,目的mac就是目的组播地址转换的mac地址
内容是 ip地址与mac地址的对应关系

总结;
1.NS–发送一个目的为自己接口ip的请求包,请求mac,
2.NA–回复NS,如果回复包里面的mac不是自己接口的mac说明有其他人回复,那证明这个地址冲突
3.还有注意的一点,DAD过程中NS消息发送的目的ip地址是所有的设备,其中包含了ip与mac的映射关系,当其他路由器收到这个NS后,并不会记录,因为这个NS就是为了冲突检测来使用的
如果真的存在ip地址冲突,并且这个NS被别人记录了这也是没有任何意义的

1.4 MAC地址请求,实验
给两台设备配置上ip地址,当两台设备都不知道对方mac地址的情况下
ping对方的ip,那么会发生NS请求包如下

NS请求
在这里插入图片描述
源地址为接口的ip地址,目的ip地址为请求节点组播地址
内容包括自己的mac地址与要请求的ip地址

NA回复
在这里插入图片描述
NA回复的时候使用单播回复,与DAD的时候不同
也包含了ip与mac的映射关系

映射表老化时间(Age)默认为14400秒(4小时),(相当于IPV4的ARP缓存表)

ipv6 nd cache expire [time]  :修改(表项中时间显示以分钟为单位)
show ipv6 neighbor ;可以查看ipv6地址与mac映射表
clear ipv6 neighbor;清除映射表
 ipv6 neighbor [ipv6 address] [interface] [mac] ;手工建立映射表 

二.RS/RA

Router Solicitation ( ICMPv6 Type 133 )
Router Advertisement ( ICMPv6 Type 134 )

2.1 RS消息
在这里插入图片描述
RS消息只能通过Auto Configuration产生,目的在于获取IPv6地址的前缀
RS消息一本地link local地址为源,组播地址 FF02:2为目的,发送给本网段内的所有路由器

2.2 RA消息
在这里插入图片描述
RA消息在路由器启动ipv6 unicast-routing以后周期性产生 ,并且在收到RS的时候也会回应
并且只能在ma网络上产生。
可以通过接口命令 Ipv6 nd ra suppress 或 ipv6 nd suppress-ra 来抑制发送RA消息
RA Message以本地的Link Local地址为源,保留组播地址FF02::1为目的
保证本子网内所有设备都可以收到.

消息中包含了本地的二层地址信息.,还包括了本地接口的所有IPv6地址前缀.
收到RA消息的设备会将源地址与对应的二层地址形成映射关系放入缓存表
成为自己的ipv6 neighbor ,之后将ra消息内的前缀设置成自己接口的前缀也就是前64位,
再利用EUI-64产生自己的接口ID(后64位),从而完成自动ip地址配置
这种配置方法称之为,无状态自动配置

注意;
1.若路由器设备接口上存在多个ipv6地址,则所有地址前缀都会包含在一个RA里
2.如果前缀掩码不是64,则对端无法自动产生IPv6地址.但是可以在路由 表产生一条ND的默认路由
3.通过Auto Configuration产生地址的设备,如果没有开启ipv6 unicast-routing,则将收到的RA消息的源地址作为本地网关,并自动产生一条ND路由 ::/0 指向RA的源地址
如果开启了 ipv6 unicast-routing,则不会生成 默认路由
如果想生成则添加default命令 * ipv6 address autoconfig default
4.如果同时收到了多个RA消息,那么第一个收到的RA消息会作为源地址会作为本地的网关或者路由下一跳
可以通过接口命令:ipv6 nd router-preference [high 丨 medium 丨 low] 来设 置路由器作为网关的优先级别,默认为medium.
5.发送RS消息还可以 接口下命令:ipv6 nd autoconfig default-route :发送NS请求
这种方法主要是为了获取默认路由,当我们使用手工配置时,可能需要这条命令
这种方法配置时当设备收到RA时,只会生成默认路由,不会生成ip地址
6.自动生成默认路由的情况,可能在GNS3会实验失败,实测,建议使用EVE实验

**

三、NDP的计时器

**
1.RA消息默认 200秒 固定频率发送一次(实际测试不到200S)
2.valid lifetime(有效生存周期 );默认为 2592000秒
preferred lifetime (推荐生存周期);默认为604800秒
当推荐生存周期没有到之前,这个地址可以访问别人或者被访问
如果推荐生存周期到了,有效生存周期没到,那么这个地址只可以被访问,不能主动访问别人
当有效生存周期也到了,那么代表这个地址已经失效
这两个计时器存于RA消息里,存放于前缀Opeion里面
在这里插入图片描述
当设备收到后,将这个两个计时器连带前缀生成一个ip地址,并且挂存在这个地址上
可以通过查看ipv6接口参数看到
在这里插入图片描述
注意;只有通过autuconfig获取的ip地址才有这个计时器,手工配置的则没有
当有人访问这个接口的时候,那么这两个计时器就会刷新。
可以通过 接口 ipv6 nd prefix [网段前缀】 【valid lifetime】 【preferred lifetime】
修改计时器值,只在ra发送设备上修改有效

四.ICMP重定向

4.1 IPV4环境
在这里插入图片描述
4.2 IPv4的重定向
A触发ICMP重定向给PC1发送重定向消息,告诉去往PC去往3.3.3.3是最优的路径
在这里插入图片描述
并且A也会转发这个ICMP数据包

4.3 IPv6的重定向
ICMPv6 Redirect Message ( ICMPv6 Type 137 )
IPV6的重定向不同的是,A不会给主机转发数据包,并且会把这个数据包封装在重定向数据包里面
发会给PC,PC收到后重新查询IPv6路由表,发送数据
在这里插入图片描述

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值