浅谈IPv6

    最近实验做到了IPv6的部分,本以为和IPv4应该相差无几,但学习一番之后发现有很多不同之处,所以稍微记录一下,以备日后查阅。

    众所周知,IPv6主要是为了解决IPv4地址不够用的情况而出现的,并且由于IPv4协议中有一些不合理,效率不高的地方,在IPv6重新做了定义。所以如果想要了解IPv6,有以下几点比较重要:

  • IPv6的地址非常多,因此要玩命用
  • MAC地址是唯一的,因此可以利用其唯一性来打造唯一的IPv6地址
  • ARP和广播不太好,因此IPv6作为新生协议,要取消他们

    我们从第一点开始说。IPv6的地址一共是128位,IPv4是32位,所以可以计算出来,IPv6地址数目是一个天文数字,在地球上估计是用不完了。这也是为什么开发IPv6的人声称要“为地球上的每一粒沙子都编上一个IP地址”,可以说是非常的猖狂了。
    所以这样的话就很好理解,IPv6的地址是和计算机上的端口所绑定(其实这相比于每一个沙子都编上一个已经收敛很多了),也就是一个端口就会有一个IPv6地址。但是IPv6并不满足于此,它要尽力的发挥地址多的优势,因此事实上是每一个端口会有多个IPv6地址。在我理解中,这就好比一个人有很多个名字,我既可以叫做李鸿章,也可以叫李章章,还可以就叫小李,但是都是指我这个人,在没有其他人同时叫这个名字的情况之下,用哪个最方便就可以用哪个,哪个最合时宜就用哪个。在IPv6协议中,在全球情况下唯一的是全球单播地址,在所在局域网(其实应该是链路)下,有链路地址。
    在IPv6实现不同功能时,会使用不同范围下的地址,因此在这里明白IPv6地址的不同对于下边概念的澄清有很大帮助。

    紧接着要说的就是IPv6地址的唯一性。因为IPv4地址的紧缺,所以诞生了NAT技术,可以在小范围内组建一个局域网,全都使用一个IPv4地址与互联网进行交互。但是IPv6不用了呀,毕竟财大气粗。所以IPv6要做到全球每一个设备(甚至端口!)都有一个唯一的地址,这样就要找到一个方法使得其唯一。这时候IPv6盯上了MAC地址。因为MAC地址就是全局唯一的,所以IPv6的全球单播地址(唯一的)就将MAC加工了一下,直接放到了Interface ID字段,一共64位。而且这样做的好处还有一点,就是MAC地址和IPv6一样,在表示的时候都是16进制,甚至连样子都没变就放上去了。
    关于IPv6单端口多地址和地址唯一性的问题,下边博客写的很好,关于细节我就不再赘述,附上链接:

        https://blog.csdn.net/yuwen_dai/article/details/78338397

    再说说ARP的事。在IPv4里ARP就是地址解析协议,主要作用就是讲IP地址和MAC地址进行一一映射,让每次发送的包都能找到对应的链路层MAC地址(但愿我没记错)。但是发送方和接收方互相是不知道彼此的,所以要用到广播来找一下,也就是在区域内对所有人都发送一个通告,如果你是我要找的,那你就回复我,否则保持沉默即可。
    在IPv6中,摒弃了ARP,直接用ICMPv6协议来处理这个问题。在其中提出了ND(Neighbor Discovery邻接点发现)功能,使用NS(Neighbor Solicitation)和NA(Neighbor Advertisement)报文来进行地址解析。
    NS报文主要有三个功能:

  • 请求获取邻居的链路层地址,也就是MAC地址
  • 验证之前获得保存好的MAC地址是否还有效
  • 验证其地址在本地链路上的唯一性

    这里说白了就是去直接获取邻居的MAC地址,但其方式和ARP不同,用的是IPv6特有的组播(也叫多播)技术,向目的IP地址所在“被请求节点多播地址”发送。这个引号里面的名词是把自己IP地址的后24位拼到一个固定前缀上,构成的多播地址,里面就只有IP地址一个人(其实我也觉得这个很奇怪为啥要这么干,应该是有什么好处)。等到验证是否还有效的时候,就已经换成直接给IP地址发,不给组播地址发了。

NA是NS的回复报文,就是告诉请求者,我的MAC地址是多少,来,发我东西吧。当然没有NS请求的时候,NA也可以直接给所有人组播(其实有点像广播)通知大家自己链路层地址MAC的变化。

除了上述三条我认为比较基础,同时也比较重要的概念之外,还有一些细碎的问题,大多都是需要记忆的,因此只是浅谈一下,做个提示,用到的时候Google就可以了。

1.IPv6和IPv4帧格式的区别。IPv6取消了报头中很多IPv4的选项,把这些选项全部加入到扩展报头之中,这样可以减少中间路由器(也就是帮你转发包的路由器)处理报文所消耗的CPU时间。
2.IPv6现在的构建情况。现在教育网中都支持IPv6,但是普通家用路由器还没有支持,但是我相信IPv6是全球大趋势,在不久之后会继续支持。同时细心的同学会发现,在我国伟大的GFW下,IPv6依旧可以上Google。这主要原因是IPv6的地址非常多,GFW不能够全部屏蔽,因此可以不稳定的上Google。

如果有其他想起来的,会继续补充,先写到这里吧~

发表评论

电子邮件地址不会被公开。 必填项已用*标注