目录
IPv4协议是目前广泛部署的因特网协议。在因特网发展初期,IPv4以其协议简单、易于实现、互操作性好的优势而得到快速发展。但随着因特网的迅猛发展,IPv4设计的不足也日益明显,IPv6的出现,解决了IPv4的一些弊端。
IPv6(Internet Protocol Version 6)也被称为IPng(IP Next Generation)。它是Internet工程任务组IETF(Internet Engineering Task Force)设计的一套规范,是IPv4(Internet Protocol Version 4)的升级版本。
本文将介绍IPv6的基本概念、IPv6地址分类、IPv6报文格式等。
IPv6概述
IPv4现状
2011年2月3日,IANA(Internet Assigned Numbers Authority,因特网地址分配组织)宣布将其最后的468万个IPv4地址平均分配到全球5个RIR(Regional Internet Registry,区域互联网注册管理机构),此后IANA再没有可分配的IPv4地址。
全球IPv6发展现状
Why IPv6 ?
IPv6优势
“无限”地址空间: 地址长度为128bit,海量的地址空间,满足物联网等新兴业务、有利于业务演进及扩展。
层次化的地址结构 : 相较于IPv4地址,IPv6地址的分配更加规范,利于路由聚合(缩减IPv6路由表规模)、路由快速查询。
即插即用 : IPv6支持无状态地址自动配置(SLAAC),终端接入更简单。
简化的报文头部 : 简化报文头,提高效率;通过扩展包头支持新应用,利于路由器等网络设备的转发处理,降低投资成本。
安全特性 : IPsec、真实源地址认证等保证端到端安全;避免NAT破坏端到端通信的完整性。
移动性: 对移动网络实时通信有较大改进,整个移动网络性能有比较大的提升。
增强的QoS特性 : 额外定义了流标签字段,可为应用程序或者终端所用,针对特殊的服务和数据流,分配特定的资源。
IPv6过渡技术简介
由于NAT技术的应用,缓解了IPv4地址不足产生的问题,但是部署IPv6是解决IPv4地址不足的最终方案。当前世界上不同地区对部署IPv6的需求强烈程度不一,且当前IPv4网络仍然占主流地位,因此短时间内IPv6和IPv4将会共存。
IPv4网络演变为IPv6网络主要有以下三种技术:
双栈技术:在一台设备上同时启用IPv4协议栈和IPv6协议栈的技术。
隧道技术:将一种协议的数据封装在另一种协议中的技术。
转换技术:将IPv6地址和IPv4地址进行转换的一种技术。
没有最好的过渡技术方案,没有任何一种技术方案能够解决所有问题,通常是多种技术组合成不同的过渡方案,满足不同的网络访问场景。
IPv4/IPv6双栈:
IPv4及IPv6并存。
对现有IPv4业务影响较小。
简单、易理解
网络规划设计工作量相对更少。
现有软硬件已经支持双栈
隧道技术
将IPv4流量封装在IPv6隧道中
将IPv6流量封装在IPv4隧道中。
部署隧道技术的设备需支持双栈
仅适用于实现孤岛互通的临时状态,并不适用于长期、稳定的业务形态。
转换技术
将IPv4流量转换成IPv6
适用于纯IPv4网络与纯IPv6网络之间的通信
破坏了端到端连接的完整性。
网络管理/审计变得复杂。
需在网络中部署网络层协议转换(NAT)设备、DNS设备。
IPv6路由协议简介
IPv6地址介绍
IPv6地址概述
IPv6地址
IPv6地址的长度为128bit。一般用冒号分割为8段,每一段16bit,每一段内用十六进制表示。
与IPv4地址类似,IPv6也用“IPv6地址/掩码长度”的方式来表示IPv6地址。
IPv6地址: 2001:0DB8:2345:CD30:1230:4567:89AB:CDEF/64
地址空间
为什么IPv6协议的地址长度是128bit?
CPU处理字长发展至今分别经历了4bit、8bit、16bit、32bit、64bit等,当数据能用2的指数幂字长的二进制数表示时,CPU对数值的处理效率最高。
IPv4地址长度为32bit,原因之一就是当时互联网上的主机CPU字长为32bit。从处理效率和未来网络扩展性上考虑,将IPv6的地址长度定为128bit是十分合适的。
IPv6的128bit地址是一个什么概念?
IPv4有(232)= 4,294,967,296个地址。
IPv6有(2128 = 296x232 )= 340,282,366,920,938,463,463,374,607,431,768,211,456个地址(340万亿万亿万亿个地址),相当于地球表面每平方米可以分配到67万亿个地址。
夸张的说,地球上每一粒沙子都可以分配到一个IPv6地址。
IPv6地址格式
IPv6地址结构
一个IPv6地址可以分为如下两部分:
网络前缀:nbit,相当于IPv4地址中的网络ID。
接口标识:(128-n)bit,相当于IPv4地址中的主机ID。
IPv6单播地址示例:2001:0DB8:6101:0001:5ED9:98FF:FECA:A298/64。
IPv6地址前缀
鉴于IPv4地址在规划和分配上的局限性,IETF对IPv6地址类型进行了精细划分,不同类型的IPv6地址被赋予了不同的前缀,且受地址分配机构的严格管理。
现阶段,常用的IPv6地址或前缀有:
IPv6地址接口标识
接口ID可通过三种方式生成:手工配置、系统自动生成,或基于IEEE EUI-64规范生成。
其中,基于IEEE EUI-64规范自动生成接口ID的方式最为常用,该方式将接口的MAC地址转换为IPv6接口标识。
IPv6地址类型
IPv6地址类型
单播地址(Unicast Address):标识一个接口,目的地址为单播地址的报文会被送到被标识的接口。在IPv6中,一个接口拥有多个IPv6地址是非常常见的现象。
组播地址(Multicast Address):标识多个接口,目的地址为组播地址的报文会被送到被标识的所有接口。只有加入相应组播组的设备接口才会侦听发往该组播地址的报文。
任播地址(Anycast Address):任播地址标识一组网络接口(通常属于不同的节点)。目标地址是任播地址的数据包将
发送给其中路由意义上最近的一个网络接口。
IPv6没有定义广播地址(Broadcast Address)
IPv6常见单播地址 - GUA
GUA(Global Unicast Address,全球单播地址),也被称为可聚合全球单播地址。该类地址全球唯一,用于需要有互联网访问需求的主机,相当于IPv4的公网地址。
IPv6常见单播地址 - ULA
ULA(Unique Local Address,唯一本地地址)是IPv6私网地址,只能够在内网中使用。该地址空间在IPv6公网中不可被路由,因此不能直接访问公网。
IPv6常见单播地址 - LLA
LLA(Link-Local Address,链路本地地址)是IPv6中另一种应用范围受限制的地址类型。LLA的有效范围是本地链路,前缀为FE80::/10。
IPv6组播地址
IPv6组播地址标识某个组,目的为组播地址的报文会被送到该组播组内的成员。组播地址由前缀(FF::/8),标志(Flag)字段、范围(Scope)字段以及组播组ID(Group ID)4个部分组成。
IPv6组播MAC
组播IPv6报文的目的IP为组播IPv6地址,同样,目的MAC为组播MAC地址。
组播MAC的前16bit为“33:33”,是专门为IPv6组播预留的MAC地址前缀。后32bit从组播IPv6地址的后32bit直接映射而来。
被请求节点组播地址
当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。该地址主要用于邻居发现机制和地址重复检测功能。被请求节点组播地址的有效范围为本地链路范围。
被请求节点组播地址 - 示例
PC1发送数据至PC2前,首先需要获取其MAC地址。PC1将发起类似IPv4中ARP的解析流程,IPv6使用ICMPv6的NS及NA报文来实现地址解析过程,NS报文的目的IPv6地址为目标IPv6单播地址对应的被请求节点组播地址。
IPv6任播地址
任{播地址标识一组网络接口(通常属于不同的节点)。任播地址可以作为IPv6报文的源地址,也可以作为目的地址。
IPv6地址和IPv4地址比较
IPv6地址规划举例
IPv6地址规划举例
IPv6地址使用建议
地址规划要点
一般而言,ISP从地址分配机构获取的IPv6地址至少为/32前缀长度。企业用户获得的前缀长度往往为/48。
虽然IPv6地址空间巨大,但是在规划网络时,依然需要对地址进行合理规划。
确保IPv6地址的全网唯一性(除某些特殊的应用外,如anycast)。
确保IPv6地址规划的连续性、可聚合性、可扩展性。
业务地址:可在IPv6地址中规划适当bit用于承载业务信息、VLAN信息或位置信息,利于路由规划、QoS部署。
用户地址:考虑为不同业务类型的用户预留连续的地址段。通过特定bit确定用户类型、分布区域等。
建议为终端网段(用户主机、服务器等)分配/64的前缀长度。
建议为P2P链路分配/127的前缀长度。
建议为Loopback接口分配/128的前缀长度。
IPv6基础配置
配置介绍
-
使能设备的IPv6报文转发功能。
[<Huawei> system-view
[Huawei] ipv6
-
使能接口的IPv6功能。
[Huawei] interface interface-type interface-number
[Huawei-GigabitEthernet1/0/0] ipv6 enable
-
配置IPv6全球单播地址和链路本地地址
[Huawei-GigabitEthernet1/0/0] ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }
每个接口下最多可配置10个全球单播地址和1个链路本地地址。 -
使能设备OSPFv3功能。
[<Huawei> system-view
[Huawei] ospfv3 [ process-id ]
OSPFv3支持多进程,一台路由器上启动的多个OSPFv3进程之间由不同的进程号区分。OSPFv3进程号在启动OSPFv3时进行设置,它只在本地有效,不影响与其它路由器之间的报文交换。 -
配置OSPFv3的Router ID。
[Huawei-ospfv3-1] router-id router-id
OSPFv3的Router ID必须手工配置,如果没有配置ID号,OSPFv3无法正常运行。 -
在接口上使能OSPFv3的进程,并指定所属区域。
[Huawei] interface interface-type interface-number
[Huawei-GigabitEthernet1/0/0] ospfv3 process-id area area-id
案例:配置一个双栈网络
配置需求:
配置R1、R2的接口IP地址。
R1和R2分别配置OSPFv2和OSPFv3,实现PC1和PC2的双栈互访。
- 在R1、R2全局和相关接口使能IPv6功能(以R1为例)。
[R1]ipv6
[R1]interface GigabitEthernet 1/0/0
[R1-GigabitEthernet1/0/0]ipv6 enable
[R1]interface GigabitEthernet 2/0/0
[R1-GigabitEthernet2/0/0]ipv6 enable
- 在PC、R1、R2相应接口配置IPv4和IPv6全球单播地址(以R1为例)。
[R1]interface GigabitEthernet 1/0/0
[R1-GigabitEthernet1/0/0]ip address 10.0.12.1 24
[R1-GigabitEthernet1/0/0]ipv6 address 2001:DB8:1::1 64
[R1]interface GigabitEthernet 2/0/0
[R1-GigabitEthernet2/0/0]ip address 192.168.1.254 24
[R1-GigabitEthernet2/0/0]ipv6 address 2001:DB8:2::1 64
在R1、R2配置OSPFv2使得PC1和PC2可以通过IPv4网络通信。
[R1]ospf 1 router-id 10.0.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]quit
[R1-ospf-1]
[R2]ospf 1 router-id 10.0.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]quit
[R2-ospf-1]
在R1、R2配置OSPFv3使得PC1和PC2可以通过IPv6网络通信。
[R1]ospfv3
[R1-ospfv3-1]router-id 10.0.1.1
[R1-ospfv3-1]quit
[R1]interface gigabitethernet1/0/0
[R1-gigabitethernet1/0/0]ospfv3 1 area 0
[R1]interface gigabitethernet2/0/0
[R1-gigabitethernet2/0/0]ospfv3 1 area 0
[R2]ospfv3
[R2-ospfv3-1]router-id 10.0.2.2
[R2-ospfv3-1]quit
[R2]interface gigabitethernet1/0/0
[R2-gigabitethernet1/0/0]ospfv3 1 area 0
[R2]interface gigabitethernet2/0/0
[R2-gigabitethernet2/0/0]ospfv3 1 area 0
在R1上Ping PC1的IPv6地址(IPv4略)。
<R1>ping ipv6 2001:db88:2::2
PING 2001:db88:2::2 : 56 data bytes, press CTRL_C to break
Reply from 2001:DB88:2::2
bytes=56 Sequence=1 hop limit=255 time = 40 ms
Reply from 2001:DB88:2::2
bytes=56 Sequence=2 hop limit=255 time = 10 ms
在PC1上Ping PC2的IPv6地址(IPv4略)。
PC1>ping 2001:db88:3::2
Ping 2001:db88:3::2: 32 data bytes, Press Ctrl_C to break
From 2001:db88:3::2: bytes=32 seq=1 hop limit=64 time<1 ms
From 2001:db88:3::2: bytes=32 seq=2 hop limit=64 time=16 ms
From 2001:db88:3::2: bytes=32 seq=3 hop limit=64 time=16 ms
From 2001:db88:3::2: bytes=32 seq=4 hop limit=64 time<1 ms
IPv6作为下一代互联网协议,具备了IPv4无法比拟的诸多优点,可以完美解决现阶段IPv4无法满足的业务发展的问题。
IPv6不仅仅具有庞大的地址空间,除此以外,IPv6还简化了报文头,提升了路由器报文转发效率;IPv6地址易于划分与规划,便于路由聚合;IPv6可以实现即插即用,增强了QoS等等……
通过版本升级(OSPFv3)或者协议扩展(IS-IS、BGP4+),使得在IPv4网络中常用的动态路由协议在IPv6网络中仍然可以使用。