`

IPV6学习之旅----1

 
阅读更多

学习IPV6有一段时间了,在接触网络协议之前,总觉得协议这东西不是一般人能搞的。但是学习了IPV6三个星期后,感觉协议也没以前想象的那么可怕。现在我大概总结一下这三个星期来的所学所想。

IPV6基础知识

IPV6地址表示

地址长度128bits
用十六进制表示,如: FE08:….
4位十六进制数(16bits)为一组,中间用“:”隔开,如: 2001:12FC:….
若以零开头可以省略,全零的组可用“::”表示,如: 1:2::ACDR:….
地址前缀长度用“/xx”来表示,如: 1::1/64

IPv6地址 = 前缀 + 接口标识

IPv6地址分类

ipv6地址可以分成三类:单播地址、组播地址和任播地址。

单播地址又可以分为单播本地链路地址(前缀为ff80::/10)、单播本地站点地址(前缀为FEC0::/10)、单播未指定地址(::/128)、单播环回地址(::1\128)和内嵌IPv4地址的IPv6地址。

组播地址分为:

a.指定地址:

FF01::1 在本地接口范围内的所有节点
FF01::2 在本地接口范围内的所有路由器
FF02::1 在本地链路范围内的所有节点
FF02::2 在本地链路范围内的所有路由器
FF05::2 在一个站点范围内的所有路由器
b.被请求节点组播地址:被请求节点多播地址受限于本地链路:FF02::0001:FF00:0/104+单播或任播地址的低24bit FF后紧跟低24bit

任播地址:

任播地址使用可聚合全球单播地址,也能够使用本地站点或本地链路地址;因而,从语法上,任播地址与单播地址没有区别。被分配具有任播地址的节点必须得到明确的配置,从而知道它是一个任播地址。目前,任播地址仅被用做目标地址,且仅分配给路由器。

IPv6报文格式

IPv6数据包由一个基本报头加上0个或多个扩展报头及上层协议单元构成。

IPv6报文一般由三个部分组成:基本报头、扩展报头和上层协议数据单元:

IPV6相关技术和协议

ICMPV6(IPv6因特网控制消息协议)

在IP报头中下一包头的协议号为58,ICMPv6处理与ICMPv4相同的基本错误和信息性消息。ICMPv6为邻居发现协议和组播侦听者协议提供支持。

icmpv6的错误消息类型:

1、目的地址不可达

2、包太大

3、时间超时

4、参数错误

icmpv6信息性消息类型:

1、回射请求

2、回射回复

邻居发现协议(NDP)

NDPNeighborDiscoveryProtocol,邻居发现协议)是IPv6的一个关键协议,它组合了IPv4中的ARPICMP路由器发现和ICMP重定向等协议,并对它们作了改进。作为IPv6的基础性协议,NDP还提供了前缀发现、邻居不可达检测、重复地址监测、地址自动配置等功能。

1.地址解析:地址解析是一种确定目的节点的链路层地址的方法。NDP中的地址解析功能不仅替代了原IPv4中的ARP,同时还用邻居不可达检测(NUD)方法来维持邻居节点之间的可达性状态信息。

2.无状态地址配置:NDP中特有的地址自动配置机制,包括一些列相关功能,如路由器发现、接口ID自动生成、重复地址监测等。通过无状态自动配置机制,链路上的节点可以自动获得IPv6全球单播地址。

a)路由器发现:路由器与其他相连的链路上发布网络参数信息,主机捕获此信息后,可以获得全球单播IPv6地址前缀、默认路由、链路参数(链路MTU)等信息。

b)接口ID自动生成:主机根据EUI-64规范或其他方式为接口自动生成接口标识符。

c)重复地址监测(DAD):根据前缀信息生成或手动配置IPv6地址后,为保证该地址的唯一性,在其可以使用之前,主机需要检验它是否已被链路上的其他节点所使用。

d)前缀重新编址:当网络前缀变化时,路由器在与其相连的链路上发布新的网络参数信息,主机捕获这些新信息后,重新配置前缀、链路MTU等地址相关信息。

3.路由重定向:当在本地链路上存在一个更好的到达目的网络的路由器时,路由器需要通告节点来进行相应配置改变。

关于本协议后续我会详细描述。

组播侦听者发现协议(MLDV1/MLDV2)

组播侦听者发现协议是IPv6路由器所使用的一种协议,用以发现在其直连网络上的组播侦听者(即希望接收组播数据的节点)的存在,并且能明确发现这些邻居节点所感兴趣的组播地址。这个协议就是组播侦听发现(MLD ), MLD v1源于IPv4的IGMPv2。二者之间一个比较重要的区别是:MLD使用ICMPv6(IP协议号58)消息类型,不同于IGMP(IP协议号2)消息类型。

MLDv1协议有三类消息类型:
(1)组播征听者查询消息(Type=130)。
a.一般查询消息。用于发现在直连的链路上哪些组播地址有组播征听者。
b.特定组播地址查询消息(Multicast AddressSpecific Query)。用于判断一个特定的组播地址在本地链路上是否有组播征听者。

(2)组播征昕者报告消息(Type=131)。
(3)组播征听者Done消息(Type=132)。

MLDV2协议只有二类消息类型:

(1)组播征听者查询消息(Type=130)。
a.一般查询消息。用于发现在直连的链路上哪些组播地址有组播征听者。
b.特定组播地址查询消息(Multicast AddressSpecific Query)。用于判断一个特定的组播地址在本地链路上是否有组播征听者。

c.特定组播地址和源地址查询消息(Multicast-address-and-source-specific query)。用于判断一个特定源的组播地址在本地链路上是否有组播征听者。

(2)组播征昕者报告消息(Type=143)。
关于本协议,以后会详细的描述。

其他如DHCPV6和DNSv6等等我都会在以后详细描述。敬请期待。。。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics