学术能力的缺乏并不意味着你就擅长混社会,说不定还不如在学校的表现

发掘积累过程的快感

首页 » BIBLE模型 » 编程基础 » IPv6技术详解

IPv6技术详解


当前,基于 Internet 的各种应用正在如火如荼地迅猛发展着,而与此热闹场面截然不同的是,Internet 当前使用的 IP 协议版本 IPv4 正因为各种自身的缺陷而举步维艰。在 IPv4 面临的一系列问题中,IP 地址即将耗尽无疑是最为严重的,有预测表明,以目前 Internet 发展速度计算,所有 IPv4 地址将在 2005~2010 年间分配完毕。为了彻底解决 IPv4 存在的问题,IETF 从 1995 年开始,着手研究开发下一代 IP 协议,即 IPv6。IPv6 具有长达 128 位的地址空间,可以彻底解决 IPv4 地址不足的问题,除此之外,IPv6 还采用分级地址模式、高效 IP 包头、服务质量、主机地址自动配置、认证和加密等许多技术。 

Ipv4 尴尬的现状

Internet 起源于 1968 年开始研究的 ARPANET,当时的研究者们为了给 ARPANET 建 立一个标准的网络通信协议而开发了 IP 协议。IP 协议 开发者当时认为 ARPANET 的网络个数不会超过数十个,因 此他们将 IP 协议的地址长度设定为 32 个二进制数位, 其中前 8 位标识网络,其余 24 位标识主机。然而随着 ARPANET 日益膨胀,IP 协议开发者认识到原先设想的网络个 数已经无法满足实际需求,于是他们将 32 位 IP 地址分 成了三类:A 类,用于大型企业;B 类,用于中型企 业;C 类,用于小型企业。A 类、B 类、C 类地址可以标 识的网络个数分别是 128、16384、2097152,每个网络可容纳的主 机个数分别是 16777216、65536、256。虽然对 IP 地址进行分类大大增 加了网络个数,但新的问题又出现了。由于一个 C 类网络仅能容纳 256 个主机,而个人计算机的普及使 得许多企业网络中的主机个数都超出了 256,因此, 尽管这些企业的上网主机可能远远没有达到 B 类地 址的最大主机容量 65536,但 InterNIC 不得不为它们分配 B 类地址 。这种情况的大量存在,一方面造成了 IP 地址资源 的极大浪费,另一方面导致 B 类地址面临着即将被 分配殆尽的危险。

非传统网络区域路由(Classless InterDomain Routing, CIDR),是节省 B 类地址的一个紧急措施。CIDR 的原理是为那些拥有数千个网络主机的企业分配一个由一系列连续的 C 类地址组成的地址块,而非一个 B 类地址。例如,假设某个企业网络有 1500 个主机,那么可能为该企业分配 8 个连续的 C 类地址,如:192.56.0.0 至 192.56.7.0,并将子网掩码定为 255.255.248.0,即地址的前 21 位标识网络,剩余的 11 位标识主机。尽管通过采用 CIDR,可以保护 B 类地址免遭无谓的消耗,但是依然无法从根本上解决 IPv4 面临的地址耗尽问题。

另一个延缓 IPv4 地址耗尽的方法是网络地址翻译(Network Address Translation, NAT),它是一种将无法在 Internet 上使用的保留 IP 地址翻译成可以在 Internet 上使用的合法 IP 地址的机制。NAT 使企业不必再为无法得到足够的合法 IP 地址而发愁了,它们只要为内部网络主机分配保留 IP 地址,然后在内部网络与 Internet 交接点设置 NAT 和一个由少量合法 IP 地址组成的 IP 地址池,就可以解决大量内部主机访问 Internet 的需求了。由于目前要想得到一个 A 类或 B 类地址十分困难,因此许多企业纷纷采用了 NAT。然而,NAT 也有其无法克服的弊端。首先,NAT 会使网络吞吐量降低,由此影响网络的性能。其次,NAT 必须对所有去往和来自 Internet 的 IP 数据报进行地址转换,但是大多数 NAT 无法将转换后的地址信息传递给 IP 数据报负载,这个缺陷将导致某些必须将地址信息嵌在 IP 数据报负载中的高层应用如 FTP 和 WINS 注册等的失败。  

