教师：在本课中,
我们将介绍有关IPv6或Internet协议版本6的概念｡
到目前为止,
我们实际上只是讨论了IPv4,
但IPv4的一个问题是它的地址空间有限｡
这是因为IPv4地址只有32位,
我们只有4位｡ 20亿个可能的地址组合｡
我知道4｡ 20亿听起来像是一大堆IP,
但是当我们把所有的东西都拿出来时,
比如APIPA地址, 本地主机地址, 私有IP,
然后在我们开始使用子网之前就有大量的浪费, 这导致了一个大问题, 我们开始耗尽IPv4内部的网络地址｡
这被称为地址耗尽, 这是一个真实的事情｡
事实上, 在2019年11月,
RIPE NCC, 欧洲, 西亚和前苏联的区域互联网注册机构,
以及NASA, 他们已经耗尽了整个IPv4地址池｡
幸运的是, 互联网工程任务组（IETF）已经开始展望未来,
他们在1995年将IPv6作为一种标准开发出来,
并在RFC中记录了他们对IPv6的愿景,
他们称之为IP下一代或IPNG｡
现在您可以看到, IPv6实际上在可用地址数量方面比IPv4有了巨大的改进｡
与IPv4中使用的32位地址不同,
IPv6将使用128位地址｡
这将为您提供更大的地址空间｡
事实上, 它会给你一个340个10亿的IP地址的可能性｡
这是足够的IP地址为每个男人,
女人, 和孩子在这个星球上｡
这是2的128次方
事实上, 地球上的每个男人､ 女人和孩子都有很多很多IP地址,
因为有太多的IP地址可用｡
现在, 你可能会想,
嘿, 我们从IPv4到IPv6｡
第五版怎么了？
为什么我们直接跳到第六版？
第5版已经创建, 但它从未被完全采纳为官方协议或标准｡
因此, 它从未投入生产｡
相反, 在版本5下开发的许多概念,
因为它是一个实验性协议, 然后在IPv6成为官方标准时被引入IPv6｡
让我们来谈谈IPv6的好处｡
最大的好处之一是,
由于这些128位地址,
地址空间更大｡
除此之外, IPv6还通过删除IPv4的广播数据流类型来提高我们网络的效率｡
现在, IPv6也更安全,
因为IPv6标准中没有数据包或数据报碎片｡
在每个会话中也没有用于发现的最大传输单元,
这与IPv4不同, IPv4包含每个数据包具有特定大小的MTU｡
在IPv4中, 如果我向您发送一个大于最大传输单元大小的数据包,
它实际上会将其分割并通过网络发送｡
当它到达目的地时, 它将被重新组装和阅读｡
这实际上是一个安全风险｡
它还需要额外的处理, 它实际上可能会减慢您的网络,
因为它在具有更高互联网连接速度的现代网络中以非常低效的方式做事｡
因此, 在IPv6中, 他们决定完全消除碎片｡
现在, 除了提供所有这些新的好处,
IPv6的创建者也非常聪明,
他们意识到IPv6要被完全接受和接受,
它必须向后兼容IPv4, 并允许IPv6和IPv4在同一网络上共存｡
毕竟, 当IPv6被开发和发布时,
已经是20世纪90年代后期了,
许多计算机网络已经遍布全球｡
因此, 我们不可能在一天内简单地改变一切｡
想想看, 就像我们目前正在经历的从汽油动力到电力动力的汽车的迁移｡
这将在整个2020年代和2030年代发生｡
现在, 这将是一个不可能的事情, 我们说,
嘿, 每个人在2025年1月1日, 没有人可以使用汽油动力汽车了｡
所有这些都将被电动汽车取代｡
如果一个政府试图这样做,
他们可能会有一场革命, 因为很多人已经拥有汽油动力汽车, 并花了大量的钱,
投资于这些汽车和基础设施, 以支持他们｡
因此, 我们不会在一夜之间简单地取代所有的汽油动力汽车｡
相反, 到2030年或2040年,
将有一个从天然气动力到电力的缓慢过渡, 因为世界上销售的越来越多的新车将作为电动汽车销售,
他们将停止销售天然气动力汽车｡
同样的事情也发生在IPv6上｡
因此, IPv6允许IPv4和IPv6在同一网络上共存,
运行这些网络的设备被称为双栈,
这意味着它们可以在同一网络设备上同时运行IPv4协议和IPv6协议｡
对于双堆栈设备, 如果客户端支持IPv6, 则路由器交换机将更喜欢使用IPv6并将在该方法下进行通信｡
现在, 如果一个设备不能支持IPv6,
它会自动返回并说, 好吧,
我将使用旧的IPv4协议与你交谈｡
这样我还能支持你
我们使用的另一种方法被称为隧道｡
这就是IPv6将通过IPv4设备进行隧道传输的地方｡
这允许您的旧IPv4路由器仍然携带IPv6流量｡
IPv6本质上将被隧道化,
作为一种机制, 用于将IPv6数据包封装在IPv4报头中,
并在那些IPv4路由器和其他已经存在的基础设施上携带这些IPv6数据｡
它通过在源和目的地之间创建点对点隧道,
然后封装该信息来实现这一点｡
这允许隔离的IPv6客户端和服务器能够通信,
而无需升级它们之间可能存在的仍然使用IPv4的所有路由器和交换机基础设施｡
现在, 有一天, 我们可能最终会看到IPv4完全退役｡
但到目前为止还没有｡
就我个人而言, 我不会抱太大希望｡
从我读过的一些文章中,
预测IPv4将至少持续到2040年,
所以作为一名网络技术人员, 你必须知道如何在可预见的未来使用IPv4和IPv6｡
IPv6的另一个好处是它有一个简化的报头｡
因此, 我们在IPv4中只有12个字段,
而在IPv6中只有5个字段, 这使得它成为一个精简的报头,
在我们的网络上发送效率更高｡
所以你可能想知道,
IPv6头是什么样子的？
好吧, 我会给你们看的, 但请注意, 你们不需要为了考试而背这些｡
相反, 这只是为了向您展示IPv4中的不同字段,
IPv4位于顶部, 而IPv6位于底部｡
现在你可以看到IPv6比IPv4简单得多｡
好吧, 让我们回到一些东西,
你需要了解的考试｡
IPv6地址实际上是什么样子的？
我已经说过它的长度是128位, 所以这意味着如果我们用二进制写出来的话,
它会有128个1或0, 这对我来说是一个非常糟糕的主意, 所以我们不打算这样做｡
现在, 我们可以像在IPv4中那样使用点分十进制表示法,
但这仍然需要写出很多八位字节,
因为我们需要16个八位字节来表示所有128位｡
为了解决这个问题,
IETF决定我们应该使用十六进制数字｡
你看, 十六进制是以16为基数的, 你可能记得也可能不记得高中代数课上的数字｡
现在, 在十六进制中,
每个十六进制数字实际上是四位｡
这将允许我们通过将四个十六进制数字组合在一起来表示IPv6地址,
以组成我们所说的段｡
现在, 一个段将有16位｡
这是由这四个十六进制数字表示的｡
然后我们要添加一个冒号,
然后我们要继续添加段,
直到我们达到128位, 这将需要8个段, 每个段有4个十六进制数字｡
这总共给了我32个十六进制数字,
仍然很长｡
现在, IPv6地址中表示128位, 这意味着所有这些段中的十六进制数字不超过32位｡
那么, 为什么我说这八个部分的长度不超过32位呢？
为什么它不只是32个十六进制数字,
因为32个数字乘以每一个数字的4位将给我们128位？
这是因为IPv6实际上允许我们使用简写来简化我们非常长的IPv6地址｡
速记的规则非常重要, 因为你可以在上面看到考试的问题.
所以如果一个段有四个零,
你可以在那里放一个零, 然后去掉那些前导零｡
例如, 假设我有一个很长的IPv6地址2018：0000：0000：0000：0000：4815：54ae｡
使用简单的规则,
我可以用一个零替换所有那些有多个零的线段｡
这将给我2018：0：0：0：0：4815：54ae｡
好的, 这把十六进制数从32位减少到了17位,
所以长度减少了一半｡
我们正在变得更好, 但我不会停在那里｡
在IPv6速记的世界里,
我还可以使用另一条规则｡
这条规则说, 如果有多个段都有零,
并且没有其他十六进制数字在那里表示, 我可以通过使用双冒号来总结, 并去掉所有这些零｡
现在, 这个规则很特殊,
因为你只能在IPv6地址中执行一次双冒号操作｡
因此, 使用我的双冒号规则,
我可以将2018：0：0：0：0：4815：54ae总结为删除所有这五组零,
并用双冒号替换它们, 并得到2018：：4815：：54ae｡
所以我从32个十六进制数字减少到17个十六进制数字,
现在我从17个数字一直减少到12个数字, 小得多,
更容易处理｡
你可以看到这种速记是多么的有用｡
那么, 如何识别IPv6地址和IPv4地址呢？
第一种方法是看看IPv4是什么｡
IPv4总是使用四个八位字节的点分十进制表示法｡
另一方面, IPv6将在数字之间使用冒号,
并且将以十六进制写入｡
好了, 现在, 你可能会在考试当天看到的问题之一是,
当你看到一个IPv6地址时, 识别它｡
例如, 您可能会遇到这样的问题：以下哪一个是IPv6地址？
这将是一个公平的问题问你｡
你会得到一些选项, 比如192｡ 168. 1. 1, 我们知道不是因为这是一个IPv4地址｡
你会得到12：34：56：78：90：AB或1234：：5678：：90
AB｡
等等, 我刚才说的最后两个, 它们真的很相似,
不是吗？
是的, 但其中只有一个是有效的IPv6地址｡
你知道是哪个吗？
因为大部分学生在这里会感到困惑｡
这里的第二个选项实际上不是IPv6地址｡
这是一个MAC地址｡
请记住, MAC地址是第2层物理地址,
始终包含12个十六进制数字,
并以冒号分隔｡
通常, 它们会被写成六组,
每组两位数, 每一组都被一个冒号隔开｡
另一方面, IPv6地址应该总是以每个四位数的段来写,
并且它们应该总是有16个段,
除非你看到一个双冒号｡
在这个例子中, 我们在第三个选项中的第一个和第二个段之间有一个双冒号｡
所以这是一个很好的简写, 我们可以使用它,
我们确定它是一个IPv6地址, 因为我们删除了这个地址中第一个和第二个段之间的所有零｡
因此, 如果你计算一个看起来像IPv6地址的东西,
它有12个, 正好是12个十六进制数字, 由单冒号分隔,
而且你在任何地方都看不到双冒号, 那就是MAC地址,
而不是IPv6地址｡
否则, 如果它看起来像这样,
并包括十六进制数字,
它将是一个IPv6地址在考试当天｡
对于考试, 你只需要能够识别IPv6地址的样子,
你应该能够通过去掉零并使用双冒号技巧合并它们来总结一个｡
如果你能做到这两件事,
你将在考试当天顺利进行IPv6寻址｡
在IPv6寻址方面,
有三种不同的地址类型可供用途：单播地址､
多播地址和任播地址｡
IPv6与IPv4真正区别开来的一个有趣之处在于,
我们可以将多个IPv6地址分配给客户端上的单个接口｡
这些分配可以是以下三种不同类型的混合：单播､
多播和任播｡
因此, 即使您的工作站或笔记本电脑上只有一个网络接口卡,
您也可以将多个IPv6地址和不同类型的IPv6地址分配给该卡｡
单播地址将用于标识单个接口｡
这些地址分为全局路由单播地址和链路本地地址｡
全局路由的单播地址类似于IPv4中使用单播A､
B和C类地址的公有地址｡
现在, 在IPv6中, 全局路由的单播地址总是以包含2000-3999的第一个段开始｡
现在, 如果你看到2000-3999作为你的第一个段,
这意味着它是一个全局路由的单播地址｡
例如, IPv6地址2584：0db8：8583：1234：5678：882e：0370：7334将作为单播地址进行全局路由, 因为它的第一段包含2584,
介于2000和3999之间｡
另一方面, 链路本地地址也称为本地使用地址,
其使用方式与IPv4中的私有IP地址相同｡
IPv6中的链路本地地址只能在局域网上使用,
并且它总是以FE 80作为IPv6地址中的第一个段开始｡
现在, 每当IPv6系统启动时,
它都会为该系统上的每个IPv6接口实际创建一个链路本地地址,
即使全局可路由地址已经手动配置或通过DHCP等配置协议获得｡
为此, 它将使用称为SLAAC的东西,
即无状态地址自动配置或S-L-A-A-C｡
通过无状态自动配置,
主机不需要从DHCP等集中式服务器获取地址或其他配置信息｡
相反, 它实际上可以独立地为自己分配一个链路本地地址,
测试该链路本地地址的唯一性,
为自己分配链路本地地址,
联系路由器并向节点提供有关如何继续自动配置的指导｡
它甚至可以配置它想要使用的全局单播地址｡
我们将在几分钟内回到这个概念,
因为我们开始讨论EUI-64和邻居发现协议时会更深入地讨论它,
因为这两个过程都与称为SLAAC的无状态地址自动配置协议一起使用｡
接下来, 我们有多播地址｡
现在, 多播地址用于标识一组接口,
以便将数据包发送到多播地址,
然后将其传递到组内的所有接口｡
在IPv6中, 多播地址将始终包含FF作为第一段中的前两位数字｡
如果您在IPv6地址的开头看到FF,
请记住它的多播｡
我们拥有的最后一种地址类型称为任播地址｡
任播地址用于标识一组接口, 以便数据包可以发送到一组接口中的任何成员｡
任播地址实际上是从单播地址空间中分配的｡
因此, 仅通过查看IPv6地址,
无法确定IPv6地址是单播还是任播｡
现在, 当你在看多播或本地链路时, 你有一个非常简单的方法来做到这一点,
但是你没有一个简单的方法来区分单播和任播｡
好了, 让我们回过头来再讨论一下SLAAC,
即无状态地址自动配置过程｡
现在, 正如我所说的, 在IPv6中,
有一个称为SLAAC的自动配置过程,
我们使用它来发现接口所在的当前网络, 然后允许它使用称为EUI-64的过程根据其MAC地址选择自己的主机ID｡
现在, EUI-64或扩展唯一标识符过程将允许主机为自己分配一个唯一的64位IPv6接口标识符,
称为EUI-64｡
现在, 这个EUI-64格式地址是通过使用接口的48位MAC地址获得的｡
MAC地址首先被分成两个24位部分｡
MAC地址的前半部分将包含OUI或组织唯一标识符｡
第二部分将包含特定的网络接口卡｡
现在, 在它们之间,
我们将插入一个16位的十六进制值FFFE｡
这样, 我可以将24位､ 16位和24位放在一起,
得到一个64位的EUI地址｡
现在, 这给了你64位, 你需要在那个网络上识别你的接口｡
然后, 接口将使用自动发现来确定它所在的网络,
并添加IPv6地址的网络部分,
这将是我们地址内部的前64位｡
现在, 我们将把表示网络的前64位放在我们从MAC地址创建的EUI-64地址的64位之前,
以创建我们现在可以使用的单播全局路由IPv6地址｡
因此, 您可以看到所有这些如何一起使用该MAC地址来创建此全局路由地址｡
现在, DHCP也可以在IPv6中使用, 如果你喜欢使用它｡
如果你这样做, 你将不得不使用DHCPv6协议｡
这将允许您让DHCP自动从DHCPv6服务器分配内容｡
但是, 由于EUI-64的自动配置过程已经默认内置在IPv6协议中,
因此您真的不需要使用DHCPv 6｡
但是如果你确实想使用DHCPv6, 你可以,
它将允许你分配每个接口将要获得的地址,
而不是允许它们使用SLAAC的自动配置协议｡
现在, 正如我所说的, IPv6默认情况下将根据其MAC地址选择自己的地址,
然后它将使用称为NDP或邻居发现协议的东西来根据其MAC地址了解网络上的其他第2层地址, 然后它将选择自己的主机ID｡
对于考试, 你不需要深入了解NDP, 但你应该了解NDP,
这个邻居发现协议, 在IPv6中使用,
它从路由器广告和邻居发现中提取了很多功能, 并为你处理它们｡