谢希仁的第七版《计算机网络》+高校的课程视频。
王海霖翻译的第三版《深入解析IPv6》
沙斐翻译的《IPv6详解》
陈勇勋第二版的《Linux 网络安全技术与实现》
华为培训课程
(书本,源码,画图,思路)
一、IPv6的特性与优势
1、地址空间巨大。为什么会有IPv6,主要原因IPv4地址不够用,所以IPv6地址容量大,有128位,地址分成8组,每组两个字节,用冒号隔开每一组。
2、精简报文格式。
全新的数据包头部格式,简化了头部信息,没有校验位,新增可扩展头部。目的提高处理头部信息的速度。头部得到简化路由器处理效率提高。
IPv6中包括总长为40字节的8个字段(其中两个是源地址和目的地址)。
它与IPv4包头的不同在于,IPv4中包含至少12个不同字段,且长度在没有选项时为20字节,但在包含选项时可达60字节。
IPv6使用了固定格式的包头并减少了需要检查和处理的字段的数量,这将使得路由效率更高。
包头的简化使得IP的某些工作方式发生了变化。一方面,所有包头长度统一,因此不再需要包头长度字段。
此外,通过修改包分段的规则可以在包头中去掉一些字段。IPv6中的分段只能由源节点进行:该包所经过的中间路由器不能再进行任何分段。
最后,去掉IP头校验和不会影响可靠性,这主要是因为头校验和将由更高层协议(UDP和TCP)负责。
3、实现自动配置和重新编址。无状态和有状态的地址配置,实现即插即用。无状态配置没有DHCPv6服务器情况下自动配置IPv6地址。
4、支持端对端安全。必须支持IPSec头部,需要进一步了解
5、更好的QOS。对于按照优先级传输的支持更加完善。数据流通过8位的“traffic class”字段进行排序,类似IPv4的DSCP。通过流标签“flow label”字段路由器能够识别并进行特殊处理某个流的数据包。由于控制流量的信息在头部中,负载加密了也能正常处理。
6、支持层次化网络结构。IANA机构统一分配地址。IPv6地址是分级和可汇总的,因此它的路由表会更小,所以查找路由条目更快,路由效率跟高。IPv6地址分配一开始就遵循聚类(AggregaTIon)原则,这使得路由器能在路由表中用一条记录表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
7、IPv4由于地址不够使用NAT技术,IPv6直接端到端通讯,不需要执行地址转换/发现,所以更快。
8、支持移动特性。
9、邻居节点交互协议,ICMPv6。
10、流标记。
11、扩展头:
逐跳选项头。此扩展头必须紧随在IPv6头之后。它包含包所经路径上的每个节点都必须
检查的选项数据。由于它需要每个中间路由器进行处理,逐跳选项只有在绝对必要的时
候才会出现。到目前为止,已经定义了两个选项:巨型净荷选项和路由器提示选项。巨
型净荷选项指明包的净荷长度超过IPv6的16位净荷长度字段。只要包的净荷超过65535
字节(其中包括逐跳选项头),就必须包含该选项。如果节点不能转发该包,则必须回送
一个ICMPv6出错报文。路由器提示选项用来通知路由器,IPv6数据报中的信息希望能
够得到中间路由器的查看和处理,即使这个包是发给其他某个节点的(例如,包含带宽
预留协议信息的控制数据报)。
•选路头。此扩展头指明包在到达目的地途中将经过哪些节点。它包含包沿途经过的各节
点的地址列表。IPv6头的最初目的地址是路由头的一系列地址中的第一个地址,而不是
包的最终目的地址。此地址对应的节点接收到该包之后,对IPv6头和选路头进行处理,
并把包发送到选路头列表中的第二个地址。如此继续,直到包到达其最终目的地。
•分段头。此扩展头包含一个分段偏移值、一个“更多段”标志和一个标识符字段。用于
源节点对长度超出源端和目的端路径MTU的包进行分段。
•目的地选项头。此扩展头代替了IPv4选项字段。目前,唯一定义的目的地选项是在需要
时把选项填充为64位的整数倍。此扩展头可以用来携带由目的地节点检查的信息。
•身份验证头(AH)。此扩展头提供了一种机制,对IPv6头、扩展头和净荷的某些部分进行
加密的校验和的计算。
•封装安全性净荷(ESP)头。这是最后一个扩展头,不进行加密。它指明剩余的净荷已经
加密,并为已获得授权的目的节点提供足够的解密信息。
目前有两种方法可以减少或消除对于分段的需求。
第一种方法可用在IPv4中,它使用一种叫做“路径MTU发现”的方法。
通过这种方法,路由器可以向目的地发送一个包来报告该路由器上链路的MTU值。如果包到达了一条必须对其进行分段的链路,
负责分段的路38第二部分IPv6细节下载由器将使用ICMP回送一个报文来指出分段路由器上链路的MTU值。
这种过程可以重复进行直到路由器确定路径MTU为止。
二、IPv4与IPv6的区别。主要对比/分析报文头。

三、IPv6编址
1 IPV6地址空间,128位长度,16个字节
IPv6 地址=前缀+接口标识 前缀:相当于 IPv4 地址中的网络 ID 接口标识:相当于 IPv4 地址中的主机 ID
IEEE EUI-64规范:64 bit 的接口标识 ,可由 48 bit 的 MAC 地址转化为 64bit 的接口标识。
第一个字节的第七位置1,中间插入fffe。
单播地址:标识一个接口
组播地址:标识多个接口,目的为组播地址的报文会被送到被标识的所有接口
任播地址:标识多个接口,目的为任播地址的报文会被送到最近的一个被标识接口,最近节点是由路由协议来定义的
全球单播地址(Aggregate Global Unicast Address)
2000::/3
2001:A304:101::E0:F726:4E58
链路本地地址(Link Local Address)
FE80::/10
未指定地址(Unspecified Address)
0:0:0:0:0:0:0:0 => ::
环回地址(Loopack address)
0:0:0:0:0:0:0:1 => ::1
组播地址前缀 FF00::/8
被请求节点组播地址
FF02::1:FF7F:3AFC
Well-know组播地址
FF02::1
FF02::2
FF02::16
1.2 IPV6地址语法
IPv6前缀,前缀是地址的一部分,这部分的值或者是固定的,或者是路由或者子网标识。前缀标识方法:2001:DB8:2A0:2FB3::/64表示一个子网前缀,2001:DB8:2A0:2F::/48表示一个汇总的路由前缀。任何少于64位的前缀要么表示一条汇总的路有条目,要么是一段IPv6地址空间的地址范围汇总(IPv4子掩码)。IPv6没有可变长度子网前缀的表示方法,IPv6地址的子网前缀和接口标识符长度是五五开。
1.3IPv6地址类型,单播GUA(Global unicast address)
全球单播地址
1.4
链路本地地址 LLA FE80::/10
与同一链路上的邻居节点通信。
邻居发现
无状态地址
1.5
唯一的本地地址:ULA
一种组织机构的私有地址(即不能再IPv6 Internet中路由),fd93:c7aa:da80::/48
1.6
特殊的IPv6地址
未指定的地址 ::/128
环回地址 ::1/128
1.7 组播
1.8 任播
1.9 接口标识符:
EUI-64:
手工配置:
随机生成:
2.1、 IPV6报文头
通信流类别,或者说是优先级别
拓展头部
2.2 ICMPV6:
路由器配置: dhcpv6=server,ra=server
这时候,odhcp6c可以获取到两个地址,一个dhcpv6分配的地址,一个通过RA协议自己算出的地址。
路由器也把dhcpv6和ra两个服务器都开起来(ubuntu把isc-dhcp和radvd服务器都开起来)
这两种都是用bai来为客户端分配IPV6地址的。du
<1>radvd用于无状态自动配置地址,客户端通过网zhi络接口接收路由器宣告的dao全局地址前缀,再结合接口ID形成全球单播地址,但是这种配置不能获取DNS。
<2>dhcpv6用于有状态自动配置地址,类似于ipv4的dhcp,客户端从服务器的地址池中配置地址,可获取到DNS。
谈及IPv6, 常涉及这些名词
- native ipv6 即纯ipv6网络,没有IPv4地址的网络。ipv6 Native模式,下流所有主机都是使用由ISP分配原生ipv6进行上网。我们使用relay,使下流主机直接通过ISP获取ipv6。
- dual stack 即双栈,比如设备一个接口同时有ipv6和ipv4地址。
- NAT64 即一台设备对IPv6进行地址转换,以便访问IPv4网络。ipv6 nat6与ipv4 nat相似,内部建立nat局域网,公用一个原生ipv6进行上网。
注意:如果你已经配置了relay,请恢复openwrt1806的默认情况下,在进行一下配置 - IPv6 over IPv4 即IPv6数据包被IPv4的数据包封装。数据包最外层是ipv4的地址,里层是ipv6地址。
- DNS64 即当一台纯IPv6设备访问IPv4网站,DNS服务器将IPv4网站的IP合成一个IPv6地址给纯IPv6设备。
openwrt配置ipv6:ipv6 Native模式与ipv6 nat6
https://blog.csdn.net/dengxinfa/article/details/103791465
小米路由器的ipv6不支持二级路由下发
也就是小米路由器必须连接光猫,你才能获取公网的ipv6,否则就是一个内网的ipv6
比如:
光猫——A路由器(拨号)——小米路由器
这种情况你选native、nat6、静态,都无法获取外网ipv6
lan口只能分配“fe80:”开头的内网地址
而我们要的是外网ipv6地址
国内一般是240e(电信)、2408(联通)、2409(移动)开头的
如果不是这个开头的,等于还是没公网ip
参考书本:
深入解析IPv6(第三版) [美]Joseph Davies 著 王海霖 译 人民邮电出版社