不要恐惧IPv6,其实没有看起来那么复杂
这又是一版浓缩的知识总结,小伙伴们,本着废话少说的原则,除了组播我上了一张图以外,其他的知识点,我尽量是几句话说清。IPv4没有任播,这里IPv6任播多说了几句,便于理解吧。以后详细学习的时候,可以拿这篇文章作为提纲深入研究,感谢您的收看,谢谢。
IPv6地址基础知识
表示方法:总长度128bit,分8组,每组4个十六进制数字;每组中的前导0可以省略,连续2个或多个全0组可以用::代替,::只能用一次。例如:020E:0CFF:FE82:C4D4
地址结构:n比特网络前缀,128-n比特接口标识;前三比特不是000,则接口标识必须64位,前三为000,则没有此限制。
接口标识:手工配置、软件自动生成、IEEE EUI-64规范生成。
EUI-64:MAC转IPv6的方法。
1、FFFE插入MAC地址前24位和后24位之间;
2、高位第7位0改为1;
例如:MAC 000E-0C82-C4D4 ----> IPv6 020E:0CFF:FE82:C4D4
单播、任播、组播
IPv6地址分类:单播、任播、组播
单播:未指定、环回、全球单播
1、未指定::/128
2、环回地址::1/128等同IPv4 127.0.0.1
3、全球单播,类似IPv4公网地址,由Global routing prefix,Subnet ID和Interface ID组成。Global routing prefix至少48为,前3比特均为001,Subnet ID最多64位类似IPv4子网号作用,Interface ID标识一个host。
链路本地地址:FE80::/10(1111 1110 10)
唯一本地地址:FC00::/7 (1111 110),类似IPv4私网地址,L标志位1比特,1代表本地范围使用,Global ID 40比特,全球唯一伪随机生成,Subnet ID 16比特。
组播:FF00::/8,Flag4比特,Scope4比特,Group ID 112比特(后32位使用,其他80比特置0)。
常见的例如Scope值为2这种:组播地址FF02::1表示链路本地范围的所有节点;组播地址FF02::2表示链路本地范围的所有路由器;FF02::5为OSPFv3路由器的预留IPv6组播地址;FF02::6为OSPFv3 DR/BDR的预留IPv6组播地址。好像跟IPv4里224.0.0.1、224.0.0.2、224.0.0.5、224.0.0.6神马的都对应哦。
被请求节点组播地址:被请求节点组播地址通过节点的单播或任播地址生成。被请求节点组播地址由前缀FF02::1:FF00:0/104和单播地址的最后24位组成。例如:2019::1ping2019::1234:aaa2,在NS报文中Dst就是ff02::1:ff34:aaa2。
任播:任播地址标识一组网络接口(通常属于不同的节点)。目标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。任播地址设计用来在给多个主机或者节点提供相同服务时提供冗余功能和负载分担功能。IPv6中没有为任播规定单独的地址空间,任播地址和单播地址使用相同的地址空间。IPv6中任播主要应用于移动IPv6。目前,任播地址的使用通过共享单播地址方式来完成。将一个单播地址分配给多个节点或者主机,这样在网络中如果存在多条该地址路由,当发送者发送以任播地址为目的IP的数据报文时,发送者无法控制哪台设备能够收到,这取决于整个网络中路由协议计算的结果。这种方式可以适用于一些无状态的应用,例如DNS等。