IPv6 的对策

IPv6 采用了长度为 128 位的 IP 地址,彻底解决了 IPv4 地址不足的 难题。128 位的地址空间,足以使一个大企业将其所 有的设备如计算机、打印机甚至寻呼机等联入 Internet 而 不必担心 IP 地址不足。

IPv6 的地址格式与 IPv4 不同。一个 IPv6 的 IP 地址由 8 个地址节组成,每节包含 16 个地址位,以 4 个十六进制数书写,节与节之间用冒号分隔,除了 128 位的地址空间,IPv6 还为点对点通信设计了一种具有分级结构的地址,这种地址被称为可聚合全局单点广播地址(aggregatable global unicast address),其分级结构划分如图所示。开头 3 个地址位是地址类型前缀,用于区别其它地址类型。其后的 13 位 TLA ID、32 位 NLA ID、16 位 SLA ID 和 64 位主机接口 ID,分别用于标识分级结构中自顶向底排列的 TLA(Top Level Aggregator,顶级聚合体)、NLA(Next Level Aggregator,下级聚合体)、SLA(Site Level Aggregator,位置级聚合体)和主机接口。TLA 是与长途服务供应商和电话公司相互连接的公共网络接入点,它从国际 Internet 注册机构如 IANA 处获得地址。NLA 通常是大型 ISP,它从 TLA 处申请获得地址,并为 SLA 分配地址。SLA 也可称为订户(subscriber),它可以是一个机构或一个小型 ISP。SLA 负责为属于它的订户分配地址。SLA 通常为其订户分配由连续地址组成的地址块,以便这些机构可以建立自己的地址分级结构以识别不同的子网。分级结构的最底级是网络主机。  

Ipv6 中的地址配置

众所周知,手工配置主机 IP 地址是一件既费时又乏 味的事情,而管理分配给主机的静态 IP 地址更是一 项艰难的任务,尤其当主机 IP 地址需要经常改动的 时候。在 IPv4 中,动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)实现了主 机 IP 地址及其相关配置的自动设置。一个 DHCP 服务器拥 有一个 IP 地址池,主机从 DHCP 服务器租借 IP 地址并获得有 关的配置信息(如缺省网关、DNS 服务器等),由此 达到自动设置主机 IP 地址的目的。IPv6 继承了 IPv4 的这种自 动配置服务,并将其称为全状态自动配置(stateful autoconfiguration)。

除了全状态自动配置,IPv6 还采用了一种被称为无状态自动配置(stateless autoconfiguration)的自动配置服务。在无状态自动配置过程中,主机首先通过将它的网卡 MAC 地址附加在链接本地地址前缀 1111111010 之后,产生一个链接本地单点广播地址(IEEE 已经将网卡 MAC 地址由 48 位改为了 64 位。如果主机采用的网卡的 MAC 地址依然是 48 位,那么 IPv6 网卡驱动程序会根据 IEEE 的一个公式将 48 位 MAC 地址转换为 64 位 MAC 地址)。接着主机向该地址发出一个被称为邻居探测(neighbor discovrey)的请求,以验证地址的唯一性。如果请求没有得到响应,则表明主机自我设置的链接本地单点广播地址是唯一的。否则,主机将使用一个随机产生的接口 ID 组成一个新的链接本地单点广播地址。然后,以该地址为源地址,主机向本地链接中所有路由器多点广播一个被称为路由器请求( router solicitation)的配置信息请求,路由器以一个包含一个可聚合全局单点广播地址前缀和其它相关配置信息的路由器公告响应该请求。主机用它从路由器得到的全局地址前缀加上自己的接口 ID,自动配置全局地址,然后就可以与 Internet 中的其它主机通信了。

使用无状态自动配置,无需手动干预就能够改变网络中所有主机的 IP 地址。例如,当企业更换了联入 Internet 的 ISP 时,将从新 ISP 处得到一个新的可聚合全局地址前缀。ISP 把这个地址前缀从它的路由器上传送到企业路由器上。由于企业路由器将周期性地向本地链接中的所有主机多点广播路由器公告,因此企业网络中所有主机都将通过路由器公告收到新的地址前缀,此后,它们就会自动产生新的 IP 地址并覆盖旧的 IP 地址。  

