1. IPv6简介
IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代IPv4的下一代IP协议,号称可以为全世界的每一粒沙子编上一个网址。
IPv6作为替代现行版本IP协议(IPv4)的下一代IP协议,按照命名规则来讲,IPv4的下一个版本应该为IPv5,编写组是略过了IPv5吗?事实上,因特网流协议(IPv5)是一个资源预留协议,目的是提供服务质量(QoS),支持多媒体(语音\视频和实时数据流量),在因特网上实时传输。它被设计与IPv4一起运行的,所以IPv5与IPv6毫无关系。
2. IPv4与IPv6差异
IPv4过渡到IPv6是大势所趋
2017年11月26日,中共中央办公厅、国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》,指出了互联网协议第六版(IPv6)部署的重要意义,总体要求,重要任务,实施步骤以及保障措施,将IPv6的规模部署上升到了国家层面。
2018年05月03日,工业和信息化部印发了工业和信息化部关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》的通知,通知主要内容就是:IPv6的规模部署得到了国家的大力支持;IPv6的时间节点:2018年末和2020年末,实现网络端到端的IPv6改造,固定网络基础设施IPv6改造,应用基础设施IPv6改造,政府网站IPv6改造与工业互联网IPv6应用;另外针对IPv6的规模部署的保障措施。
IPv4存在的问题
地址耗尽
Internet用户快速增长
Internet路由表增大
缺乏真正的端到端模型
无法适应新技术的发展,如物联网等
所以行业都是IPv6的潜在用户
......
IPv6特点
128bits的地址方案,提供巨大的IP地址空间
多等级层次有助于路由聚合,提高因特网网络路由的效率及可扩展性
自动配置过程(无状态/有状态)允许IPv6网络中的节点更加便捷的接入IPv6网络
重新编址机制使得IPv6提供商之间的转换对最终用户是透明的(割接更方便了)
无需NAT
不再有广播、不再有ARP(使用ICMPv6替代ARP,少了很多坑)
IPv6的包头比IPv4更有效率,数据字段更少,去掉了包头校验和。更简单的报头提高了路由器的处理效率。新的扩展包头替代了IPv4的选项字段,并且提供了更多的灵活性
更有效的支持移动性和安全性
v4v6过渡方式丰富多彩
IPv4与IPv6差异比较
描述 | IPv4 | IPv6 |
---|---|---|
地址 | 长度为 32 位(4 个字节)。地址由网络和主机部分组成,这取决于地址类。根据地址的前几位,可定义各种地址类:A、B、C、D 或 E。IPv4 地址的总数为 4 294 967 296。IPv4 地址的文本格式为 nnn.nnn.nnn.nnn,其中 0<=nnn<=255,而每个 n 都是十进制数。可省略前导零。最大打印字符数为 15 个,不计掩码。 | 长度为 128 位(16 个字节)。基本体系结构的网络数字为 64 位,主机数字为 64 位。通常,IPv6 地址(或其部分)的主机部分将派生自 MAC 地址或其他接口标识。根据子网前缀,IPv6 的体系结构比 IPv4 的体系结构更复杂。IPv6 地址的数目比 IPv4 地址的数目大 1028(79 228 162 514 264 337 593 543 950 336)倍。IPv6 地址的文本格式为 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每个 x 都是十六进制数,表示 4 位。可省略前导零。可在地址的文本格式中使用一次双冒号(::),用于指定任意数目的 0 位。例如,::ffff:10.120.78.40 表示 IPv4 映射的 IPv6 地址。 |
地址分配 | 最初,按网络类分配地址。随着地址空间的消耗,使用“无类域间路由”(CIDR)进行更小的分配。没有在机构和国家或地区之间平均分配地址。 | 分配尚处于早期阶段。“因特网工程任务组织”(IETF )和“因特网体系结构委员会”(IAB)建议基本上为每个组织、家庭或实体分配一个 /48 子网前缀长度。它将保留 16 位供组织进行子网划分。地址空间是足够大的,可为世界上每个人提供一个其自己的 /48 子网前缀长度。 |
地址生存期 | 通常,除使用 DHCP 分配的地址之外,此概念不适用于 IPv4 地址。 | IPv6 地址有两个生存期:首选生存期和有效生存期,而首选的生存期总是小于等于有效的生存期。首选生存期到期后,如果有同样好的首选地址可用,那么该地址便不再用作新连接的源 IP 地址。 有效生存期到期后,该地址不再用作入局信息包的有效目标 IP 地址或源 IP 地址。根据定义,某些 IPv6 地址有无限多个首选生存期和有效生存期,如本地链路(请参阅地址作用域)。 |
地址掩码 | 用于从主机部分指定网络。 | 未使用(请参阅地址前缀)。 |
地址前缀 | 有时用于从主机部分指定网络。有时根据地址的表示格式写为 /nn 后缀。 | 用于指定地址的子网前缀。按照打印格式写为 /nnn(最多 3 位十进制数字,0 <= nnn <= 128)后缀。例如 fe80::982:2a5c/10,其中前 10 位组成子网前缀。 |
地址解析协议(ARP) | IPv4 使用 ARP 来查找与 IPv4 地址相关联的物理地址(如 MAC 或链路地址)。 | IPv6 使用因特网控制报文协议版本 6(ICMPv6)将这些功能嵌入到 IP 自身作为无状态自动配置和邻节点发现算法的一部分。因此,不存在类似于 ARP6 之类的东西。 |
地址作用域 | 此概念不适用于单点广播地址。有指定的专用地址范围和回送地址。将该范围之外的地址假设为全局地址。 | 在 IPv6 中,地址作用域是该体系结构的一部分。单点广播地址有两个已定义的作用域,包括本地链路和全局链路;而多点广播地址有 14 个作用域。为源和目标选择缺省地址时要考虑作用域。作用域区域是特定网络中作用域的实例。因此,有时必须输入 IPv6 地址或使它与区域标识相关联。语法是 %zid,其中 zid 是一个数字(通常较小)或名称。区域标识写在地址之后前缀之前。 例如,2ba::1:2:14e:9a9b:c%3/48。 |
地址类型 | IPv4 地址分为三种基本类型:单点广播地址、多点广播地址和广播地址。 | IPv6 地址分为三种基本类型:单点广播地址、多点广播地址和任意广播地址。有关描述,请参阅 IPv6 地址类型。 |
通信跟踪 | 通信跟踪是一个收集进入和离开系统的 TCP/IP(及其他)信息包的详细跟踪资料的工具。 | 同样支持 IPv6。 |
配置 | 新安装的系统必须在进行配置之后才能与其他系统通信;即,必须分配 IP 地址和路由。 | 根据所需的功能,配置是可选的。IPv6 可与任何以太网适配器配合使用并且可通过回送接口运行。IPv6 接口是使用 IPv6 无状态自动配置进行自我配置的。还可手工配置 IPv6 接口。这样,根据网络的类型以及是否存在 IPv6 路由器,系统将能与其他本地和远程的 IPv6 系统通信。 |
域名系统(DNS) | 应用程序使用套接字 API gethostbyname() 接受主机名,然后使用 DNS 来获得 IP 地址。应用程序还接受 IP 地址,然后使用 DNS 和 gethostbyaddr() 获得主机名。对于 IPv4,逆向查找域为 in-addr.arpa。 | 同样支持 IPv6。使用 AAAA(四个 A)记录类型和逆向查找(IP 到名称)支持 IPv6。应用程序可选择(是否)从 DNS 接受 IPv6 地址,然后(是否)使用 IPv6 进行通信。套接字 API gethostbyname() 仅支持 IPv4。对于 IPv6,使用新的 getaddrinfo() API 以仅获取 IPv6 或获取 IPv4 和 IPv6 地址(在应用选择上)。对于 IPv6,用于逆向查找的域为 ip6.arpa,如果找不到,那么会使用 ip6.int。(请参阅 API getnameinfo() - 获取套接字地址的名称信息,以获取详细信息。) |
动态主机配置协议(DHCP) | DHCP 用于动态获取 IP 地址及其他配置信息。IBM i 支持对 IPv4 使用 DHCP 服务器。 | 通过 IBM i 实现的 DHCP 不支持 IPv6。但是,可以使用 ISC DHCP 服务器实现。 |
文件传输协议(FTP) | FTP 允许通过网络发送和接收文件。 | 同样支持 IPv6。 |
片段 | 如果一个信息包对于要传送它的下一链路来说太大,那么可由发送方(主机或路由器)对其分段。 | 对于 IPv6,只能在源节点进行分段,且只能在目标节点完成重新装配。使用分段扩展报头。 |
主机表 | 将因特网地址与主机名关联的可配置表,例如,127.0.0.1 用于回送。在开始 DNS 查找之前或者 DNS 查找失败之后(由主机名搜索优先级确定),套接字名称解析器将使用此表。 | 同样支持 IPv6。 |
IBM Navigator for i支持 | IBM Navigator for i提供完整的 TCP/IP 配置解决方案。 | 同样支持 IPv6。 |
接口 | 概念性或逻辑实体,由 TCP/IP 用来发送和接收信息包,即使不以 IPv4 地址命名也始终与 IPv4 地址紧密关联。有时称为逻辑接口。可使用 IBM Navigator for i以及使用 STRTCPIFC 和 ENDTCPIFC 命令彼此独立并独立于 TCP/IP 启动和停止 IPv4 接口。 | 同样支持 IPv6。 |
因特网控制报文协议(ICMP) | 由 IPv4 用来进行网络信息通信。 | 由 IPv6 的使用情况类似;然而,因特网控制报文协议版本 6(ICMPv6)提供一些新的属性。保留了基本错误类型,如目标不可到达、回传请求和应答。 添加了新的类型和代码以支持邻节点发现和相关的功能。 |
因特网组管理协议(IGMP) | IGMP 由 IPv4 路由器用来查找需要特定多点广播组通信的主机,并由 IPv4 主机用来向 IPv4 路由器通告(主机上)现有的多点广播组侦听器。 | IGMP 在 IPv6 中由 MLD(多播侦听器发现)协议取代。MLD 执行 IGMP 对 IPv4 所执行的必要操作,但通过添加一些特定于 MLD 的 ICMPv6 类型值来使用 ICMPv6。 |
IP 报头 | 根据提供的 IP 选项,有 20-60 个字节的可变长度。 | 40 个字节的固定长度。没有 IP 报头选项。通常,IPv6 报头比 IPv4 报头简单。 |
IP 报头选项 | IP 报头(在任何传输报头之前)可能附带各种选项。 | IPv6 报头没有选项。而 IPv6 添加了附加(可选)的扩展报头。扩展报头包括 AH 和 ESP(和 IPv4 的一样)、逐跳扩展、路由、分段和目标。目前,IPv6 支持一些扩展报头。 |
IP 报头协议字节 | 传输层或信息包有效负载的协议代码,例如,ICMP。 | 报头类型紧跟在 IPv6 报头后面。使用与 IPv4 协议字段相同的值。此结构的作用是允许以后的报头使用当前定义的范围并且易于扩展。下一个报头将是传输报头、扩展报头或 ICMPv6。 |
IP 报头“服务类型”字节 | 由 QoS 和差别服务用来指定通信类。 | 但使用不同的代码来指定 IPv6 流量类。目前,IPv6 不支持 TOS。 |
LAN 连接 | LAN 连接由 IP 接口用来到达物理网络。存在许多类型,例如,令牌环和以太网。有时,它称为物理接口、链路或线路。 | IPv6 可与任何以太网适配器配合使用并且可通过虚拟以太网在逻辑分区间使用。 |
第 2 层隧道协议(L2TP) | 可将 L2TP 看作是虚拟 PPP,并通过任何支持的线路类型工作。 | 同样支持 IPv6。 |
回送地址 | 回送地址是地址为 127...*(通常是 127.0.0.1)的接口,只能由节点用来向自身发送信息包。该物理接口(线路描述)被命名为 *LOOPBACK。 | 与 IPv4 的概念相同。单个回送地址为 0000:0000:0000:0000:0000:0000:0000:0001 或 ::1(简短版本)。虚拟物理接口被命名为 *LOOPBACK。 |
最大传输单元(MTU) | 链路的最大传输单元是特定链路类型(如以太网或调制解调器)支持的最大字节数。对于 IPv4,最小值一般为 576。 | IPv6 的 MTU 下限为 1280 个字节。也就是说,IPv6 不会在低于此极限时对信息包分段。要通过字节数小于 1280 的 MTU 链路发送 IPv6,链路层必须以透明方式对 IPv6 信息包进行分段及合并。 |
Netstat | Netstat 是一个用于查看 TCP/IP 连接、接口或路由状态的工具。在使用 IBM Navigator for i和字符界面时可用。 | 同样支持 IPv6。 |
网络地址转换(NAT) | 集成到 TCP/IP 中的基本防火墙功能,是使用 IBM Navigator for i配置的。 | 目前,NAT 不支持 IPv6。通常,IPv6 不需要 NAT。IPv6 扩展了地址空间,这样就解决了地址短缺问题并使重新编号变得更加容易。 |
网络表 | IBM Navigator for i上一个将网络名称与无掩码的 IP 地址相关联的可配置表。例如,主机网络 14 与 IP 地址 1.2.3.4。 | 对于 IPv6,目前此表不变。 |
节点信息查询 | 不存在。 | 一种简易的网络工具,其工作方式应类似于 ping,只是内容不同:IPv6 节点可查询目标 DNS 名称的另一个 IPv6 节点、IPv6 单点广播地址或 IPv4 地址。 目前不受支持。 |
开放式最短路径优先协议(OSPF) | OSPF 是在优先于 RIP 的较大型自治系统网络中使用的路由器协议。 | 同样支持 IPv6。 |
信息包过滤 | 信息包过滤是集成到 TCP/IP 中的基本防火墙功能。它是通过使用 IBM Navigator for i配置的。 | 信息包过滤不支持 IPv6。 |
信息包转发 | 可将 IBM i TCP/IP 堆栈配置为转发其接收到的非本地 IP 地址的 IP 信息包。通常,入站接口和出站接口各自连接到不同的 LAN。 | 信息包转发对 IPv6 的支持有限。IBM i TCP/IP 堆栈不支持作为路由器而执行的邻节点发现。 |
PING | PING 是测试可达性的基本 TCP/IP 工具。在使用 IBM Navigator for i和字符界面时可用。 | 同样支持 IPv6。 |
点到点协议(PPP) | PPP 支持基于各种调制解调器和线路类型的拨号接口。 | 同样支持 IPv6。 |
端口限制 | IBM Navigator for i 允许客户配置已选择的 TCP 或用户数据报协议 (UDP) 端口号或端口号范围,以便其只对特定概要文件可用。 | IPv6 的端口限制与 IPv4 的端口限制完全相同。 |
端口 | TCP 和 UDP 有独立的端口空间,分别由范围为 1-65535 之间的端口号标识。 | 对于 IPv6,端口的工作与 IPv4 相同。因为它们处于新地址系列,现在有四个独立的端口空间。 例如,有应用程序可绑定的两个 TCP 端口 80 空间,一个在 AF_INET 中,一个在 AF_INET6 中。 |
专用地址和公用地址 | 除由 IETF RFC 1918 指定为专用的三个地址范围 10...* (10/8)、172.16.0.0 至 172.31.255.255 (172.16/12) 和 192.168.. (192.168/16) 之外,所有 IPv4 地址都是公用的。专用地址域通常在组织内部使用。专用地址不能通过因特网路由。 | IPv6 有类似的概念,但还有重要差别。地址是公用或临时的,先前称为匿名地址。 请参阅 RFC 3041。与 IPv4 专用地址不同,临时地址可进行全局路由。动机也不一样:IPv6 临时地址要在它开始通信时屏蔽其客户机的身份(涉及隐私)。临时地址的生存期有限,且不包含是链路(MAC)地址的接口标识。它们通常与公用地址没有区别。IPv6 具有受限地址作用域的概念,它使用其设计的作用域指定(请参阅地址作用域)。 |
协议表 | 在 IBM Navigator for i中,协议表是将协议名称与其分配的协议号关联(例如,将 UDP 与 17 关联)的可配置表。随系统交付的只有少量的项:IP、TCP、UDP 和 ICMP。 | 该表可与 IPv6 直接配合使用而不需要更改。 |
服务质量(QoS) | 服务质量允许为 TCP/IP 应用程序请求信息包优先级和带宽。 | 目前,通过 IBM i 实现的 QoS 不支持 IPv6。 |
重新编号 | 重新编号通过手工重新配置完成,可能存在 DHCP 的例外情况。通常,对于站点或组织,重新编号是应尽可能避免的复杂且烦琐的过程。 | 重新编号是 IPv6 的一个重要结构元素,特别是在 /48 前缀中已很大程度上实现自动化。 |
路由 | 从逻辑上讲,是一组 IP 地址(可能只包含 1 个)的映射,这些 IP 地址映射为物理接口和单个下一中继段 IP 地址。使用该线路将其目标地址定义为该组的一部分的 IP 信息包转发至下一中继段。IPv4 路由与 IPv4 接口关联,因此,它是一个 IPv4 地址。缺省路由为 *DFTROUTE。 | 从概念上讲,与 IPv4 类似。一个重要差别是:IPv6 路由与物理接口(链路,如 ETH03)而不是接口相关联(绑定)。路由与物理接口相关联的一个原因是 IPv6 与 IPv4 的源地址选择功能不同。请参阅源地址选择。 |
路由信息协议(RIP) | RIP 是路由守护程序支持的路由协议。 | 目前,RIP 不支持 IPv6。 |
服务表 | IBM i 上的一个可配置表,它将服务名称与端口和协议关联(例如,将服务名称 FTP 与端口 21、TCP 及用户数据报协议(UDP)关联)。服务表中列示了大量众所周知的服务。许多应用程序使用此表来确定要使用哪个端口。 | 对于 IPv6,此表不变。 |
简单网络管理协议(SNMP) | SNMP 是一个用于系统管理的协议。 | 同样支持 IPv6。 |
套接字 API | 应用程序通过使用这些 API 来使用 TCP/IP。不需要 IPv6 的应用程序不受为支持 IPv6 所做的套接字更改的影响。 | IPv6 使用新的地址系列:AF_INET6 增强了套接字以便应用程序现在可使用 IPv6。设计了这些增强以便现有的 IPv4 应用程序完全不受 IPv6 和 API 更改的影响。希望支持并发 IPv4 和 IPv6 通信或纯 IPv6 通信的应用程序可以容易地适应使用 IPv4 映射的 IPv6 地址格式 ::ffff:a.b.c.d,其中 a.b.c.d 是客户机的 IPv4 地址。新的 API 还支持从文本至二进制及从二进制至文本的 IPv6 地址转换。有关 IPv6 的套接字增强的更多信息,请参阅使用 AF_INET6 地址系列。 |
源地址选择 | 应用程序可指定源 IP(通常,使用套接字 bind())。如果它绑定至 INADDR_ANY,那么根据路由来选择源 IP。 | 与 IPv4 一样,应用程序可使用 bind() 指定源 IPv6 地址。和 IPv4 类似,它可通过使用 in6addr_any 让系统选择 IPv6 源地址。但是,因为 IPv6 线路有许多 IPv6 地址,所以选择源 IP 的内部方法不同。 |
启动和停止 | 请使用 STRTCP 或 ENDTCP 命令来启动或结束 IPv4。当运行 STRTCP 命令来启动 TCP/IP 时,IPv4 始终处于启动状态。 | 请使用 STRTCP 或 ENDTCP 命令的 STRIP6 参数来启动或结束 IPv6。当 TCP/IP 已启动时,IPv6 可能未启动。稍后,可独立启动 IPv6。如果 AUTOSTART 参数设置为 *YES(缺省值),那么任何 IPv6 接口都会自动启动。IPv6 必须与 IPv4 配合使用或配置。当启动 IPv6 时,会自动定义并激活 IPv6 回送接口 ::1。 |
Telnet | Telnet 允许登录并使用远程计算机,就好象直接与其连接一样。 | 同样支持 IPv6。 |
跟踪路由 | 跟踪路由是进行路径确定的基本 TCP/IP 工具。在使用 IBM Navigator for i和字符界面时可用。 | 同样支持 IPv6。 |
传输层 | TCP、UDP 和 RAW。 | IPv6 中存在相同的传输。 |
未指定地址 | 顾名思义,未定义的地址。套接字编程将 0.0.0.0 用作 INADDR_ANY。 | 定义为 ::/128(128 个 0 位)。 它在某些邻节点发现信息包和各种其他的上下文(如套接字)中用作源 IP。套接字编程将 ::/128 用作 in6addr_any。 |
虚拟专用网络(VPN) | 虚拟专用网络(使用 IPsec)允许在现有的公用网络上扩展安全的专用网络。 | 同样支持 IPv6。有关详细信息,请参阅虚拟专用网络。 |
3. IPv6的重要意义
IPv4的网络体系下,美国依靠技术优势已主导根服务器近30年,美国控制了全球绝大部分的根服务器,也掌握了绝大部分的域名控制权。目前全球一共有13台根服务器,美国10台,其他英国、瑞典、日本各一台辅助服务器,而中国却连一台根服务器都没有。
目前全球IPv6发展迅猛,国际上已有内容服务商利用IPv6给用户提供新服务,谷歌、苹果、脸书等企业纷纷要求合作伙伴必须支持IPv6才能允许入网。谷歌的IPv6访问流量显示,2015年全球IPv6流量较2012年增长10倍。美国政府在“政府IPv6应用指南/规划路线图”中明确运营商将能提供支持纯IPv6的服务,到2014年政府内部办公网络全面支持IPv6。2012年,欧洲IP网络资源协调中心指导大型企业网络和运营商开展部署IPv6。截至2016年10月底,全球42个国家IPv6部署能力超过1%,17个国家超过10%。
IPv6的出现,一定程度上为中国未来网络的发展提供了机遇。2017年11月27日,下一代互联网国家工程中心宣布,“雪人计划”在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6根服务器架设,中国部署了其中的4台,实现了中国过去零根服务器的突破。抢先IPv6的规模部署,对中国未来的经济发展,社会进步,国家网络主权等各方面都会产生深远的影响。
参考: