**IPv6简介**
- IP 是互联网的核心协议。
- IPv4 是20世纪70年代末期设计的,到2011年2月其地址耗尽。
- 2014-2015年间,我国逐步停止向新用户分配IPv4地址,开始全面部署IPv6。
- IPv6 目的:解决IP地址耗尽问题。
- IPv6 当前仍是草案标准阶段。
**IPv6的基本首部**
1. **主要变化**
- **地址空间**:IPv6 的地址为 128 位,是 IPv4 的 4 倍,增大了 2^96 倍。
- **地址层次结构**:IPv6 提供更多的层次化地址结构。
- **首部格式**:IPv6 首部与 IPv4 不兼容。引入了许多扩展首部,增强功能且提高路由器效率。
- **选项**:IPv6 提供新选项并放在有效载荷中,而 IPv4 的选项是固定的。
- **协议扩充**:IPv6 允许协议的扩充,满足未来技术和应用需求。
- **自动配置**:IPv6 支持即插即用,无需 DHCP。
- **资源预分配**:IPv6 支持如实时视频的带宽和时延需求。
- **首部对齐**:IPv6 首部改为 8 字节对齐。
2. **数据报组成**:IPv6 数据报由基本首部和有效载荷组成,可包含扩展首部。
3. **首部字段变化**
- 取消了首部长度字段、服务类型、总长度、标识、标志、片偏移、协议和选项字段。
- TTL 改为跳数限制字段。
- 新增有效载荷长度和下一个首部字段。
- 取消了检验和字段以加快路由器处理速度。
总结:IPv6 是为了应对 IPv4 地址耗尽问题而设计的下一代 IP 协议。它引入了一系列的改进和新功能,旨在提供更多的地址空间,更高的传输效率,以及满足未来的网络需求。
图4-47: 40字节长的IPv6基本首部
1. **版本 (Version)**: 占4位
- 指明协议的版本。对于IPv6, 该字段值为6。
2. **通信量类 (Traffic Class)**: 占8位
- 用于区分不同的IPv6数据报的类别或优先级。
3. **流标号 (Flow Label)**: 占20位
- IPv6引入了流的概念,流是指从一个特定的源到一个特定的终点的数据报序列。
- 所有属于同一个流的数据报都有相同的流标号。
- 对于实时音频/视频数据传送很有用;对于非实时数据或邮件,则流标号通常为0。
- 更多关于流标号的信息可以参考[RFC 6437]。
4. **有效载荷长度 (Payload Length)**: 占16位
- 指示IPv6数据报中,除基本首部外的字节数。
- 其最大值为64KB (65535字节)。
5. **下一个首部 (Next Header)**: 占8位
- 当没有扩展首部时,此字段作用类似IPv4的协议字段。
- 如果有扩展首部,该字段指示后面第一个扩展首部的类型。
6. **跳数限制 (Hop Limit)**: 占8位
- 用于防止数据报在网络中无限期循环。
- 跳数限制的初始值设定后,每经过一个路由器就减1。
- 当值达到0时,数据报被丢弃。
7. **源地址**: 占128位
- 数据报的发送方的IP地址。
8. **目的地址**: 占128位
- 数据报的接收方的IP地址。
**IPv6扩展首部简介**
- IPv6将IPv4首部中的选项功能移至扩展首部。
- 扩展首部主要由发送和接收的主机处理,途中的路由器通常不处理这些首部,增加了处理效率。
- RFC2460定义了6种扩展首部:
1. 逐跳选项
2. 路由选择
3. 分片
4. 鉴别
5. 封装安全有效载荷
6. 目的站选项
- 所有扩展首部的第一个字段都是8位的“下一个首部”字段。
- 当使用多个扩展首部时,应按照上述顺序出现,高层首部始终放在最后。
IPv6 地址是128位长,提供了巨大的地址空间,足够应对未来的互联网增长。以下是IPv6的基本地址类型和一些关于IPv6地址表示法的信息。
**地址类型**:
1. **单播 (Unicast)**: 传统的点对点通信。
2. **多播 (Multicast)**: 一点对多点的通信。IPv6没有广播术语,而是将广播看作多播的特例。
3. **任播 (Anycast)**: 数据只发送到一组中的一个接收者,通常是最近的一个。
**地址表示**:
- **冒号十六进制记法**: IPv6地址经常用冒号十六进制记法表示,例如: 1080::8:800:200C:417A。
- **零压缩**: 连续的零可以用双冒号 (::) 表示,但在一个地址中只能使用一次。
- **结合点分十进制**: 在IPv4到IPv6转换时尤其有用,例如:::128.10.2.1。
**特定的IPv6地址**:
- **未指明地址**: ::/128 (只有128位零)
- **环回地址**: ::1 (与IPv4中的127.0.0.1类似)
- **多播地址**: 以FF开头,如:FF05::B3
- **本地链路单播地址**: 以FE80开头,如:FE80::/10
**地址分类**:
1. **未指明地址**: 00...0(128位)。只有一个这样的地址。
2. **环回地址**: 00...1(128位)。对应于IPv4中的127.0.0.1。
3. **多播地址**: 前缀是11111111(8位)。其功能与IPv4的多播地址类似。
4. **本地链路单播地址**: 前缀是1111111010(10位)。用于尚未连接到互联网的网络。
综上所述,IPv6提供了一个更大、更复杂、但也更有组织的地址空间。其表示方法也更加灵活,允许更简洁的地址表示。
1. **IPv6单播地址的划分**:
- 全球单播地址是IPv6中使用得最多的一类地址。
- IPv6的单播地址可以有多种划分方法,如下:
- 整个128比特都作为一个结点的地址。
- 使用n比特作为子网前缀,剩下的(128-n)比特作为接口标识符。
- 分为三级:n比特为全球路由选择前缀,m比特为子网前缀,剩下的(128-n-m)比特为接口标识符。
2. **从IPv4向IPv6过渡**:
- 由于互联网规模巨大,无法一下子全面转为IPv6,需要逐步过渡。
- IPv6系统需向后兼容,能处理IPv4分组。
- 过渡策略主要有:
- **双协议栈**:一部分主机或路由器同时支持IPv4和IPv6。根据DNS返回的地址类型来选择通信协议。
- **隧道技术**:在IPv4网络中转发IPv6数据。在两端的IPv6/IPv4路由器之间,IPv6数据报首部会被转换为IPv4数据报首部。但这种方法可能导致IPv6首部中的某些字段丢失。
图解:
- 描述了IPv6单播地址的不同划分方式。
- 描述了一个双协议栈的情境,其中IPv6数据需要通过IPv4网络传输。
总结,这段文字为我们提供了关于IPv6地址划分的灵活性,以及在过渡到IPv6时如何保持与IPv4的兼容性的深入理解。在未来网络发展中,这种渐进式的过渡策略和地址划分的灵活性对于确保网络稳定运行至关重要。
#### 1. 双协议栈技术:
- **定义**: 在一个设备中同时部署IPv4和IPv6协议栈。
- **工作原理**:
- 设备可以根据通信的目的地址选择使用IPv4或IPv6。
- 利用域名系统(DNS)来判断目标地址的类型。
- 当DNS返回IPv4地址时,使用IPv4通信;返回IPv6地址时,使用IPv6通信。
- 在IPv4网络中传输IPv6数据时,IPv6头部可能需要转换为IPv4,但这可能导致部分信息丢失。
- **示例**: 图4-49 展示了如何使用双协议栈从IPv4转到IPv6。
#### 2. 隧道技术:
- **定义**: 将IPv6数据报封装在IPv4数据报中进行传输。
- **工作原理**:
- 在IPv6数据要进入IPv4网络时,IPv6数据报被封装为IPv4数据报的数据部分。
- 在IPv4网络中,这种封装的数据报就像在一个“IPv6隧道”中传输。
- 当数据报离开IPv4网络时,再将封装的IPv6数据报提取出来。
- 需要在IPv4首部的协议字段中标识封装的是IPv6数据报。
- **示例**: 图4-50 展示了如何使用隧道技术从IPv4转到IPv6。
#### 3. ICMPv6:
- **定义**: IPv6的互联网控制消息协议,比IPv4的ICMP更加复杂。
- **特点**:
- 提供差错反馈和其他网络层功能。
- IPv4中的ARP和IGMP已被合并到ICMPv6中。
- 能够报告差错、获取信息、探测邻站或管理多播通信。
- 定义了多种报文,例如邻站发现(ND)和多播监听者交付(MLD)。
- 所有这些报文都是ICMPv6报文,只是功能和用途不同。
- **示例**: 图4-51 和 图4-52 展示了ICMPv6的结构和分类。
**总结**: 随着互联网的发展,IPv6的推广和应用变得尤为重要。为了确保平滑过渡,技术人员开发了双协议栈和隧道技术等方法。同时,新的控制消息协议ICMPv6也为IPv6提供了支持。这些技术共同为我们构建了一个更大、更安全、更高效的互联网。
1. **地址长度**: IPv6地址为128位,远大于IPv4的32位。
2. **地址表示**: 采用8组16位的十六进制数表示,例如: `2001:0db8:85a3:0000:0000:8a2e:0370:7334`。
3. **地址类型**: 拥有单播、多播和任播地址;去除了广播地址。
4. **简化的头部结构**: IPv6头部固定为40字节,部分头部字段被简化或移除。
5. **内建的安全性**: IPv6天然支持IPsec,为数据通信提供安全保障。
6. **更高效的路由**: 由于地址的层次结构和聚合,IPv6提供了更高效的路由。
7. **无需NAT**: 由于其庞大的地址空间,不再需要网络地址转换(NAT)。
**IPv6 难点:**
1. **地址配置**: 自动、半自动和手动配置之间的区别和配置过程。
2. **地址计划**: 由于IPv6的地址空间非常大,如何有效地规划和分配地址是一大挑战。
3. **过渡技术**: 如何从IPv4向IPv6过渡,包括双栈、隧道和转译技术的选择和部署。
4. **兼容性问题**: 保证新的IPv6网络与现有的IPv4网络的兼容性。
5. **安全性配置**: IPsec的配置和管理较为复杂。
**IPv6 易错点:**
1. **地址表示的省略**: 在IPv6地址中,可以省略前导零,并且可以使用`::`一次来表示多组连续的零。但只能使用一次`::`来避免歧义。
2. **混淆地址类型**: IPv6没有广播地址,这点和IPv4不同,容易混淆。
3. **网络前缀的长度**: 与IPv4不同,IPv6常用`/64`作为子网的前缀长度。
4. **过渡技术的选择**: 在多种IPv6过渡技术中选择合适的技术并不容易,且选择不当可能导致通信问题。
5. **安全性假设**: 仅因IPv6支持IPsec并不意味着所有IPv6通信都是安全的。仍然需要正确配置安全策略。
总结,IPv6为应对网络发展所带来的挑战而设计,但同时也引入了新的复杂性。理解其重点、难点和易错点对于正确和高效地部署和管理IPv6网络至关重要。