本文主要针对HCIE考试对各种技术做一轮复习。
建议读者已经具备其他厂商IE认证,或者具备良好网络基础知识。
本文仅整理重点难点和容易踩坑的知识,对于基础知识一概不整理。
一、IPv6地址类型
1、各类地址说明掩码长度
1.1、全球可达GUA地址
2001::/3
目前分配的用于全球范围内通信的公网IPv6地址,前缀2001或者2002
1.2、链路本地地址Link Local
FE80::/10
用于链路两端直接生成的地址,该地址主机ID生成遵循EUI-64规范。
吧这个理解成,插上网线就能直接用的地址。类似于原来的169.254.x.x。但区别是,LL地址即使在后续拿到正经地址后依然存在,并且OSPFv3还会使用LL地址作为通信地址。此时LL地址更像是一种互联地址
1.3、唯一本地地址
FC00::/7
IPv6中的127.0.0.1
1.4、组播地址
FF00::/8
详见下文组播地址介绍
二、IPv6报头结构
1、IPv4报头
- 本 :当前 IP 版本,IPv4。
- 首部长度:指的是 IPv4 报头长度,20-60 个字节,因为 Option 字段是 0-40 个字节。
- 区分服务:用于 Qos 报头。
- 总长度:总长度=头长+载荷长
- 标识、标志、 片移位 :用于 IP 报文的分片和重组。
- 协议:表示上层协议。
- 首部校验和:头校验和,对报文进行校验。
2、IPv6报头
- traffic class:是 IPv4 的 ToS,用于 QoS 中标识优先级
- flow lable:长度为 20bit,IPv6 中增加了 flow lable(流标签)字段,用于唯一确定 一条 IPv6 数据流,因为在 IPv4 中确定一条数据流需要使用 5 元组,而确定 TCP/UDP 端口号 需要对报文进行传输层解封装,会消耗设备性能。而流标签可唯一标识数据流,能够更好实现 QoS。
- payload length:有效载荷长度,用于表示上层协议报文的大小,因为 IPv6 报头是 固定长 40byte,所以仅需标识上层协议载荷大小即可。
- next header:标识上层协议或上层扩展报头,类似于 IPv4 的 protocol。IPv6 中增 加了扩展报头用于实现扩展的功能如分片,加密等。
- hop limit:跳数限制,用于防环,类似于 IPv4 的 TTL。
- IPv6 删除了 IPv4 中的标识、标志、分片移位、首部长度、Option、校验和等字段。IPv6 之所以移除校验和,是因为在二层有 FCS 校验,在四层有 TCP/UDP 做校验,IPv6 报文无需校验,提升了 IPv6 的性能。
- 扩展报头:用于实现 IPv6 的扩展功能,比如分片,认证,加密等。
3、IPv6 扩展报头
报头类型 | 代表该类报头的 Next Header 字段值 | 描述 |
---|---|---|
逐跳选项报头 | 0 | 该选项主要用于为在传送路径上的每跳转发指定发送参数,传送路径上的每台中间节点都要读取并处理该字段。逐跳选项报头目前的主要应用有以下三种: 1、用于巨型载荷(载荷长度超过 65535 字节)。 2、用于设备提示,使设备检查该选项的信息,而不是简单的转发出去。 3、用于资源预留(RSVP)。 |
分段报头 | 44 | 同 IPv4 一样,IPv6 报文发送也受到 MTU 的限制。当报文长度超过 MTU 时就需要将报文分段发送,而在 IPv6 中,分段发送使用的是分段报头。 |
认证报头 (AH) | 51 | 该报头由 IPsec 使用,提供认证、数据完整性以及重放保护。它还对 IPv6 基本报头中的一些字段进行保护。 |
封装安全净载报头(ESP) | 50 | 该报头由 IPsec 使用,提供认证、数据完整性以及重放保 护和 IPv6 数据报的保密,类似于认证报头。 |
三、IPv6地址主机位ID的生成方式
1、手工配置
2、操作系统自定义规则
系统通过规则和软件自动生成(优点是无法根据IPV6倒推设备信息,私密性好)
3、EUI-64规则
XX-XX-XX-XX-XX-XX原MAC地址
XX-XX-XX-FF:FE-XX-XX-XX,原MAC地址第7bit取反,中间插FFFE
四、IPv6组播地址
1、IPv6预定义组播地址类型
2、IPv6组播地址与MAC地址对应关系
IPV6组播地址对应MAC地址固定开头3333
,组播MAC后32bit从IPV6后32bit直接复制。
注意:举例以下两个组播地址
FF02::1000:1
和FF02::2000:1
的组播MAC地址会是相同的3333-0000-0001
3、被请求节点组播地址
有趣的就是这个地址
3.1、格式:
3.2、SN组播地址介绍:
特别注意
自动生成的FF02::1:FFxx:xxxx这类的被请求节点组播地址,与单播IPV6最后24bit对应。
顺便再举个例子:以下两个单播IPv6地址
2201::1000:0001
和2201::2000:0001
的被请求节点组播地址也会是一样的FF02::FF00:1
3.3、接口自动加入组播地址组示例
五、NDP协议和ICMPv6报文
IPv6取消了ARP等诸多繁杂的协议,通过ICMPv6报文构建NDP(邻居发现协议)来实现地址解析等诸多功能
1、NDP的各种功能
下图必考!
2、NDP使用的ICMPv6报文
3、重点,地址解析(IPv6中的ARP)
IPv6使用NA和NS报文来实现类似于ARP的IPv6地址与MAC地址对应解析
3.1、ICMPv6的NS和ND报文样本
NS(邻居请求)请求报文
注意,这里用到了被请求节点组播地址
向被请求节点组播地址发送组播NS请求报文
NA(邻居通告)应答报文
这里再延伸一下
因为被请求节点组播地址
仅使用了单播地址的后24位,因此对于下面两个IPv6地址
2201::1000:0001
和2201::2000:0001
的被请求节点组播地址也会是一样的FF02::FF00:1
,组播MAC也一样
所以当请求2201::1000:0001
MAC地址时,2000:0001也会收到同样的组播报文。
2000:0001会怎么处理呢?
1、MAC地址符合侦听,拆包
2、IPv6组播地址符合侦听,拆包
3、到了ICMPv6层,才发现不是请求自己的MAC地址,丢弃。
六、IPv6过渡机制
双栈
双栈技术是 IPv4 向 IPv6 过渡的一种有效的技术。
网络中的节点同时支持 IPv4 和 IPv6 协议栈
,源节点根据目的节点的不同选用不同的协议栈,而网络设备根据报文的协议类型选择不同的协议栈进行处理和转发。
在过渡前期,双栈技术大量用于园区网和运营商。目前大多数的网络设备和主机均支持双栈。
IPv6 over IPv4 隧道
在过渡初期,IPv4 网络已经大量部署,而 IPv6 网络只是散落在各地的一个个“孤岛”, IPv6 over IPv4 隧道就是通过隧道技术,使 IPv6 报文在 IPv4 网络中传输,实现 IPv6 网络之间的孤岛互连。
IPv4 over IPv6 隧道
过渡后期,可以使用 IPv4 over IPv6 隧道技术解决 ipv4 孤岛问题。