当前位置:文档之家› H3C IPv6邻居发现经典讲义

H3C IPv6邻居发现经典讲义


无表项
有可达表项 获得可达信息
获得可达信息 报文发送 组装报文
地址解析
表项的清除方式
•目的缓存和邻居缓存: 邻居不可达检测机制保证无用表项的删除
没有必要周期性的清除目的和邻居缓存表项。尽管缓存表可能会不正确的保留 有陈旧的表项,但是邻居不可达检测机制能够保证在该不正确的表项被使用时 清除该表项。
•前缀列表和路由器列表:
请求发向单播地址,不打扰其他节点。如果发生变故 将收不到任何响应。
重定向功能
2002::3,把这个 包裹送到2001::1 那里,小心轻放。
2002::3为我提供 长期快递服务 (包月的),给 我媳妇2001::1寄 个包裹啥的也得 找它。
2001::1?让 2002::4送不是 更快?
2002::3,把这个 包裹送到2001::1 那里,小心轻放。
•目的缓存表(Destination Cache)
最近有流量发送的目的地址组成的表项,由重定向报文更新。
•前缀列表(Prefix List)
从路由器公告中接收到的前缀建立的表项,由路由器公告中提取。
•默认路由器列表(Default Router List)
本网段路由器组成的表项,从路由器公告中提取。
Type:4 IP header+data:触发该重定向消息的IP数据包的部分或全部,但要保 证重定向消息报文长度不超过1280字节。
MTU选项
Type:5
Length:1
MTU:链路推荐的MTU值
• • •
• • •
接口应保持的信息
•邻居缓存表(Neighbor Cache)
最近向其发送过流量的邻居组成的表项,由各种ND报文更新。
邻居缓存表
邻居缓存表项可能包含的信息
单播IP地址 链路层地址 IsRouter 标志位 0 报文队列 状态 3 邻居可达性 状态 incomplete 未被应该 的探针 0 下次邻居不可达 检测的时间 3 2002::1 0-0-1
邻居可达性状态的含义
未完成(INCOMPLETE):地址解析工作正在进行但是还没有获得链路层地址。 可达(REACHABLE):最近可达,几十秒钟之前邻居已经可达。 陈旧(STALE):不再知道邻居的可达性,但是如果没有报文发送到该邻居,主机 不会尝试验证该邻居可达性。 延迟(DELAY):邻居可达性未知,但最近有流量发送到邻居。延迟发送探针要比 马上发送好一些,能够给上层协议一个提供可达性确认的机会。 探测(PROBE):邻居可达性未知,正在发送邻居请求探针以确认可达性。
IPv6邻居发现
华为3Com技术有限公司
• • •
• • •
• • •
• • •
路由器发现功能
我是一个路由器 咦呀咦呀呦 到点了! 该遛遛嗓子了 (周期发送) 我是一个路由器 咦呀咦呀呦 (路由器公告)
原来你这家伙是 路由器啊,好, 我记住你了。 (真的记了的)
FF01::1 我是一个路由器
不知道你人品是 否可靠,需要用 你之前我还得进 行可达性检测。
M bit:地址配置管理位(是否有状态配置)
邻居请求(Neighbor Solicitation)
SIP:本节点被指定的接口地址或未指定地址 DIP:目标的单播IP地址或者被请求节点多播 ICMP type:135 Target Address:被请求目标的单播IP地址
Options: 源链路层地址,请求发送者的链路层地 址,源IP为未指定单播地址时不应使用,目 的IP为被请求节点多播时必须使用。
按照生存期定时删除无用表项
生存期超时之前,节点应该在默认路由器列表和前缀列表中保持表项,但是如 果存储空间不足,表项有可能提前被过早的认为成为无用表项。如果不能保持 默认路由器列表中的所有路由器,只要应该保持两条表项,以便为非本地直连 的目的地址提供良好的连通性,当然,越多越好。
• • •
• • •
主要用途
•定位邻居路由器 •学习前缀 •配置自动地址配置参数 报文要求
•跳数限制必为255;ICMP校验和正确;ICMP代码字段为0;ICMP长度最小8字节;选项 长度大于0 •如果主机收到路由器请求应该静静丢弃 •如果路由器请求源IP地址为未指定地址,则必不能包含源链路层地址选项 •路由器公告源IP必为本地链路地址,同路由器发送的重定向消息相同,源地址使用 本地链路地址有利于主机唯一标识路由器
重定向(Redirect)
SIP:发送接口的本地链路地址
Target Address:更好的下一跳 Dest Address:被重定向的报文的目的地址 Options:目标链路层地址,重定向头
DIP:触发重定向的报文的源地址
ICMP Type:137
选项(Option)
Option Name Source Link-Layer Address Target Link-Layer Address Prefix Information Redirected Header MTU
主机的报文发送
下一跳决策过程 进入发送过程 查找目的缓存 有表项,得到 下一跳IP地址 未查到表项 目的非直连邻居 查找前缀列表 查路由器列表 目的为直连, 目的即下一跳 查找邻居缓存 选择默认路由 器作下一跳 有陈旧表项 可达性检测
•图中所示粗线部分为表项齐全所 有节点正常时的流程
•下一跳决策的结果和重定向的结 果将保存到目的缓存中 •如果下一跳被可达性检测机制发 现错误,则重新做下一跳决策切换 到新的下一跳并更新目的缓存 •多播报文认为下一跳永远就是目 的地址且On-link •如果默认路由器列表为空则认为 目的地址On-link,即下一跳
前缀信息选项
Type:3
Length:4(32字节)
Valid Lifetime:用于On-link判断的时间 Preferred Lifetime:首选使用该前缀进行无 状态配置的时间 Prefix:IP前缀
L bit:此前缀是否用于判断地址是否直连 A bit:此前缀是否可用于自动地址配置
重定向头选项
找我啊?以后用 这个地址(单播 MAC地址)联 系我吧。
地址解析功能相当于IPv4的ARP协议。其实除了地址解 析外,下一跳决策也用到了部分邻居发现协议,就如 同路由查找后要查找ARP表,而重复地址检测就是地址 解析的一个特例,一如ARP和免费ARP的关系。
2002::3,你好, 我是2002::1,我 的MAC是0-0-1,你 的呢?盼复。
邻居发现报文提供如下选项辅助报文完成功能
•源链路层地址(Source Link-Layer Address)
•目标链路层地址(Target Link-Layer Address)
•前缀信息(Prefix Information) •重定向头(Redirected Header) •最大传输单元(MTU)
2002::3,你好, 我是2002::1,我 的MAC是0-0-1,你 的呢?盼复。
谁是2002::3啊? 我只将请求发给你 (被请求节点多播 MAC),收到的 话要回我噢。
2002::3,你好, 我是2002::1,我 的MAC是0-0-1,你 的呢?盼复。 2002::1,你好,我 是2002::3,我的 MAC是0-0-3。(我 只将秘密告诉你)
Байду номын сангаас
所有功能都是由如下五种ICMPv6报文提供的
•路由器请求(Router Solicitation)
•路由器公告(Router Advertisement)
•邻居请求(Neighbor Solicitation) •邻居公告(Neighbor Advertisement) •重定向(Redirect Message)
咦呀咦呀呦
前缀发现及参数传播功能
在我的地盘你就 得听我的: 本网段前缀为 2002::/64、MTU 为1280、hop limit 为128、DHCP方 式分配地址。 前缀、MTU、hop limit、地址自动配 置方式
人在屋檐下, 不得不低头啊, OK,我遵循对 我发送报文的 跳数和MTU的 限制,如果你 要求使用DHCP, 我决不搞无状 态配置。
Type 1 2 3 4 5
源/目标链路层地址选项
源/目标链路层地址选项的格式非常简单,除了已经定义的Type荷Length外,VALUE部分 即为链路层地址,仅有这一个字段。源链路层地址选项包含报文发送者的链路层地址, 用于邻居请求、路由器请求、路由器公告。目标链路层地址选项包含目标的链路层地址。 用于邻居通告和重定向。
前缀、MTU、hop limit、地址自动配置 方式(路由器公告) 原来我在这个网 络里啊,好,我 把接口配置为这 个网段的地址。
前缀、MTU、hop limit、地址自动配 置方式(是否使用 无状态自动配置)
地址解析功能
(如果收上来了) 2002::3?不是我, 不关我事。 多一事不如少一事, 偷着扔了吧
邻居不可达检测功能
2002::2,你还在 0-0-2吗,我这张 旧船票还能否登上 你的破船?
地图显示2002::2 层住在0-0-2 (有 不可靠的旧表项), 不知道地图是否过 期。问问。
还有人惦记着我啊
2002::2,你还在 0-0-2吗,我这张 旧船票还能否登上 你的破船?
涛声依旧!
Zzzzzz zzzzz
到2001::1的包裹 让2002::4送更快 更方便,以后要记 住,不要老让我提 醒你。
Zzzzzz Zzzzzz
2002::4
相当于IPv4中的ARP+重定向+路由器发现
•路由器通告中包含链路层地址,这样就不需要额外的报文交互来解析链路层地址。 •路由器通告包含前缀,这样就不需要一个单独的机制来配置前缀(或IPv4的掩码)。 •路由器通告使能了地址自动配置。 •路由器能够通告MTU来保证在一个MTU没有很好定义的网络上给所有主机配置相同的MTU。 •多播的地址解析使用了超过40亿个多播地址代替广播地址,大大减少了非目的节点的中断。 •重定向报文中包含新的下一跳的链路层地址,节点收到重定向报文时不需要进行地址解析。 •同一链路可以有多个前缀,主机默认学习全部的前缀。 •与IPv4不同,IPv6的主机接收到重定向时认为下一跳是同网段直连的,这对某些情况非常 有用,比如同网段主机间相互不知道对方的前缀。而IPv4中如果遇到重定向报文指定的下一 跳地址不是本网段的时候,主机会忽略重定向报文。 •邻居不可达检测是大量报文交付到失效路由器时的一个重大改进,同样对于部分失效部分 连接的情况以及节点改变链路层地址的情况均有效。 •与ARP不同,ND检测半连接失败以避免发送报文到失去双向连接的邻居。 •同IPv4路由器发现不同,路由器公告信息中不包含优先字段,因为不需要优先权这个东西 来衡量路由器的稳定性,邻居不可达检测能够自动检测到死亡的路由器并切换到一个能够正 常工作的路由器。 •本地链路地址唯一表示本地路由器的用法使主机在站点切换新前缀时保持同路由器的连接。 •使用跳数限制设置为255的技巧能够使设备对离线的发送者发送邻居发现消息免疫。 •将地址解析功能放在ICMP中实现比通过ARP实现更加减少对于介质的依赖,并且使得使用标 准IP认证和安全机制成为可能。
相关主题