learn-tech/专栏/全解网络协议/11我已经没地方住了吗-IPv6.md
2024-10-16 06:37:41 +08:00

6.2 KiB
Raw Blame History

                        因收到Google相关通知网站将会择期关闭。相关通知内容
                        
                        
                        11 我已经没地方住了吗 - IPv6
                        IPV6的成长史

IPV6其实已经是一位80后。它生于八十年代后期当时的工程师们已经意识到IPV4的空间正在迅速耗尽。然后到了1995年左右IPV4进行了一次挣扎。那就是实现了子网技术我们前面有讲过这样就可以缓解IP地址不足和遍及全球的问题。从那时起已经过去了20多年我们现在才刚刚开始看到IPV6在世界上的快速发展和部署。我记得我2011年的时候想要去考CCNAIPV6的知识设计的很少。那么这是否意味着我们将立即转成IPV6吗那当然是极不可能的。比如在医疗保健领域。IT的技术不是那么的先进。整个商业领域中尚不支持IPV6。因此我们必须要找到一种折中的办法。你先去洗一下脸清醒一下。忘记IPV6已经三十多岁了还一事无成。忘记某些领域完全不支持IPV6。我希望当你读到这篇文章的时候内心是充满希望是充满着对明天美好的憧憬。我们来看一下IPV6的工作原理。他本身是一个阳光帅气的中年大叔每位大叔都是潜力股。只是还没有完全的开花。

IPV4 vs IPV6

俗话说的话没有对比就没有伤害但是不对比我们又怎么能知道两者的区别以及强弱呢。那我们就来无情的对比一下IPV4和IPV6。

IPV4

首先IPV4是32字节长有4个八位位组。 比如192.168.0.10。转成二进制就是11000000 1010100 00000000 00001010

IPV6

IPV6呢却比IPV4要长很多。有128位。表示的方式呢也是16进制的。比如这个例子2001:0DB8:0123:007D:0000:0000:00A5:53B5。

IPV6的话也同样分为网络部分和主机部分。一般是前64位作为网络部分这个不是必须的。却是极力推荐的因为IPV6就是这么设计的。可能你会觉得这个IPV6的地址太长了这是不是太难记了。这位80后的钻石王老五已经想到了。为了可以吸引更多的漂亮妹子。它做了一些改变。比如前缀0优化。这是什么意思呢

比如说你现在手上有1元那你写成01元还有001元还有0001元有区别吗是不是都等于1元。 但是如果0在后面比如10元100元1000元还等于1元吗当然不等于是不是。所以前置的0是可以省略的。那么我们上面的IPV6地址就可以写成 2001:0DB8:0123:007D:0000:0000:00A5:53B5 全写 2001:DB8:123:7D:0:0:A5:53B5 简写 还可以写成更简写 2001:DB8:123:7D::A5:53B5

复制

这里提示一个潜在的错误,那就是::这种简写只能用一次。比如下面这个例子就是错误的

2001:DB8:123::A5::53B5 (X) 你想一下这个为什么是错误的呢? 因为你无法判断前面和后面0的个数 2001:DB8:123:0:A5:0:0:53B5 (第一种可能) 2001:DB8:123:0:0:A5:0:53B5第二种可能

复制

如果你都无法判断,你怎么可能要求计算机知道哪种是你需要的呢?所以这个是要切记的点。

我们知道了IPV6的结构那IPV6是怎么运作的呢理论上来说和IPV4运作非常相似。如果有两台设备用电缆连接在一起。他们想要互相通信的话这些地址的网络部分必须匹配。比如这个例子

192.168.10.10 255.255.255.0 和 192.168.10.12 255.255.255.0

复制

如果我的IPV4不具有相同的网络部分那么这些设备就无法就行通信。比如下面这个例子。

192.168.55.10 255.255.255.0 和 192.168.10.12 255.255.255.0

复制

从这个图的红色范围里你可以清楚的看到两个IP地址的网络部分是完全不同的。所以无法直接进行通信。除非你在中间添加一个路由器。

IPV6和IPV4的原理是相似的。如果网络部分相同之间是可以互相通信的。比如

2001CA7:3:B::10/64 和 2001CA7:3:B::11/64

复制

如果我稍微的修改一下,比如下面这样,那他们就不能直接通信了。当然路由器还是可以解决问题的

2001CA7:3:A::10/64 和 2001CA7:3:B::11/64

复制

我们来放大我们的场景到Internet。当在Internet上进行通信时我们需要使用的是称为IPV6的全球单播地址用于全球通信。还需要一个链路本地地址来进行本地的通信。让我们继续向下一起来看一下IPV6的地址类型。

IPV6的地址类型

单播地址

全球单播地址 链路本地地址 - 用于本地的通信。格式必须是FE80::/10 环回地址 - ::1128 (还记得IPV4的环回地址是多少吗127.0.0.1) 未指定地址 ::/128 唯一本地地址 FC00::/7, 这个地址是不可以和公共网络进行交流的这点和IPV4不同IPV4的话即使是私有地址通过NAT还是可以和公网通信。但是在IPV6中却无法左到这一点。所以这个唯一本地地址对你做实验和练习的时候比较有用但是不适合设置你的网络环境来和公网通信。

组播地址

一对多的通信。主要用于企业内部

任播地址

一个IPV6地址赋给多态机器Wait a Sec。这时候你是不是会有疑惑这样是不是违规了你的猜测是正确的那你开动脑瓜想一想有什么场景可以这么使用> 负载均衡Load Balancing

IPV6的地址数量

你是不是会有一个疑问就是我们之所以使用IPV6就是因为IPV4的地址太少了快被用完了所以才有了IPV6那么IPV6有多少地址呢我可以负责任的告诉你很多很多。真的是太难以计算了我们来看一个单一的网络地址吧。比如网络部分已经确定了然后只考虑主机部分的64位。就是说一个确定的IPV6网络地址上有多少个主机地址可以分配就是2的64次方计算出来是18,446,744,073,709,600,000。我已经不知道这个数字怎么念出来了所以就给你一个“准确的”数字那就是很多很多。你觉得IPV6会用尽吗我只能说世事无绝对但是基本上我们这一代是不用操心这个问题了。估计你不需要学习IPV8了。