首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何分割IPV6的咬口?

如何分割IPV6的咬口?
EN

Network Engineering用户
提问于 2016-10-17 18:08:31
回答 2查看 1.7K关注 0票数 0

我的任务是分配IPV6地址,在几个不同的城市,在几个不同的国家,在几个不同的大陆上,将它们分割成数据中心。部分指令是使用“2-6-6-6-2”解决方案来分配这些is (即使有更好的解决方案,我别无选择,只能这样做),这意味着我没有在咬咬边界上分裂。我的问题是,如何将其显示为IPV6地址?我知道,对于每个数字,在咬口边界上的分裂给了我0-F的处理,但是对于在咬边不分裂,它是如何工作的呢?如何用一位数字表示6位?我已经在网上查过了,我能找到的都是在咬边分裂的例子。

希望这是合理的。

EN

回答 2

Network Engineering用户

回答已采纳

发布于 2016-10-17 21:41:25

你必须用二进制数来表示前缀长度,这样才有意义。有了2-6-6-2的解决方案,我想你说的是/48和/64之间的16位,基本上是终端站点必须创建子网的比特。

假设你的终端站点有2001:db8:1234::/48 .这使您可以使用子网2001:db8:1234:0000::/642001:db8:1234:ffff::/64。每个十六进制字符代表4位,正如您所说的,所传递的模式与十六进制字符不对齐(基本上是一个自然的4-4-4-4拆分)。

回到二进制。只要看看/48和/64之间的16位,我们就知道:

代码语言:javascript
复制
0000 0000 0000 0000  =  ..:0000::/64
1111 1111 1111 1111  =  ..:ffff::/64

现在把它们组织在你描述的2-6-6-2-2中。让我们写出前两位的每一个组合。当然,十六进制表示法仍然是基于4位组的。我将给出前两位的每个值的第一个和最后一个地址:

代码语言:javascript
复制
00 000000 000000 00  =  0000 0000 0000 0000  =  ..:0000::/50
00 111111 111111 11  =  0011 1111 1111 1111  =  ..:3fff::/50

01 000000 000000 00  =  0100 0000 0000 0000  =  ..:4000::/50
01 111111 111111 11  =  0111 1111 1111 1111  =  ..:7fff::/50

10 000000 000000 00  =  1000 0000 0000 0000  =  ..:8000::/50
10 111111 111111 11  =  1011 1111 1111 1111  =  ..:bfff::/50

11 000000 000000 00  =  1100 0000 0000 0000  =  ..:c000::/50
11 111111 111111 11  =  1111 1111 1111 1111  =  ..:ffff::/50

让我们来看第一个::0000::3fff:。我将给出第二个字段(6位)的一些例子:

代码语言:javascript
复制
00 000000 000000 00  =  0000 0000 0000 0000  =  ..:0000::/56
00 000000 111111 11  =  0000 0000 1111 1111  =  ..:00ff::/56

00 000001 000000 00  =  0000 0001 0000 0000  =  ..:0100::/56
00 000001 111111 11  =  0000 0001 1111 1111  =  ..:01ff::/56

00 000010 000000 00  =  0000 0010 0000 0000  =  ..:0200::/56
00 000010 111111 11  =  0000 0010 1111 1111  =  ..:02ff::/56

etc, let's take some in the middle:

00 010001 000000 00  =  0001 0001 0000 0000  =  ..:1100::/56
00 010001 111111 11  =  0001 0001 1111 1111  =  ..:11ff::/56
...
00 100001 000000 00  =  0010 0001 0000 0000  =  ..:2100::/56
00 100001 111111 11  =  0010 0001 1111 1111  =  ..:21ff::/56

etc, to the last ones:

00 111101 000000 00  =  0011 1101 0000 0000  =  ..:3d00::/56
00 111101 111111 11  =  0011 1101 1111 1111  =  ..:3dff::/56

00 111110 000000 00  =  0011 1101 0000 0000  =  ..:3e00::/56
00 111110 111111 11  =  0011 1101 1111 1111  =  ..:3eff::/56

00 111111 000000 00  =  0011 1101 0000 0000  =  ..:3f00::/56
00 111111 111111 11  =  0011 1101 1111 1111  =  ..:3fff::/56

对地址中的其他位也是这样。它需要更多的思考,而不是当你划分在咬边,但在二进制,它不重要,你把边界放在哪里。仅仅是十六进制中的“人”符号就变得更难读/解释了。

票数 3
EN

Network Engineering用户

发布于 2016-10-17 18:13:30

你不能用一位数字来表示六位。每一个数字是四位。你所做的就是使用CIDR符号。例如,有一些特殊函数的IPv6地址范围:

  • fe80 80::/10用于链接-本地
  • for 00::/7表示ULA

所有这些都是二进制的,就像IPv4一样,您有地址,而不是映射到八进制边界。

票数 0
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/35834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档