Ipv6 中的安全协议

安全问题始终是与 Internet 相关的一个重要话题。由于在 IP 协议设计之初没有考虑安全性,因而在早期的 Internet 上 时常发生诸如企业或机构网络遭到攻击、机密数 据被窃取等不幸的事情。为了加强 Internet 的安全性,从 1995 年开始,IETF 着手研究制定了一套用于保护 IP 通信的 IP 安 全(IP Security,IPSec)协议。IPSec 是 IPv6 的一个组成部分,也是 IPv4 的一个 可选扩展协议。

IPSec 提供了两种安全机制:认证和加密。认证机制使 IP 通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭到改动。加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被他人截获而失密。IPSec 的认证包头(Authentication Header,AH)协议定义了认证的应用方法,封装安全负载(Encapsulating Security Payload,ESP)协议定义了加密和可选认证的应用方法。在实际进行 IP 通信时,可以根据安全需求同时使用这两种协议或选择使用其中的一种。AH 和 ESP 都可以提供认证服务,不过,AH 提供的认证服务要强于 ESP。

在一个特定的 IP 通信中使用 AH 或 ESP 时,协议将与一组安全信息和服务发生关联,称为安全关联(Security Association,SA)。 SA 可以包含认证算法、加密算法、用于认证和加密的密钥。IPSec 使用一种密钥分配和交换协议如 Internet 安全关联和密钥管理协议(Internet Security Association and Key Management Protocol,ISAKMP)来创建和维护 SA。SA 是一个单向的逻辑连接,也就是说,两个主机之间的认证通信将使用两个 SA,分别用于通信的发送方和接收方。

IPSec 定义了两种类型的 SA:传输模式 SA 和隧道模式 SA。传输模式 SA 是在 IP 包头(以及任何可选的扩展包头)之后和任何高层协议(如 TCP 或 UDP)包头之前插入 AH 或 ESP 包头,隧道模式 SA 是将整个原始的 IP 数据报放入一个新的 IP 数据报中。在采用隧道模式 SA 时,每一个 IP 数据报都有两个 IP 包头:外部 IP 包头和内部 IP 包头。外部 IP 包头指定将对 IP 数据报进行 IPSec 处理的目的地址,内部 IP 包头指定原始 IP 数据报最终的目的地址。传输模式 SA 只能用于两个主机之间的 IP 通信,而隧道模式 SA 既可以用于两个主机之间的 IP 通信,还可以用于两个安全网关之间或一个主机与一个安全网关之间的 IP 通信。安全网关可以是路由器、防火墙或 VPN 设备。

做为 IPv6 的一个组成部分,IPSec 是一个网络层协议。它只负责其下层的网络安全,并不负责其上层应用的安全,如 Web、电子邮件和文件传输等。也就是说,验证一个 Web 会话,依然需要使用 SSL 协议。不过,TCP/IPv6 协议簇中的协议可以从 IPSec 中受益,例如,用于 IPv6 的 OSPF 路由协议就去掉了用于 IPv4 的 OSPF 中的认证机制。Ipv4 向 Ipv6 的过渡。  

尽管 IPv6 比 IPv4 具有明显的先进性,但是 IETF 认识到,要想在短时间内将 Internet 和各个企业网络中的所有系统全部从 IPv4 升级到 IPv6 是不可能的,换言之,IPv6 与 IPv4 系统在 Internet 中长期共存是不可避免的现实。为此,做为 IPv6 研究工作的一个部分,IETF 制定了推动 IPv4 向 IPv6 过渡的方案,其中包括三个机制:兼容 IPv4 的 IPv6 地址、双 IP 协议栈和基于 IPv4 隧道的 IPv6。

兼容 IPv4 的 IPv6 地址是一种特殊的 IPv6 单点广播地址,一个 IPv6 节点与一个 IPv4 节点可以使用这种地址在 IPv4 网络中通信。这种地址是由 96 个 0 位加上 32 位 IPv4 地址组成的,例如,假设某节点的 IPv4 地址是 192.56.1.1,那么兼容 IPv4 的 IPv6 地址就是 0:0:0:0:0:0:C038:101。

双 IP 协议栈是在一个系统(如一个主机或一个路由器)中同时使用 IPv4 和 IPv6 两个协议栈。这类系统既拥有 IPv4 地址,也拥有 IPv6 地址,因而可以收发 IPv4 和 IPv6 两种 IP 数据报。

与双 IP 协议栈相比,基于 IPv4 隧道的 IPv6 是一种更为复杂的技术,它是将整个 IPv6 数据报封装在 IPv4 数据报中,由此实现在当前的 IPv4 网络(如 Internet)中 IPv6 节点与 IPv4 节点之间的 IP 通信。基于 IPv4 隧道的 IPv6 实现过程分为三个步骤:封装、解封和隧道管理。封装,是指由隧道起始点创建一个 IPv4 包头,将 IPv6 数据报装入一个新的 IPv4 数据报中。解封,是指由隧道终结点移去 IPv4 包头,还原原始的 IPv6 数据报。隧道管理,是指由隧道起始点维护隧道的配置信息,如隧道支持的最大传输单元(MTU)的尺寸等。

IPv4 隧道有四种方案:路由器对路由器、主机对路由器、主机对主机、路由器对主机。如图所示的使用 IPv4 路由基础设施传递 IPv6 数据报的网络中,可以根据两个主机之间特定的通信选用相应的隧道方案。例如:当主机 2 向主机 4 发送一个 IPv6 数据报时,路由器 A 将把该 IPv6 数据报封装在一个目的地址为路由器 B 的 IPv4 数据报中。当路由器 B 收到该 IPv4 数据报后,就将它解封,取出其中的 IPv6 数据报并将其发往主机 4。在这个隧道中,隧道终结点(路由器 B)不是数据报的最终目的地址(主机 4)。当隧道起始点(路由器 A)建立隧道时,必须确定隧道终结点并从配置信息中找到隧道终结点的地址,因此这种类型的隧道被称为配置隧道(configured tunneling)。当主机 7 向主机 1 发送一个 IPv6 数据报时,主机 7 在它与路由器 A 之间建立一个主机对路由器隧道。因为路由器 A 不是该数据报的最终目的地址,所以这种主机对路由器隧道也是配置隧道。

当进行通信的两个主机都有兼容 IPv4 的 IPv6 地址时,数据发送方主机将建立一个主机对主机隧道。隧道起始点(数据发送方主机)确定数据接收方主机就是隧道终结点,并自动从其兼容 IPv4 的 IPv6 地址中抽取后 32 个地址位以确定隧道终结点的 IPv4 地址,这种类型的隧道被称为自动隧道(automated tunneling)。例如,当图中的主机 5 向主机 7 发送数据时,将使用从主机 5 到主机 7 的自动隧道。自动隧道也可以应用于路由器对主机的隧道方案,例如,当主机 4 向主机 5 发送数据时,主机 4 将使用从路由器 B 到主机 5 的自动隧道。

双 IP 协议栈和基于 IPv4 的 IPv6 网络使 IPv4 网络能够以可控的速度向 IPv6 迁移。在开始向 IPv6 过渡之前,首先必须设置一个同时支持 IPv4 和 IPv6 的新的 DNS 服务器。在该 DNS 服务器中,IPv6 主机名称与地址的映射可以使用新的 AAAA 资源记录类型来建立,IPv4 主机名称与地址的映射仍然使用 A 资源记录类型来建立。  

结 论

IPv6 是一个建立可靠的、可管理的、安全和高效的 IP 网络的长期解决方案。尽管 IPv6 的实际应用之日还需耐心等待,不过,了解和研究 IPv6 的重要特性以及它针对目前 IP 网络存在的问题而提供的解决方案,对于制定企业网络的长期发展计划,规划网络应用的未来发展方向,都是十分有益的。

互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼。 “Bible”是圣经,有权威的书,我们的本意就是为开发者提供真正有用的的资料。 我的电子邮件 1217179982@qq.com,您在开发过程中遇到任何问题,欢迎与我联系。
Copyright © 2024. All rights reserved. 本站由 Helay 纯手工打造. 蜀ICP备15017444号