我的任务是分配IPV6地址,在几个不同的城市,在几个不同的国家,在几个不同的大陆上,将它们分割成数据中心。部分指令是使用“2-6-6-6-2”解决方案来分配这些is (即使有更好的解决方案,我别无选择,只能这样做),这意味着我没有在咬咬边界上分裂。我的问题是,如何将其显示为IPV6地址?我知道,对于每个数字,在咬口边界上的分裂给了我0-F的处理,但是对于在咬边不分裂,它是如何工作的呢?如何用一位数字表示6位?我已经在网上查过了,我能找到的都是在咬边分裂的例子。
希望这是合理的。
发布于 2016-10-17 21:41:25
你必须用二进制数来表示前缀长度,这样才有意义。有了2-6-6-2的解决方案,我想你说的是/48和/64之间的16位,基本上是终端站点必须创建子网的比特。
假设你的终端站点有2001:db8:1234::/48 .这使您可以使用子网2001:db8:1234:0000::/64到2001:db8:1234:ffff::/64。每个十六进制字符代表4位,正如您所说的,所传递的模式与十六进制字符不对齐(基本上是一个自然的4-4-4-4拆分)。
回到二进制。只要看看/48和/64之间的16位,我们就知道:
0000 0000 0000 0000 = ..:0000::/64
1111 1111 1111 1111 = ..:ffff::/64现在把它们组织在你描述的2-6-6-2-2中。让我们写出前两位的每一个组合。当然,十六进制表示法仍然是基于4位组的。我将给出前两位的每个值的第一个和最后一个地址:
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位)的一些例子:
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对地址中的其他位也是这样。它需要更多的思考,而不是当你划分在咬边,但在二进制,它不重要,你把边界放在哪里。仅仅是十六进制中的“人”符号就变得更难读/解释了。
发布于 2016-10-17 18:13:30
你不能用一位数字来表示六位。每一个数字是四位。你所做的就是使用CIDR符号。例如,有一些特殊函数的IPv6地址范围:
所有这些都是二进制的,就像IPv4一样,您有地址,而不是映射到八进制边界。
https://networkengineering.stackexchange.com/questions/35834
复制相似问题