IPv6邻居发现协议
ipv6邻居发现协议
IPv6地邻居发现技术2、工作原理邻居发现协议是IPv6协议的一个基本的组成部分,它实现了在IPv4中的地址解析协议(ARP)、控制报文协议(ICMP)中的路由器发现部分、重定向协议的所有功能,并具有邻居不可达检测机制。
邻居发现协议实现了路由器和前缀发现、地址解析、下一跳地址确定、重定向、邻居不可达检测、重复地址检测等功能,可选实现链路层地址变化、输入负载均衡、泛播地址和代理通告等功能。
邻居发现协议采用5种类型的IPv6控制信息报文(ICMPv6)来实现邻居发现协议的各种功能。
这5种类型消息如下。
(1)路由器请求(Router Solicitation):当接口工作时,主机发送路由器请求消息,要求路由器立即产生路由器通告消息,而不必等待下一个预定时间。
(2)路由器通告(Router Advertisement):路由器周期性地通告它的存在以及配置的链路和网络参数,或者对路由器请求消息作出响应。
路由器通告消息包含在连接(on-link)确定、地址配置的前缀和跳数限制值等。
(3)邻居请求(Neighbor Solicitation):节点发送邻居请求消息来请求邻居的链路层地址,以验证它先前所获得并保存在缓存中的邻居链路层地址的可达性,或者验证它自己的地址在本地链路上是否是惟一的。
(4)邻居通告(Neighbor Advertisement):邻居请求消息的响应。
节点也可以发送非请求邻居通告来指示链路层地址的变化。
(5)重定向(Redirect):路由器通过重定向消息通知主机。
对于特定的目的地址,如果不是最佳的路由,则通知主机到达目的地的最佳下一跳。
3、主机的数据结构IPv6的一个设计要求是:即使在一个有限的网络内,主机也必须正确工作,而不像路由器不能储存路由表,不能有永久的配置,因此主机必须能自动配置,必须能学到交换数据的有关目的地的最小信息。
这些信息储存的存储器叫做缓存,这些数据结构是一系列记录的排列,称作表项。
ipv6协议的工作原理
ipv6协议的工作原理引言随着互联网的飞速发展和IP地址需求的激增,I Pv6协议作为下一代互联网协议,逐渐引起了广泛关注。
本文将详细介绍I Pv6协议的工作原理,包括地址结构、分片与重组、邻居发现、路由协议等方面的内容。
I P v6地址结构I P v6地址是由128位二进制数表示的,与I Pv4的32位地址相比,地址空间更加广阔。
I P v6地址由8组16进制数字组成,每组之间使用冒号分隔,例如:2001:0d b8:85a3:0000:0000:8a2e:0370:7334。
I P v6地址可以分为三种类型:单播地址、多播地址和任播地址,分别用于点对点通信、一对多通信和一对一通信。
I P v6分片与重组由于链路层M TU的限制,当IP v6数据包的大小超过链路层M TU时,需要将数据包进行分片。
分片由源主机完成,将数据包划分为适应MT U大小的分段,经过网络传输后再由目标主机进行重组。
与IP v4协议类似,I P v6分片也会增加网络开销,因此在网络设计中应尽量避免分片的发生。
I P v6邻居发现I P v6邻居发现是I Pv6网络中用于确定邻居设备IP v6地址与M AC地址的过程。
I Pv6邻居发现使用I CM Pv6报文实现,包括邻居请求和邻居应答两种类型。
邻居请求用于查询目标设备的MA C地址,邻居应答则是对邻居请求的响应。
这种机制可以有效解决I Pv6网络中链路层地址解析的问题。
I P v6路由协议I P v6使用路由协议来决定数据包从源主机到目标主机的转发路径。
常见的IP v6路由协议有R IP ng、O SP Fv3和B GP等。
这些协议基于不同的路由选择算法,通过交换网络拓扑信息,实现网络中路由器的动态路由更新和转发决策。
I P v6与I P v4过渡技术由于IP v6与I Pv4之间存在互不兼容性的问题,为了实现平稳过渡,提供双协议栈支持,出现了一系列的I Pv6与IP v4过渡技术。
IPvNeighborDiscovery协议剖析邻居发现的关键协议
IPvNeighborDiscovery协议剖析邻居发现的关键协议IPvNeighborDiscovery协议是IPv6网络中的一种重要协议,用于在网络中自动发现和管理邻居节点。
它扮演着邻居发现的关键角色,确保网络中的节点能够相互识别和交流。
本文将对IPvNeighborDiscovery 协议进行详细的剖析,揭示其在邻居发现过程中的关键协议和作用。
一、IPvNeighborDiscovery协议概述IPvNeighborDiscovery协议是IPv6网络中一套用于邻居发现的机制和协议集合。
在IPv6网络中,每个节点的IP地址是唯一的,并且每个节点都可以自动发现网络中的邻居节点。
对于IPv6节点而言,邻居节点是指与其直接相连的节点。
IPvNeighborDiscovery协议主要涉及以下几个重要的协议:1. 邻居发现协议(Neighbor Discovery Protocol,NDP)2. 链路层地址解析协议(Link-Layer Address Resolution Protocol,ARP)3. 邻居缓存协议(Neighbor Cache,NC)4. 路由器发现协议(Router Discovery Protocol,RDP)二、邻居发现协议(NDP)邻居发现协议(NDP)是IPvNeighborDiscovery协议中最重要的协议之一,它提供了节点与其邻居节点进行通信的基本机制。
邻居发现协议主要包括以下几个重要的功能:1. 邻居发现邻居发现是IPvNeighborDiscovery协议的核心功能之一,节点通过发送邻居请求(Neighbor Solicitation,NS)以及邻居广告(Neighbor Advertisement,NA)消息来识别和验证其邻居节点。
通过邻居发现,节点可以获取邻居节点的IP和MAC地址。
2. 邻居缓存管理邻居缓存是保存节点邻居信息的缓存表,邻居发现协议通过邻居缓存管理,实时更新和存储邻居节点的信息。
IPv6网络邻居发现概述
15
配置RA消息相关参数
取消对RA消息发布的抑制
[Router-Ethernet0/0] undo ipv6 nd ra halt
配置RA消息发布的时间间隔
[Router-Ethernet0/0] ipv6 nd ra interval maxinterval-value min-interval-value
1::2:B/64
Stale Delay Probe Reachable Stale
10
目录
邻居发现协议 地址解析 无状态地址自动配置 ND协议配置
IPv6地址自动配置
有状态地址自动配置
从DHCP服务器获取地址及相关信息
无状态地址配置
根据路由器发布的信息而自动配置IPv6地址及相 关信息
IPv6网络邻居发现概述
技术创新,变革未来
引入
ND(Neighbor Discovery,邻居发现)协议是IPv6 的一个关键协议,它综合了IPv4中的一些协议如 ARP、ICMP路由器发现和ICMP重定向等,并对他 们做了改进。本章介绍了IPv6邻居发现协议中的地 址解析、无状态地址自动配置等重要功能,并对如何 配置ND协议进行了讲解。
Type = 137
Redirect -(重定向消息)
5
目录
邻居发现协议 地址解析 无状态地址自动配置 ND协议配置
IPv6地址解析概述
与IPv4中的地址解析不同,IPv6地址解析包 含了两个过程
解析IPv6地址所对应的链路层地址过程 邻居可达性状态的维护过程,即邻居不可达检测
(NUD)
ipv6的规则 -回复
ipv6的规则-回复IPv6的规则IPv6,即Internet协议第六版,是互联网上使用的一种网络层协议,它是IPv4的升级版本。
相比IPv4,IPv6具有更大的地址空间和更先进的特性,以满足当前和未来互联网发展的需求。
在IPv6中,有许多规则和标准,这些规则确保网络的正常运行和安全性。
本文将一步一步地回答关于IPv6的规则。
第一步:IPv6地址规则IPv6地址是由128位二进制数表示的地址,这给予了IPv6一个庞大的地址空间。
IPv6地址的格式由八个16进制数块组成,每个块用冒号分隔。
例如,2001:0db8:85a3:0000:0000:8a2e:0370:7334是一个IPv6地址的例子。
IPv6地址可以是全球唯一的,也可以是链路本地的或站点本地的地址。
第二步:IPv6路由规则IPv6路由是指数据包从源主机到目标主机过程中,通过中间设备的传递。
IPv6路由规则是一种确定数据包流向的规则,它告诉路由器如何将数据包发送到正确的目的地。
IPv6路由规则使用前缀匹配来判断最佳的路径。
路由器根据IPv6地址的前缀来决定数据包该转发至哪一个接口。
第三步:IPv6邻居发现规则IPv6邻居发现是一种用于发现和识别网络上邻居设备的机制。
它用于在主机或路由器之间建立通信会话,以确定连接的可用性和性能。
IPv6邻居发现规则包括邻居发现协议(NDP)和邻居发现协议ICMPv6 信息。
邻居发现协议允许主机解析IPv6地址,查找邻居设备,并建立有效的邻居关系。
第四步:IPv6安全规则IPv6的安全性是网络中至关重要的一环。
IPv6安全规则包括防火墙规则、访问控制列表(ACL)和加密机制等。
防火墙规则允许或禁止特定的IPv6流量通过防火墙,以保护网络免受潜在的攻击。
ACL用于限制特定主机或特定流量的访问权限。
加密机制可以用于对IPv6数据包进行加密和解密,保护数据的机密性和完整性。
第五步:IPv6扩展头规则IPv6扩展头是一种用于将额外信息添加到IPv6数据包的机制。
linux内核 ipv6邻居表项的老化机制
linux内核 ipv6邻居表项的老化机制
Linux内核中的IPv6邻居表项的老化机制是通过NDISC(邻
居发现协议)来实现的。
NDISC是IPv6网络中用于解析邻居(即相邻路由器或主机)的IPv6地址与链路层地址的协议。
在Linux内核中,NDISC协议在IPv6邻居缓存中会为每个邻
居表项设置一个存活时间(lifetime),即表项在该时间之后
将被认为过期并从缓存中删除。
存活时间由邻居发现过程中的各种信息和事件动态地更新。
当IPv6邻居表项未被访问一段
时间后,其存活时间会递减,直到到达零值。
当邻居表项的存活时间为零时,内核会发送一个NDISC Neighbor Advertisement(邻居广告)报文,以验证邻居的存在。
如果该邻居正常回复一个NDISC Neighbor Solicitation(邻居
请求)报文,则邻居表项的存活时间会被重新设置并重新开始计时。
如果邻居没有回复,那么该邻居表项将被认为已经过期,会从邻居缓存中删除。
此外,内核还会通过其他机制来更新邻居表项,如接收到邻居的数据包、链路状态改变等。
这些事件会触发对邻居表项的更新和存活时间的刷新。
总结来说,Linux内核中的IPv6邻居表项的老化机制是通过NDISC协议和存活时间的动态调整来实现的。
邻居表项在一
段时间内未被访问时,存活时间会递减,直到零。
当存活时间为零时,内核会发送邻居广告报文来验证邻居的存在,并根据
回复情况来决定是否将表项删除或重新计时。
同时,其他事件也会触发对邻居表项的更新和存活时间的刷新。
简单描述ipv6 邻居发现的过程
IPv6邻居发现过程随着互联网的发展和普及,IP位置区域资源的使用已经越来越紧张,IPv4位置区域枯竭的问题也日益严重。
为了解决IPv4位置区域不足的问题,IPv6协议应运而生。
IPv6协议采用128位位置区域长度,大大扩大了可用的IP位置区域数量,同时还提高了路由效率和安全性。
IPv6邻居发现是IPv6协议中的一个重要过程,它是指主机或路由器在IPv6网络中发现并识别直接相连的邻居的过程。
在IPv6网络中,每个主机和路由器都有一个唯一的128位的IPv6位置区域,为了进行通信,它们需要通过邻居发现过程来获取对方的链路层位置区域,这样才能发送数据包到对方。
邻居发现过程由多个步骤构成,下面将详细介绍IPv6邻居发现的过程:1. Router Solicitation(路由器请求)当一个IPv6主机启动或者连接到网络时,它会发送一个Router Solicitation消息到本地链路上的广播位置区域(FF02::2),以请求路由器的相关信息。
这条消息的目的是为了获取默认路由器的位置区域和其他配置参数。
2. Router Advertisement(路由器通告)收到Router Solicitation消息的邻居路由器会向主机发送Router Advertisement消息,其中包括了路由器的IPv6位置区域、网络前缀、MTU(最大传输单元)和其他配置参数。
这样主机就能获得网络配置信息,包括默认网关等。
3. Neighbor Solicitation(邻居请求)在IPv6网络中,邻居之间通过IPv6位置区域来通信,但需要先了解对方的链路层位置区域才能进行通信。
当一个主机需要与其邻居通信时,它会发送一个Neighbor Solicitation消息,来请求对方的链路层位置区域。
4. Neighbor Advertisement(邻居通告)收到Neighbor Solicitation消息的邻居主机或路由器会向对方发送Neighbor Advertisement消息,其中包括了对方的链路层位置区域。
IPV6 - ND
介绍
本文主要根据RFC2461,介绍IPV6的邻居发现(NeighborDiscovery,ND)。通过邻居 发现,实现以下功能:
1)包括主机和路由器的节点通过邻居发现来侦测邻居的链路层地址; 2)主机通过邻居发现找到可用的邻近路由器,用以转发数据包; 3)主机通过邻居发现可以实现对邻居的可达性保持跟踪; 4)主机侦测链路层地址的变化; 5)实现无状态地址自动配置;上述的 功能,通过以下消息实现: 1)路由请求(RouterSolicitation) 2)路由通告(RouterAdvertisement) 3)邻居请求(NeighborSolicitation) 4)邻居通告(NeighborAdvertisement)5)重定向消息(RedirectMessage)
1比特,其他状态位,决定是否自动配置除 地址外的其他配置(如NDS)Reserved6比特预 留,置0,接收时忽略RouterLifetime
16比特,与默认路由器相关,如果为0则表示路由器没有默认路由,同时不应该出现在路由列表 中ReachableTime
32比特,以单位为毫秒,用来邻 居可达性检测RetransTimer2比特,以 单位为毫秒,用来地址解析和邻居可 达性检测,是再次发送RS的时间间隔
8比特,RS消息固定为135
8 比特,固定为0
16 比特,校验和
预留,设置为0,被接收者忽 略TargetAddress目标的链路本地 地址,不能是多播地址Options可 选项有:源链路层地址 首部字 段的说明:
-SourceAddressA)发送接口的链路本地地址:地址解析和目的可达性检测B)未指定地址:用 于冲突检测时
展认证首部,消息认证通过-ICMP核验有效-ICMP的code字段为0-所有包含的选项长度大于0-如 果源地址是未指定的地址,那么不能有源链路层地址选项
IPv6中的邻居发现协议—NDP功能浅析
I CMP报 文 重 定 向 等 协 议 综 合 而成 ; 可 以实 现 它 Iv P 4中 的 地 址 解 析 协 议 ( A RP) 控 制 报 文 协 议 、
( CM P) I 中的路 由器 发 现部 分 、重定 向协 议 的所有
功能 ,并 具有邻 居 不可达 检 测机制 ,如 图 l 示 。 所
关键词 :P 6} I v 邻居 发现 曩 譬
Ne g b r i h o Di c v r Pr t c l n Pv 一一 NDP s o ey o o o i I 6 Fu c i n A n l s s n to a y i
S A G Ja z e L U S u n h n H N in h n , I h a g o g
报文 ( MP 6 来实现 协议 的各 种功能 ,见 表 l I C v) 。
t a he e h s f n to s n e al. o c iv t e e u c in i d t i s Ke w o d y r s: Iv6; Neg b r s o e y P i h o Di v r c
1弓 言 I
伴 随 着 网络 应 用 的迅 猛 发 展 和 网络 规模 的极 度 扩 张 ,当前 普 遍 使 用 的 I P网 络也 暴 露 出越 来 越 多 的 问题 ,诸 如 地 址 空 间 不 足 、 服 务 质 量 、安 全 性 等 。为 了解 决这 些 问题 ,尤 其 是解 决地 址 空 间即将 耗 尽 的 严 重 问 题 ,I ETF在 1 9 9 2年 定 义 了全 新 的
水J
,
T"e l 、 p n p l6 e 3
T -e J 7 3 3 r
Ns Ne blS h tt n, l c o cti  ̄l f ao
IPv6邻居发现协议介绍剖析.
11
可达性验证
(Neighbor Unreachability Detection)
确认可达性的两种方式
上层协议获取:一般出现在运行TCP连接的场合,而且 节点本身就是通信的一端,依靠TCP的捎带确认机制.
主机发送路由器请求
Host的接口使能后,需要及时 获取RA,向FF02::2发送RS
被请求的路由器公告
Router可以选择向该node单播 一条RA,也可以选择向组播地 址FF02::1组播一条RA
9
地址解析
(Address resolution)
主要用途:
获得邻居的链路层地址:邻居地址必为直连关系的 单播地址.
Neighbor Solicitation(NS) —— Type=135
解析链路层地址 验证邻居的可达性(NUD) 验证地址的唯一性(DAD)
Neighbor Advertisement(NA) —— Type=136
响应NS 链路层地址变化时,广播NA
Redirect —— Type=137
用于router通知主机更好的下一跳
6
NDP报文(ICMPv6)说明
NDP协议定义了2对报文和1条Redirect报文
Router Solicitation(RS) —— Type=133 主机发送该报文请求router广播RA
Router Advertisement(RA) —— Type=134
router通过该报文广播前缀信息,internet参数信息 router响应node发送的RS报文
IPv6 邻居发现协议介绍
Prefix Information格式
•
•
Prefix Len:前缀的bit数,0-128(0或128什么含义?)
L:on link flag,当设置时,可用于on-link(是否直连)判决;当未设置时,RA对于前缀on-link还是offlink不持立场,即host不能认为通过该前缀生成的IP是off-link的。只有当Valid Lifetime为0,且L设置 为1,才表示该前缀的地址为off-link A:用于RFC2462 无状态地址自配置 Valid Lifetime&Perferred:参考RFC2462 无状态地址自配置 Prefix:一个IP地址或者IP地址的前缀,不能携带link-local的prefix
NS报文格式
• Node发送NS报文请求解析target Node的链路层地址,同时携带了自身的链路层地址,当 Node发送NS用于解析地址时,以组播方式发送;当验证可达性时,以单播方式发送
•
IP头 – 源IP:发送方接口IP或者为未定义IP(用于DAD检测时) – 目的IP:被请求节点组播地址或者目标地址
• 记录NUD算法涉及的相关数据记录,如邻居状态,重发计数,定时器等
• IPv6的NDP协议组合了IPv4时的ARP,RDISC(RFC1256 ICMP Router Discovery Messages),ICMP Redirect • 相比IPv4的增强
– router发现作为协议基本功能,主机不需”窥探“路由协议 – RA携带了link地址,不需额外的分组交换获取router的link地址 – RA携带了prefix,不需单独配置host的掩码 – RA使能地址自配置 – RA广播link MTU,保证那些没有知名MTU预定义值的link上的所有node使用相同 的MTU – 定义被请求节点组播地址,降低非解析目标节点的中断数 – Redirect携带了新的下一条的link地址,不需再发起的单独的报文交换去获取
icmpv6邻居协议 na 标志位
icmpv6邻居协议 na 标志位ICMPv6邻居协议(Neighbor Advertisement, NA)是IPv6网络中的一种重要协议,用于维护邻居节点之间的通信关系。
在IPv6网络中,每个节点都有一个唯一的IPv6地址,邻居节点是指位于同一个子网内的其他节点。
邻居协议通过邻居发现(Neighbor Discovery)和邻居维护(Neighbor Maintenance)两个过程,实现了节点之间的邻居关系的建立和维护。
邻居发现是指节点在网络中主动寻找和识别邻居节点的过程。
当一个节点需要与其他节点进行通信时,首先需要确定目标节点的IPv6地址和链路层地址。
邻居发现过程中,节点将广播邻居请求(Neighbor Solicitation, NS)消息,请求目标节点回复自己的链路层地址。
目标节点收到邻居请求消息后,会通过邻居通告(Neighbor Advertisement, NA)消息回复自己的链路层地址。
邻居维护是指节点在网络中定期检查和更新邻居节点信息的过程。
节点会周期性地发送邻居通告消息,以确保邻居节点的可达性。
如果在一定时间内没有接收到邻居通告消息,节点会将邻居节点标记为不可达,并更新邻居表中的相关信息。
NA标志位是邻居通告消息中的一个字段,用于指示通告的类型和属性。
在邻居通告消息中,NA标志位有以下几种类型:1. Router标志位:用于指示发送节点是否为路由器。
如果该标志位被设置为1,表示发送节点是一个路由器;如果被设置为0,表示发送节点不是路由器。
2. Solicited标志位:用于指示是否为目标节点发送的邻居通告消息。
如果该标志位被设置为1,表示邻居通告消息是针对邻居请求消息的响应;如果被设置为0,表示邻居通告消息是周期性的邻居维护消息。
3. Override标志位:用于指示邻居通告消息是否覆盖原有的邻居节点信息。
如果该标志位被设置为1,表示邻居通告消息会覆盖原有的邻居节点信息;如果被设置为0,表示邻居通告消息不会覆盖原有的邻居节点信息。
ipv6
1. ND协议介绍邻居发现协议(Neighbor Discovery Protocol,以下称ND协议)是IPv6的一个关键协议,可以说,ND协议是IPv4某些协议在IPv6中综合起来的升级和改进,如ARP、ICMP路由器发现和ICMP重定向等协议。
当然,作为IPv6的基础性协议,ND还提供了其他功能,如前缀发现、邻居不可达检测、重复地址检测、地址自动配置等。
1.1 IPv6协议格式Version(4-bit):IP版本,该字段值为6Traffic Class(8-bit):流量分类,与IPv4包头的TOS类似Flow Label(20-bit):流标签,用来标记IPv6数据包的一个流Payload Length(16-bit):有效载荷的长度,有效载荷为紧跟IPv6包头的数据包的其他部分Next Header(8-bit):处理选项字段,分段,安全,移动性,松散源路由,记录路由等的新方式。
该字段在承载ND报文时字段值为58(ICMPv6)。
该字段详细字段值对应如下表Value Type of Header0Hop-by-Hop Options Header6TCP17UDP41Encapsulated IPv6 Header43Routing Header44Fragment Header50Encapsulating Security Payload51Authentication Header58ICMPv659No next header60Destination Options HeaderHop Limit:(8-bit):定义IP数据包所能经过的最大跳数,每跳一次将此值减1Source Address(128-bit):IP数据包的源地址Destination Address(128-bit):IP数据包的目的地址1.2 ND报文类型ND协议定义的报文使用ICMP承载,其类型包括:路由器请求报文(RS)、路由器通告(RA)报文、邻居请求报文(NS)、邻居通告报文(NA)和重定向报文。
IPv6邻居发现攻击防护解决方案技术白皮书
Hillstone IPv6邻居发现攻击防护解决方案技术白皮书关键词:IPv6,邻居发现(ND),安全网关,NS/NA,RS/RA摘要:本文介绍了IPv6邻居发现协议的基本原理、攻击种类、Hillstone安全网关防护方法,以及典型实际环境中的应用。
缩略语:1.IPv6邻居发现协议简介IPv6的邻节点发现(ND)协议,是用一系列的报文和步骤来确定邻节点之间关系的过程。
ND取代了IPv4中使用的ARP、ICMP路由器发现和ICMP重定向报文。
●ND协议定义功能:●ND协议报文格式:邻节点发现报文使用ICMPv6的报文格式,及ICMPv6的从133到137的报文类型。
●ND协议报文类型:2.IPv6邻居发现攻击介绍在IPv4网络中,ARP攻击问题已经为广大的网络管理者、设备厂商所认识,ARP攻击能够造成大面积网络不能正常访问外网,使得正常用户深受其害。
针对ARP攻击,大部分的网络设备厂商都推出了自己的ARP攻击解决方案,在很大程度上解决了ARP攻击的问题。
而伴随着IPv6网络的建设,在IPv6协议族中的ND协议越来越被重视,而ND协议在设计上与ARP协议一样并未提供认证机制,导致网络中的主机是不可信的,从而使得针对ND协议的攻击非常容易。
ND攻击类型总结如下:●地址欺骗攻击攻击者利用NS/NA/RA报文来修改受害主机或网关上的MAC地址,造成受害主机无法与网络进行正常的通信,甚至形成中间人攻击。
●路由通告欺骗攻击RA报文能够携带很多网络配置信息,包括默认路由器,网络前缀列表,是否进行有状态地址分配等网络配置的关键信息。
如果受害者接收了虚假的RA信息,会造成网络配置错误,从而引发欺骗攻击。
●针对网关的泛洪攻击通过发送大量的NS/RS报文,造成网关的ND表项溢出。
3.Hillstone IPv6邻居发现攻击防护方法通过对上文ND攻击类型的介绍,我们可以看出发现当前ND攻击防御的关键所在:如何获取到合法用户和网关的IPv6地址和MAC地址的对应关系,并如何利用该对应关系对ND报文进行检查,过滤掉非法ND报文。
IPV6 邻居发现ND协议资料
LWF
LWF
• Router Solicitation消息格式 • --主机发送Router Solicitations以便督促路 由器尽快生成Router Advertisements。 Router Solicitation消息格式如图1所示。
LWF
Hale Waihona Puke • Router Advertisement消息格式 ----路由器周期地发出Router Advertisement消息,或因 响应Router Solicitations而发送Router Advertisement消息。 • Router Advertisement消息格式如图2所示。
2—ICMP Type = 134 (RA) Src = link-local address (FE80::/10) Dst = all-nodes multicast address (FF02::1) Data = options, subnet prefix, lifetime, autoconfig flag
LWF
常见术语
节点(node):执行 IP 协议的设备。
路由器(router):一个节点,转发不是显示寻址到自己的 IP 分组。
主机(host):任何不是路由器的节点。
上层(upper layer):紧挨着下面的 IP 层的协议层。例如传输协议 TCP 和 UDP、控制协议 ICMP、路由协议OSPF,以及被在 IP 上“隧道 化” (即,被封装进 IP)的互联网络层(或低层)协议,例如 IPX、 AppleTalk 或 IP 自身。 链路(link):通信设施或媒介,是紧挨着上面的 IP 层的协议层,节点能够 在其上的链路层通信。例如以太网(简单或桥接)、PPP 链路、X.25、 帧中继、ATM 网络,以及互联网络层(或高层)“隧道”,例如 IPv4 或 IPv6 自身之上的隧道。
IPv6邻居发现协议简介
(1)INCOMPLETE(未完成状态):表示正在解析地址,但邻居链路层地址 尚未确定。
(2)REACHABLE(可达状态):表示地址解析成功,该邻居可达。
(3)STALE(失效状态):表示可达时间耗尽,未确定邻居是否可达。
(4)DELAY(延迟状态):表示未确定邻居是否可达。DELAY状态不是一个稳 定的状态,而是一个延时等待状态。
IPv6邻居发现协议
Neighbor Discovery Protocol,NDP
Michael 2017/09/29
課程目标
学习完本课程,您应该能够:
■ 熟悉邻居发现协议的基本功能 ■ 熟悉邻居发现的报文结构 ■ 掌握IPv6地址解析过程
■ 描述邻居状态机变化的过程
■ 掌握IPv6重定向的原理
■ 描述主机数据结构和数据发送算法
Host Router
1. RS
ICMPv6 Type = 133 (RS)
2. RA
ICMPv6 Type = 134 (RA) Src = Router link-local address
Src = link-local address (FE80::/10)
Dst = all-routers multicast address (FF02::2)
02
路由器发现
二、路由器发现(Router Discovery)
用于定位邻居路由器,生成default router列表,并获取与地址自动配置有关 的前缀和配置参数。用RS/RA机制实现。
主机发送Router Solicitation报文 路由器回应Router Advertisement报文 主机从RA报文获得前缀及其它参数
ipv6邻居发现协议
ipv6邻居发现协议IPv6邻居发现协议是为IPv6网络设计的一种协议,旨在发现局域网中的邻居节点,并建立相应的链路层地址映射。
本文将介绍IPv6邻居发现协议的工作原理和应用。
IPv6邻居发现协议通过多种机制实现邻居节点的发现。
首先,节点在局域网中广播邻居发现请求,通常使用目的IPv6地址为所有节点的多播地址。
邻居节点接收到该请求后,会返回邻居发现应答,以便建立链路层地址映射关系。
其次,节点还可以发送多播邻居发现请求,以寻找远程网络中的邻居节点。
邻居发现协议还支持通过无状态地址自动配置的方式,使节点能够更加灵活地获取IPv6地址。
邻居节点发现过程中,存在一种重要的概念,即邻居缓存。
邻居缓存用于存储已发现的邻居节点的信息,包括IPv6地址、链路层地址和有效时间等。
通过邻居缓存,节点可以在通信时快速查找邻居节点的链路层地址,提高数据传输的效率。
邻居发现协议适用于多种应用场景。
一方面,它可以用于路由器的发现和选择,以便节点能够选择最佳路径进行通信。
另一方面,邻居发现协议也可以用于多播组成员的发现,以便节点加入或离开多播组。
IPv6邻居发现协议的设计考虑了安全性和效率。
为了保证安全性,邻居发现协议引入了邻居验证机制,以防止邻居伪装攻击。
在发现过程中,节点可以验证邻居节点的信息,防止非法节点的加入。
为了提高效率,邻居发现协议对邻居发现请求和应答进行了优化,减少了网络中的广播流量。
此外,邻居发现协议还支持查询邻居节点的状态,以便节点能够了解邻居节点的可达性和可用性。
总结起来,IPv6邻居发现协议是一种用于发现IPv6网络中邻居节点的协议。
它通过多种机制实现邻居节点的发现,并建立链路层地址映射关系。
邻居发现协议在路由器发现、多播组成员发现和地址自动配置等方面具有广泛的应用。
为了保证安全性和效率,邻居发现协议引入了邻居验证机制和优化的消息传输机制。
通过IPv6邻居发现协议,IPv6网络可以更加稳定和高效地进行通信。
技术盛宴丨IPv6系列基础篇(下)——邻居发现协议NDP
通过上一期文章(IPv6基础篇(上)——地址与报文格式),相信大家对于IPv6的背景、地址和报文格式有了一定了解,接下来大家可能对于终端访问IPv6网络资源的过程原理更感兴趣。
那么一个终端如果要访问IPv6的资源,关键的步骤是什么呢?当然是它需要一个IPv6的地址。
那么这个地址又从何而来?是不是只能像IPv4一样手动配置或者通过DHCP服务器下发?其实不然,IPv6有更加简洁的地址分配方式,可以通过邻居发现协议实现IPv6地址的自动分配。
并且IPv6邻居发现协议远不止这一项功能,这一期将对IPv6邻居发现协议做展开讲解。
NDP协议概述NDP(Neighbor Discovery Protocol,邻居发现协议)是IPv6协议体系中一个重要的基础协议。
通过使用ICMPv6报文实现以下丰富的功能:• 无状态自动配置(简化版的DHCP):路由器发现、前缀发现、参数发现;• 重复地址检测(DAD),相当于IPv4的免费ARP;• 地址解析,相当于IPv4的ARP;• 邻居不可达检测(NUD);•路由器重定向。
为NDP定义的ICMPv6消息ICMPv6(Internet Control Message Protocol Version 6,互联网控制报文协议版本6)是IPv6的基础协议之一。
ICMPv6的协议类型号(IPv6报文中的Next Header字段的值)为58。
ICMPv6的报文格式图1所示:▲图1:ICMPv6报文格式报文中字段解释如下:• Type:表明消息的类型,0至127表示差错报文类型,128至255表示消息报文类型;• Code:表示此消息类型细分的类型;• Checksum:表示ICMPv6报文的校验和,校验的部分包括了ICMPv6数据和IPv6的报头部分(IPv6报头不含校验);• Data:ICMPv6数据。
ICMPv6消息类型中有5种是为了支持邻居发现协议而定义的,功能如图2描述:▲图2: ICMPv6五种消息类型无状态自动配置IPv6地址配置方式IPv6地址有128位,即使有简化书写的方式,为主机配置IPv6地址也是一件工作量不小的活儿。
网络基础 邻居发现(ND)协议
网络基础邻居发现(ND)协议
IPv6邻居发现(ND)是一组确定邻居节点之间关系的消息和过程。
ND代替了在IPv4中使用的“地址解析协议(ARP)”、“Internet控制消息协议(ICMP)”、路由器发现和ICMP重定向,并提供了其他功能。
ND在RFC 2461“用于IP版本6(IPv6)的邻居发现”(Neighbor Discovery for IP Version 6 (IPv6))中进行了描述。
邻居发现(ND)协议的使用主要可分为三个方面,包括ND由主机使用、ND由路由器使用和ND由节点使用。
其中,在ND由主机使用中,主要用于探索邻居路由器、探索地址、地址前缀和其他配置参数;在ND由路由器使用中,主要用于公告它们的存在、主机配置参数以及处于链路的前缀,通知主机更好的下一个跃点地址,以便转发用于特定目标的数据包;在ND由节点使用中,主要用于解析IPv6数据包所转发到的邻居节点的链路层地址,确定邻居节点的链路层地址何时发生变化,确定IPv6数据包是否可以发送到邻居和能否收到来自邻居的数据包。
邻居发现(ND)协议的描述过程如表5-2所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IPv6邻居发现协议
概述 邻居发现协议的消息类型 路由器发现 地址自动配置 地址冲突检测 邻居地址解析
概述
IPv6具有即插即用的特性,而该特性就 是通过邻居发现协议(Neighbor Discovery Protocol, NDP)来实现的。 NDP消息通常应该在链路本地的范围内 收发。因此,封装NDP消息的数据包也始终 使用IPv6链路本地地址,或者链路本地范围 内的多播地址。
路由器发现
路由器通过在相连的链路上周期性地发送 路由器通告消息,表明它的存在并通告配 置的所有参数。大多数情况下在广播链路 上使用。 刚刚连接到某个链路接口的主机需要获得 一份路由器通告消息,以便能够发现链路 上的路由器并学习到链路的参数。因此连 接到链路时,主机会发送一条路由器请求 消息去请求一条路由器通告消息。收到后 将该路由器添加到缺省路由器列表中。
邻居发现协议的消息类型
邻居发现协议(NDP)是在RFC2461中定义的, 为了完成某些功能,它使用ICMPv6协议来 交换一些必要的消息,主要有5种: 路由器通告(Router Advertisement, RA)消息 路由器请求(Router Solicitation, RS)消息 邻居通告(Neighbor Advertisement, NA)消息 邻居请求(Neighbor Solicitation, NR)消息 重定向(Redirect)消息
地址冲突检测
被请求节点的多播地址是由前缀 FF02:0:0:0:0:1:FF00::/104加上目标地址的 最后24位组成。这样做的原因是这个地址 可以匹配该节点自动配置的所有地址。除 此以外,如果两个节点同时对一个地址进 行冲突检测时,它们可以互相检测到。
邻居地址解析
在IPv4中,当一个节点需要和本地链路上的 另一个IPv4节点进行通讯时,它必须要获取 该节点的链路层地址。IPv4使用ARP来获取 目的节点的链路层地址,而IPv6使用NDP来 完成。 根据目的IPv6地址的前缀,本地节点可以判 断出该地址是本地链路的邻居或是本地链 路之外的节点。
邻居地址解析
当目的地址是本地链路之外的节点时,主 机需要通过默认路由器来发送数据包,因 此由器通告消息获得)。 如果该地址是本地链路的邻居地址时,节 点会查看本地的邻居缓存是否存在这个地 址,该过程与ARP非常类似。
邻居地址解析
当目的地址不在邻居缓存中,主机会发送 一个邻居请求消息到与目标节点相关的被 请求节点的多播地址。 如果被请求的节点存在并且邻居请求消息 是有效的,那么该节点会答复一个邻居通 告消息。 如果被请求的节点不存在或由于其他原因 未收到回复,那么邻居请求消息会每隔1s 重新发送一次。若发送3次仍未有答复,则 宣布该邻居不可达,地址解析失败。
地址自动配置
当一台IPv6的主机第一次连接到链路上时, 它能够自我配置其接口地址。对于大多数 的以太网接口,使用的方法是通过MAC-toEUI64的方法确定本地的接口ID,加上链路 本地前缀形成链路本地地址。 而当该主机需要获得一个全球IPv6地址时, 则使用两种方式获取该地址:有状态和无 状态的地址自动配置。
总结
邻居发现协议(NDP)解决了很多与单一链路 上的节点有关的问题,并提供了路由器发 现、地址自动配置以及邻居地址解析等功 能。对于IPv4来说需要多种协议(包括 DHCP、IGMP路由器发现、ARP等)才能提 供的功能,而NDP利用ICMPv6即可完成。 这些功能作为IPv6的一个必须组件整合到了 ICMPv6中,体现出了IPv6相对于IPv4的先进 性。
谢谢!
邻居发现协议的消息类型
路由器通告消息由路由器发起,用来通告 这些路由器的存在和链路细节的参数,例 如链路前缀、链路MTU以及跳数限制等。这 些消息周期性发送,也用于答复路由器请 求消息。 路由器请求消息由主机发起,用来请求路 由器发送一个RA。
邻居发现协议的消息类型
邻居请求消息由节点主机发起,用来请求 另一台主机的链路层地址,也用来实现诸 如地址冲突检测的功能。 邻居通告消息是用来响应邻居请求消息。 此外,如果一个节点的链路层地址发生了 改变,它能够通过发送一个未请求的邻居 通告消息来通告这个新地址。 重定向消息用于通知主机将默认路由器重 定向为本地链路中的另一个节点。使用方 法与IPv4中ICMP的基本相同。
地址自动配置
若该主机使用的是有状态的地址自动配置, 它将会借助DHCPv6服务器来获取必要的地 址信息。 如果该主机使用的是无状态的地址自动配 置的话,主机将从它所收到的路由器通告 消息中获得一个或多个链路前缀,加上它 先前确定的接口ID,这样就得到了一个全球 唯一的IPv6地址。
地址冲突检测
虽然利用了MAC地址转换导出一个接口ID的 方法,在绝大多数情况下可以保证得到的 地址是唯一的。但由于IPv6地址也可以手工 配置,因此在使用一个地址之前,都必须 进行地址冲突检测。 节点将需要检测的地址以邻居请求消息的 方式发出,该消息的源地址是未指定的地 址,目的地址则是所有被请求节点的多播 地址。