1.什么是IPv6?
IPv6(Internet Protocol version 6)
,即互联网协议第六版,也被称为IPng
(IP Next Generation
),是用于替代IPv4
的下一代IP
协议。它所在的网络层提供了无连接的数据传输服务。IPv6
是IETF
设计的一套规范,是IPv4
的升级版本。
它解决了目前IPv4
存在的许多不足之处,IPv6
和IPv4
之间最显著的区别就是IP地址
长度从原来的32位
升级为128位
。IPv6
以其简化的报文头格式、充足的地址空间、层次化的地址结构、灵活的扩展头、增强的邻居发现机制将在未来的市场竞争中充满活力。
2.IPv6产生的原因
在Internet
发展初期,IPv4
以其协议简单、易于实现、互操作性好的优势而得到快速发展。但随着网络的迅猛发展,IPv4
协议的各种问题开始显现:
公有IP地址数量不足
IPv4
地址由全球5个
互联网地址分配机构管理负责,IPv4
地址空间约42.9
亿,实际可用约36.47
亿个,已在2019年
全部分配完毕,这意味着没有更多的IPv4
地址可以分配给网络服务提供商或企业。作为严重稀缺资源,用户申请固定公有IP
地址困难加大,并且费用十分昂贵。私有地址交流效率低
在
IPv4
地址枯竭阶段和IPv6
过渡工作未完成之前,通过NAT
技术暂时解决了地址匮乏和爆炸式增长的入网需求问题,但NAT
技术本身也存在不足,例如,增加了网络的复杂度。由于维护IP
地址间及端口号映射关系而增加的网络设备工作负担,使网络整体结构变得脆弱。互联网的本质是提供人与人之间的连接,NAT
破坏了这个原则。设备维护的路由表表项数量过大
由于
IPv4
发展初期的分配规划问题,造成许多IPv4
地址的分配不连续,不能有效聚合路由。日益庞大的路由表耗用大量内存,对设备成本和转发效率产生影响。不易进行自动配置和重新编址
由于
IPv4
地址只有32 bit
,并且地址分配不均衡,导致在网络扩容或重新部署时,经常需要重新分配IP
地址,维护工作量较大。远程访问无法保证业务质量
在传统的企业组网配置中,对于移动用户(移动办公人员)、远端用户和合作伙伴联网需求,一般会通过
VPN
技术以专用软件、专用/集成硬件或搭建VPN
服务器等方式实现。由此带来了软件开发运维复杂度高、硬件产品方案兼容性差、IT
投入成本加大、安全风险提高等问题,并且企业无法预料基于公共互联网传输的可靠性,在面对大流量传输时无法差异化保证业务质量。安全溯源困难
IPv4
制定时并没有仔细针对安全性进行设计,因此,固有的框架结构并不能支持端到端的安全。企业正在使用的IPv4
网络,由于其在设计时几乎没有安全性考虑,随着地址枯竭和分配严重不平衡,NAT
方式成为主流选择,即NAT
背后的终端用户分配到的一般都是私有地址,网络中一旦有非法信息发布或者病毒传播,是难以追溯到源地址的,这大大加剧了网络安全问题。
3.IPv6的地址格式
IPv6
地址总长度为128
比特,通常分为8
组,每组为4
个十六进制数的形式,每组十六进制数间用冒号分隔。IPv6
地址包括网络前缀和接口标识两部分。
例如:2001:0DB8:0000:0000:0000:0000:0346:8D58,这是IPv6
地址的首选格式。
为了书写方便,IPv6
还提供了压缩格式,以上述IPv6
地址为例,具体压缩规则为:
每一组中的前导“ 0
”都可以省略。地址中包含的连续全为 0
的组,可以用双冒号“::
”来代替。
4.IPv6的地址结构
一个IPv6地址可以分为如下两部分:
网络前缀:n比特,相当于 IPv4
地址中的网络ID接口标识: 128-n
比特,相当于IPv4
地址中的主机ID
地址2001:DB8:6101:1::E0:F726:4E58 /64
的构成如下图所示:
5.IPv6地址分类
IPv6
主要有三种地址:
单播地址(Unicast):唯一标识一个接口,类似于
IPv4
的单播地址。发送到单播地址的数据包将被传输到此地址所标识的唯一接口。任播地址(Anycast):用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据包被传输给此地址所标识的一组接口中距离源节点最近的一个接口(最“近”的一个,是指根据路由协议的距离度量)。
组播地址(Multicast):用来标识属于不同节点的一组接口,类似
IPv4
的组播地址。发送到组播地址的数据包被传输给此地址所标识的所有接口。
IPv6
不包括广播地址,广播地址的功能均由组播地址来提供。
关于IPv6
单播地址类型详细描述如下表:
全球单播地址:global unicast address,
GUA
地址由前缀、子网ID和接口标识组成,如:2001::1
全球单播地址是带有全球单播前缀的IPv6
地址,其作用类似于IPv4
中的公网地址。这种类型的地址允许路由前缀的聚合,从而限制了全球路由表项的数量。
Global routing prefix
:全球路由前缀。由提供商(Provider
)指定给一个组织机构(大组织机构),通常全球路由前缀至少为48
位。目前已经分配的全球路由前缀的前3bit
均为001
。
链路本地地址 (link-local 地址)
只能在连接到同一本地链路的节点之间使用,链路本地地址范围FE80::/10
注意点:
1)华为路由器接口下只要配置
GUA
(global unicast address
,公网单播ip
地址),接口下会自动生成link-local
地址2)路由器不能路由源或目标是
link-local
的报文,PC
的网卡只要安装了TCP/IPv6
协议,就会自动生成该link-local
地址。3)
link-local
地址,只用于同一条链路,同一个广播域,同一个局域网。4)
link-local
地址广泛应用于邻居发现,无状态地址配置等应用(没有dhcp
情况下,帮助pc
获取ipv6
地址)。5)
link-local
地址可以基于MAC
地址自动生成,也可以基于软件生成(微软系统),也可以手动强制指定。
唯一本地地址
唯一本地地址是另一种应用范围受限的地址,它仅能在一个站点内使用。由于本地站点地址的废除
(RFC3879)
,唯一本地地址被用来代替本地站点地址。唯一本地地址的作用类似于
IPv4
中的私网地址,任何没有申请到提供商分配的全球单播地址的组织机构都可以使用唯一本地地址。唯一本地地址只能在本地网络内部被路由转发而不会在全球网络中被路由转发。唯一本地地址格式如图所示:
注意点:
1)
ipv6
公网地址虽多,但少部分企业或机构不想让自己部分的内网设备被外网访问(该内网设备也无需访问外网),此时内网可以使用唯一本地地址组建自己的内网。2)唯一本地地址只能用于企业内网,不能在公网上被路由。
环回地址
0:0:0:0:0:0:0:1
或::1
,不会被分配给任何接口。它的作用与在IPv4
中的127.0.0.1
相同,即节点将IPv6
报文发送给自己。未指定地址
(::)
,不能被分配给任何节点,也不能作为目的地址。在主机初始化且没有取得自己的地址时,未指定地址可以用在IPv6
报文的源地址字段,例如重复地址探测时,NS
报文的源地址就是未指定地址。
6.IPv4与IPv6对比表
由于网络迅速发展,IPv4
的设计不足也日益明显,IPv6
相比IPv4
提供了一些新特性和改善措施,二者对比如下: