IPV6寻址

1、因为一个节点可以有多个接口,所以应将 IPv6 地址指定给接口,而非节点。此外,可以为一个接口指定多个 IPv6 地址。

 

2、地址分类:

分类

描述

特点

单播地址(Unicast Address)

标识一个接口,目的地址为单播地址的报文会被送到被标识的接口

一对一发送,目的只有一个收到

组播地址  (Multicast Address)

标识多个接口,目的地址为组播地址的报文会被送到被标识地址的所有接口

一对多发送,多都收到

任播地址  (Anycast Address)

标识多个接口,目的为任播地址的报文会被送到最近的一个被标识接口,最近节点是由路由协议来定义的

一对多发送,只有多中的一个收到,也是被协议认可为最近的那个

      

  注:* IPV6中没有广播。

           *在任播中,在网络位址和网络节点之间存在一对多的关系:每一个位址对应一群接 收节点,但在任何给定时间,只有其中之一可以接收到传送端来的资讯。 

    *在互联网中,通常使用边界网关协议来实现任播,暂时没有使用

    *作为老板,你在公司大喊一声“开发组的过来一个人”, 总会有一个人灰溜溜去响应, 挨批还是发钱啊

 

3、IPV4和IPV6的比较

 

描述

IPv4

IPv6

IP头部

长度为 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。有关详细信息,请参阅虚拟专用网络

 

4、IPV6地址互相访问过程:

1)  示意图如下:

 

 

1000::1/64                                                                           1000::2/64

PC1----------------------------------SW---------------------------------PC2

 

2)  同一网段ipv6单播转发流程简述:

PC1想通过交换机访问PC2时,PC1会向链路发送一个申请,即申请发送数据包到目的地址ip为1000::2的报文。并且PC1将一条ipv6地址为1000::2 mac标记为不完全状态(incomplete)的条目记录到自己的邻居缓存表中,该申请报文是一个类型为icmpv6的组播报文,目的是要获取PC2的MAC地址。当PC2收到该报文后,它会以单播形式回复PC1一个应答报文,里面包含自己的ipv6地址和mac地址。并将刚刚收到那个组播报文的源ip地址和源mac地址记录到自己的邻居缓存表格中。当PC1收到PC2回复应答报文后,它会立即根据回复的目的MAC,修改那条ip为1000::2的邻居缓存表象,此时该表象从刚才的incomplete状态,更改为Reachable状态。这时,PC1会将PC2的MAC封装为目的MAC,自己的MAC封装为源MAC,将自己的IPV6地址封装为源IP,将PC2的IPV6地址封装为目的IP,加上数据报文,发送给交换机。然后通过交换机转发给PC2。该过程就是在同一网段地址的IPV6转发过程。这个建立过程中,发送的请求报文,为什么是组播报文呢,原因是在地址解析过程中,减少不必要的无效处理,降低网络的性能损耗。

 

二、当访问的目的IP不是自己同一网段的IP地址时

 

1)  示意图如下:

    

1000::1/64    1000::2/64  2000::1/64   2000::2/64 3000::1/64       3000::2/64

PC1------------------------------RTA-------------------------------RTB-------------------------PC2

 

2) 不同网段ipv6单播转发流程简述:

 

这种情况,存在两个过程,一个是PC与路由器是如何通信的,一个是路由器之间又怎么去选路转发流量的。首先:PC会通过手工配置、有状态自动获得、无状态自动获得这三种方式获得ipv6地址,手工配置,就是自己通过命令行在PC上加一个IP,同时需要在为该IP配置一条网关;有状态自动获得,指的是需要比如DHCPV6服务器给PC分发一个ipv6地址;无状态自动获得,指的是需要根据路由器的前缀由路由器分发给PC一个全局的IPV6地址,本文档以无状态自动获得为例讲述该路由转发过程。其次PC的路由器发现机制及地址前缀跟刚才咱们谈到的过程一样,都是有ND(邻居发现协议)通过邻居请求报文和邻居应答报文获得,当然这需要在路由器上时能ipv6(以华为设备为例:全局下敲 ipv6,同时要在接口下敲ipv6 enable)并关闭ND的RA抑制功能,(接口模式下:undo ipv6 nd na halt)使设备能够发送RA应答报文。如果没有配置ND的前缀时,默认将是它的接口ip前缀。(配置RA的前缀命令:ipv6 nd ra prefix ipv6address 前缀的有效生命期 首选生命期PC1如果想跟PC2通信的话,就必须要知道下一跳的ipv6地址即如图所示的1000::2,可根据路由表查询到,确定了下一跳地址后,就可以获取该地址的MAC地址,将封装好的报文发送给路由器,当路由器收到该报文后,会通过查询路由表去确定最优路由,并将该报文发送给那台路由器同时也向PC发送一条报文,目的是通知PC到达该目的的最优网关是谁,PC收到该报文后,会及时修改默认网关。数据报文到了路由器之间转发的话就跟ipv4完全一致了,需要查看路由表为基本转发依据,该路由表靠ipv6的一些动态路由协议或静态路由协议维护。这简单的就是ipv6转发的全过程,当然当PC2收到该数据报文后,依然跟ipv4一样,需要进行路由返程,这样两台PC才能完全互通。

 

posted @ 2020-06-03 13:54  大安技术随笔  阅读(397)  评论(0编辑  收藏  举报