2.2.3 路由和编址
1.IPv6的地址结构
IPv6的最显著特点就是加大了地址长度。从32位增到128位,不仅保证了可以对成千上万的主机编址,还保证了地址结构可以有更多层次,而不止是IPv4提供的网络、子网和主机的三个基本层。目前最新的IPv6的地址结构标准由RFC 4291[7]定义。
IPv6的地址分为三类。
(1)Unicast:单播(单点传送)地址。
(2)Multicast:组播(多点传送)地址。
(3)Anycast:泛播(任意点传送)地址。
IPv6没有定义广播地址,其功能由组播地址替代。
一个完整的IPv6地址的表示法:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx。
例如:2001:0000:1F1F:0000:0000:0100:11A0:ADDF。
为了简化,每段中前面的0可以省略,连续的0可省略为“:”,但只能出现一次。例如:
1080:0:0:0:8:800:200C:417A可简写为1080:8:800:200C:417A。
FF01:0:0:0:0:0:0:101可简写为FF01:101。
0:0:0:0:0:0:0:1可简写为:1。
0:0:0:0:0:0:0:0可简写为:。
类似于IPv4中的CDIR表示法,IPv6用前缀来表示网络地址空间。例如,2001:251:e000:/48表示前缀为48位的地址空间,其后的80位可分配给网络中的主机,共有280个地址。
通过IPv6地址的前几位,即可确定其地址类型。
常见的IPv6地址及前缀如下。
(1)2001:/16:全球可聚合地址,由IANA按地域和ISP进行分配,是最常用的IPv6地址,属于单播地址。
(2)2002:/16:6to4地址,用于6to4自动构造隧道技术的地址,属于单播地址。
(3)3ffe:/16:早期开始的IPv6 6bone试验网地址,属于单播地址。
(4)fe80:/10:本地链路地址,用于单一链路,适用于自动配置、邻居发现等,路由器不转发以fe80开头的地址。
(5)fec0:/48:本地站点地址。
(6):A.B.C.D:兼容IPv4的IPv6地址,其中<A.B.C.D>代表IPv4地址。自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6节点将使用这些地址。
(7):FFFF:A.B.C.D:是IPv4映射过来的IPv6地址,其中<A.B.C.D>代表IPv4地址。例如:ffff:202.120.2.30,它在不支持IPv6的网上用于表示IPv4节点。
2.IPv6的路由
在网络层,互联网可以被看做由一组互相连接的自治系统(Autonomous System, AS)组成,相应的路由协议可以分为内部网关协议(Internal Gateway Protocol, IGP)和外部网关协议(External Gateway Protocol, EGP)两大类,分别用来处理自治系统内部和外部的路由。IGP主要有RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、Cisco的IGRP(Interior Gateway Routing Protocol)和ANSI的IS-IS(Intermediate System to Intermediate System)等协议,EGP主要有EGP、BGP(Border Gateway Protocol)等协议。
1)OSPF协议
OSPF即开放最短路径优先协议,是现在主要使用的内部网关协议之一。它采用的路由算法是SPF(最短路径优先)算法,其中O(Open,开放)指算法是发表在公开文献上的,是一种公开的标准。
IPv6网络中的OSPF协议是其第三版,称为OSPFv3(即OSPF for IPv6),最新版的标准是RFC 5340[8],它是IPv6推荐使用的内部网关协议。OSPFv3并不仅是为了让OSPF支持IPv6的128位地址而做的修补,它是在OSPF协议多年的实际运行经验及大量理论研究基础上进行的全面升级,经过升级后的OSPFv3协议对原有的OSPF协议进行了改进,并且具有很多新特征,能够适应更加复杂的网络情况。
OSPFv3直接运行于IPv6之上,而OSPFv2直接运行于IPv4之上。OSPF的基本机制,如支持区域划分、SPF计算、扩散(flooding)、指定路由器的选举等,在OSPFv3中没有改变。OSPFv3的新特性主要体现在以下几个方面。
(1)OSPFv3协议设计的主要目的是“开发一种独立于任何具体网络层的路由协议”。为实现这一目的,OSPFv3的内部路由信息被重新进行了设计。与过去的版本不同,OSPFv3不向位于OSPF分组和链路状态记录(LSA)起始位置的头部插入基于IP的数据。OSPFv3利用独立于网络协议的信息来执行过去需要IP报头数据完成的关键任务,如识别和发布路由数据的LSA。
(2)OSPFv3增加了多种可选功能,如组播OSPF(MOSPF),以实现通用性。为了达到这一目的,OSPFv3扩展了在OSPF分组头部的网络设备用来互相通告附加功能的选项数据域。多数OSPFv3路由器之间交互的信息中都包含选项域,运行OSPFv3的设备可以支持多达24种可选功能,而以前的版本只支持8种功能。
(3)为了简化复杂的容错网络的建设,OSPFv3引入了Instance ID和R-bit选项,这样在一个接口链路上可以运行多套OSPFv3协议。作为每个OSPFv3分组头的一个组件,Instance ID不再依赖于过去需要的复杂的认证方案或访问清单,就可以控制共享物理网络和OSPF域的路由器之间的通信。除了Instance ID外,OSPFv3还可以通过R-bit使服务器这类最终系统具有有效的冗余性。
(4)OSPFv3使用的安全保障机制与过去的协议版本完全不同,它通过提供非本身固有的安全性来简化消息的结构。通过利用IPv6包的安全扩展头的集成系统,OSPFv3消息可以被认证和加密,而这在以前是需要增加复杂的协议才能实现的功能。
2)RIP协议
RIP即路由信息协议,是现在主要使用的内部网关协议之一。它采用的路由算法是距离向量(Distance Vector)算法。
IPv6网络中的RIP协议称为RIPng,由RFC 2080[9]定义,与RIPv1和RIPv2相比,有以下主要的差异。
(1)地址版本。RIPv1、RIPv2是基于IPv4的,地址域只有32位,而RIPng基于IPv6,使用的所有地址均为128位。
(2)子网掩码和前缀长度。RIPv1被设计成用于无子网的网络,因此没有子网掩码的概念,这就决定了RIPv1不能用于传播变长的子网地址或用于CIDR的无类型地址。RIPv2增加了对子网选路的支持,因此使用子网掩码区分网络路由和子网路由。IPv6的地址前缀有明确的含义,因此RIPng中不再有子网掩码的概念,取而代之的是前缀长度。同样也是由于使用了IPv6地址,RIPng中也没有必要再区分网络路由、子网路由和主机路由。
(3)协议的使用范围。RIPv1、RIPv2的使用范围被设计成不局限于TCP/IP协议簇,还能适应其他网络协议簇的规定,因此报文的路由表项中包含有网络协议簇字段,但实际的实现程序很少被用于其他非IP的网络,因此RIPng中去掉了对这一功能的支持。
(4)对下一跳的表示。RIPv1中没有下一跳的信息,接收端路由器把报文的源IP地址作为到目的网络路由的下一跳。RIPv2中明确包含了下一跳信息,便于选择最优路由和防止出现选路环路及慢收敛。与RIPv2不同,为防止RTE过长,同时也为了提高路由信息的传输效率,RIPng中的下一跳字段是作为一个单独的RTE存在的。
(5)报文长度。RIPv1、RIPv2中对报文的长度均有限制,规定每个报文最多只能携带25个RTE。而RIPng对报文长度、RTE的数目都不作规定,报文的长度是由介质的MTU决定的。RIPng对报文长度的处理,提高了网络对路由信息的传输效率。
3)BGP及其扩展
边界网关协议(BGP)是目前互联网中应用广泛的域间路由协议,目前协议版本号是4(即BGP4)。BGP4最早由RFC 1771描述(1995年),在2006年则发布了BGP的最新描述RFC 4271[10]。
BGP使用TCP传输协议消息,而TCP本身属于传输层机制,能够在IPv4和IPv6上运行,和底层IP版本无关。BGP的传输机制和MBGP[11]能力结合起来,使得BGP承载的信息与网络层无关。例如,能够通过IPv4网络传递IPv6路由,也能通过IPv6网络传递IPv4路由。这一能力决定了BGP在IPv6过渡阶段将起到重要作用,BGP可以用于单纯IPv6环境,也可以用于IPv4和IPv6混合环境。
2.2.4 过渡
IPv6是对IPv4的重新设计,解决了IPv4所产生的问题,进而提供更好的服务,具有大幅推进互联网发展的潜力,是下一代互联网的支撑协议。可以预见,IPv4和IPv6将会长期共存,并且将会逐渐过渡到IPv6。然而IPv6的设计并不兼容IPv4:IPv6不能与IPv4直接通信。本质上讲,IPv6是与IPv4平行、独立的网络协议。为此,需要多种过渡机制来保证各种场景下IPv4和IPv6的连通性,进而加快向IPv6过渡的进程。
IPv4与IPv6的互联互通问题最终可归结为两个基本问题:异构网络互联和异构网络穿越。当两个直连的网络或主机使用不同的地址族时,就会出现异构网络互联问题。由于通信报文的源地址与目的地址采用的是不同的地址族,因此为了实现这样的异构通信,协议转换机制是必不可少的,即翻译过渡技术。由于IPv4/IPv6地址空间存在较大的不对称,因此将翻译过渡技术运用到大规模的网络中时,其技术难度很大。目前,按照地址转换方式的不同,网络侧的翻译过渡技术可分为无状态翻译与有状态翻译两类,另外还有主机侧翻译,通常用于终端用户的TCP/IP协议栈。
当处于IPv6/IPv4网络中的两个或更多IPv4/IPv6本地网络或主机需要进行通信时,就会出现异构穿越问题。为了实现这种穿越异构网络的通信,需要引入过渡技术,即隧道过渡技术。如果IPv4本地网络或主机被IPv6网络分隔,则需要使用IPv4-over-IPv6穿越机制;反之,则需要使用IPv6-over-IPv4穿越机制。隧道技术通过对报文的封装和解封装,使得两个同构网络能够在一个异构网络的两边桥接起来从而实现相互通信。隧道技术只需在网络的边缘路由器上配置好封装表就可实现对分组的透明传输,是无状态且轻量级的。但隧道技术也存在只能实现相同协议之间的互联,不能解决传统的IPv4网络和IPv6网络互通的问题。按穿越场景不同,可分为网状隧道和星形隧道两种。
关于过渡技术的详细情况,详见本书第4章。
2.2.5 移动
在IPv6网络的设计中,对移动网络的支持是一个重要的组成部分。在RFC 1752——“The Recommendation for the IP Next Generation Protocol(下一代IP协议建议)”的6.1节IPng技术标准文献中明确指出:协议必须支持可移动主机、网络和网络互联(The protocol must support mobile hosts, networks and internetworks)。
移动IPv6协议,即MIPv6(Mobility support in IPv6)最早由RFC 3775描述(2004年),在2011年则发布了BGP的最新描述RFC 6275[11]。与移动IPv4协议一样,移动IPv6中仍然有移动节点和家乡代理;家乡地址、家乡链路、转交地址和外地链路的概念也几乎一样;其主要工作过程也和移动IPv4的三大元素相似,即代理搜索、注册和选路。
移动IPv6协议既汲取了移动IPv4的经验,又充分利用了IPv6协议的新特性,移动IPv6协议与移动IPv4协议相比有如下优点。
(1)不需要外地代理:IPv6协议有巨大的地址空间,移动节点漫游到任何一个网络,都可以利用IPv6协议中的邻居发现协议和地址自动配置协议来获取转交地址,不再像移动IPv4协议那样需要外地代理。
(2)实现了路由优化:移动节点MN移动后,除了向家乡代理进行注册以外,还可以向通信对端CN进行注册,使得CN可以直接把数据发给MN,解决了三角路由的问题,减少了传输延迟和网络带宽的消耗。
(3)用路由机制代替隧道封装:CN和MN之间的数据发送,有效利用了IPv6的路由扩展头和目的地选项扩展头,不仅可以有效传递相关信息,而且路径上绝大多数路由器根本不理会这些扩展头,因此处理速度快、效率高。在移动IPv4中则需要使用隧道,增加了分组传输的开销。
(4)更好的安全性保护:注册过程使用了IPv6所提供的强有力的认证机制,能够对注册等信息进行认证和保护。
(5)解决了输入过滤问题:移动IPv6协议通过使用IPv6扩展头,使得数据同时携带家乡地址和转交地址,从而解决了移动IPv4中的路由过滤问题。
(6)优化家乡代理应答:家乡代理地址发现机制在移动IPv6协议中采用泛播(Anycast)形式,仅返回一个应答给移动节点,而在移动IPv4协议中采用广播的机制,收到请求的每个家乡代理都分别返回一个应答给移动节点。
2.2.6 安全
IPv6协议本身考虑了对网络安全的更好支持,提高安全性是其重要的设计出发点之一,已将IPSec作为实现必选项。但是,出于兼容性的考虑,IPv6并没有完全颠覆IPv4时代所采用的基本安全机制,而是采用逐步引入增强措施的方式来实现安全性的提高。如果能够将IPv6的安全增强机制进行合理应用,将会对IPv6的网络安全状况产生积极的影响。下一代互联网安全机遇与挑战并存。
IPv6协议是网络层的协议,因此其对网络安全问题的影响很大一部分集中在网络层。IPv6安全问题主要可以划分为以下几类:和IPv4协议类似的安全问题(如窃听攻击、应用层攻击、中间人攻击、洪泛攻击等);IPv6协议产生的新的安全问题;由IPv4向IPv6过渡带来的安全问题及下一代互联网新型应用带来的安全问题。
下一代互联网在安全方面总体来说主要包括以下挑战。
(1)针对IPv6协议的一些新特点,某些安全攻击的形式和原理会产生变化,产生新的安全攻击,需要研发IPv6的网络安全设备。同时,目前IPv6尚未大规模商用,还缺乏大规模的IPv6网络环境来验证IPv6安全设备的有效性。
(2)IPv6地址空间扩大后,使得国家信息安全监管体系的可扩展性面临极大挑战;IPv6协议提供的IPSec加密功能,使得已有网络安全监管系统在有害信息的识别与过滤方面带来新的问题,还有可能增大安全事件事后溯源的难度。
(3)网络安全关键技术问题尚待解决,云计算、三网融合、物联网等新应用产生新的安全问题,以及多种业务模式下的网络安全审计问题等,都是需要解决的关键技术问题。
(4)域名体系存在安全隐患,我国仍然缺乏对根域名服务器的最终管理权,域名体系安全受制于人。此外,我国域名服务体系缺少统一的管理体系、监控分析、技术规范及安全防范措施,无法保障长期安全、稳定服务。
下一代互联网为解决上述安全问题提供了技术基础平台,目前IPv6还没有大规模使用,这就使我们可以在建网初期就突出安全顶层设计和整体规划,制定科学的防御方案和安全管理措施,研究网络安全架构、机制和技术,攻克关键核心技术,使下一代互联网比目前的互联网更安全、可信、可控、可管。
参考文献
[1]Internet Protocol, Version 6(IPv6)Specification.RFC 2460,1998.
[2]Andrew.计算机网络(第4版).潘爱民,译.北京:清华大学出版社.
[3]IPv6协议百度百科:http://baike.baidu.com/view/21907.htm.
[4]Christian Huitema.新因特网协议IPv6(第2版).陶文星,胡文才,译.北京:清华大学出版社.
[5]Internet Control Message Protocol(ICMPv6)for the Internet Protocol Version 6(IPv6)
Specification.RFC 4443,2006.
[6]Neighbor Discovery for IP version 6(IPv6).RFC 4681,2007.
[7]IP Version 6 Addressing Architecture.RFC 4291,2006.
[8]OSPF for IPv6.RFC 5340,2008.
[9]RIPng for IPv6.RFC 2080,1997.
[10]A Border Gateway Protocol 4(BGP-4).RFC 4271,2006.
[11]Multiprotocol Extensions for BGP-4.RFC 4760,2007.
[12]The Recommendation for the IP Next Generation Protocol.RFC 1752,1995.
[13]Mobility Support in IPv6.RFC 6275,2011.