问题如下。
考虑一个路由器,该路由器互连三个子网:A,B和C。假设每个接口中的所有接口 这些子网必须具有前缀119.61.96.0/19。假设子网A和B每个都需要 支持2000个接口,并且子网C需要支持4000个接口。提供以下地址 满足这些约束的A,B和C(形式为a.b.c.d / x)。
我对A的回答是119.61.112.0/21。
我认为这是可以接受的。我有点理解/ 21部分,即2 ^ 11,所以请从/ 21的32位来考虑。符合逻辑的东西。令我感到困惑的是为什么112可以接受。我试图将整个事情转换为二进制,但仍然看不到为什么。我知道您必须对2 ^ 11做一些事情,像这样吗? 0/000 0000 0000
无论如何,如果有人可以用正确的方式指我,如果我理解第一个,我应该能够弄清楚其余的人。如果我走了,我会道歉。
我很感激, 谢谢。
答案 0 :(得分:0)
IPv4是4个字节(32位)。每个字节可以取0到255之间的值。
119.61.96.0/19
表示最高的19位将始终相同:
二进制表示形式(左侧的高位):
01110111.00111101.01100000.00000000
前19位:
01110111.00111101.011
子网A和B需要2000个地址,最接近的2的幂是11(2048)。这意味着他们需要11位的地址。
子网C需要4000个地址,最接近2的幂是12(4096)。这意味着他们需要12位地址。
对于C子网:
32 bits of IPv4 address
- 19 bits (fixed)
- 12 bits (address space)
-------------------------
= 1 bits we can use to divide in subnets of 4096 addresses
如果(方便地用于OP)我们选择值为0的第20位作为C子网,则C定义为:
01110111.00111101.0110 = 119.61.96.0/20
对于A和B子网
32 bits of IPv4 address
- 19 bits (fixed)
- 11 bits (address space)
-------------------------
= 2 bits we can use to divide in subnets of 2048 addresses
由于C子网将A和B的第20位设置为0,因此该位的值为1。 第21位(对于OP来说也是很方便的),我们将为子网A定义值为0,为子网B定义值为1。
子网A
01110111.00111101.01110 = 119.61.112.0/21
子网B
01110111.00111101.01111 = 119.61.120.0/21