子网掩码问题

Ber*_*ira 4 ip subnet netmask

我正在学习测试,发现自己陷入了一个关于网络掩码的“死胡同”。

问题是:

根据下图,一旦配置了两个子网, 
据观察,一个子网中的主机不能访问另一个子网中的主机。 
每个站点和路由器的 IP 是:

01 号站:172.16.78.192
02 号站:172.16.74.3
03 号站:172.16.94.3
04 站:172.16.82.254

路由器的端口 01:172.16.65.1
路由器的端口 02:172.16.88.1

数字:
[01站]-------------------------------[02站]
                            | 
                            | 端口 01
                         [路由器]   
                            | 端口 02
                            |
[03站]--------------------------------[04站]  

此问题是由选择的网络掩码引起的。 
以下哪个网络掩码将允许所有主机进行通信
以正确的形式?

a) 255.255.240.0 ---- **这在书中标为正确答案**
b) 255.255.248.0
c) 255.255.252.0
d) 255.255.224.0 ---- **这是我认为的正确答案**
e) 255.255.232.0

为什么我认为255.255.224.0是正确的?

路由器的端口 01:172.16.65.1
路由器的端口 02:172.16.88.1

我知道网络掩码将以 255.255.X.0 结尾, 
因此将端口 IP 转换为二进制:

端口 01:0 1 0 0 0 0 0 1。0 0 0 0 0 0 0 0 = 65.0
端口 02:0 1 0 1 1 0 0 0。0 0 0 0 0 0 0 0 = 88.0

为了让所有主机能够相互通信,它们必须在同一个网络中,对吗?

所以,如果掩码是 255.255.224.0,我们有最后 2 个字节:

1 1 1 0 0 0 0 0 。0 0 0 0 0 0 0 0 = 224. 0

并与路由器的端口进行 AND 运算:

          网| 主机
端口 01:0 1 0 | 0 0 0 0 1 。0 0 0 0 0 0 0 0 = 65。0
端口 02:0 1 0 | 1 1 0 0 0 。0 0 0 0 0 0 0 0 = 88。0
网络掩码:1 1 1 | 0 0 0 0 0 。0 0 0 0 0 0 0 0 = 224。0

结果: 0 1 0 0 0 0 0 0 。0 0 0 0 0 0 0 0 = 64. 0

所有热点都将在网络中:172.16.64.0,能够相互通信。

那是对的吗?或者真的需要正确的网络掩码255.255.240.0,如果是这样,为什么会这样?我似乎无法理解这一点。

谢谢大家!

the*_*bit 10

位于同一个广播域内的主机需要相互通信,并根据 IP/网络掩码定义在同一个 IP 网络中。路由器互连两个广播域(即两个物理网络),因此要执行其功能,相应的路由器IP 接口需要能够与同一广播域内的其他主机进行通信。你得到的是这三个 IP 主机的情况

Station 01: 172.16.78.192
Station 02: 172.16.74.3
Router's port 01: 172.16.65.1
Run Code Online (Sandbox Code Playgroud)

需要在网络 1 和这三个 IP 主机中

Station 03: 172.16.94.3 
Station 04: 172.16.82.254 
Router's port 02: 172.16.88.1
Run Code Online (Sandbox Code Playgroud)

需要在网络 2 - 两个网络之间的数据通过路由器。这就是你得到的答案 a)。答案 d) 只是将所有主机放在同一个 IP 网络中,从而使站点 01 和 02 假设不需要路由器来与站点 03 和 04 通信,并且显然中断了互连。

但是你能详细说明为什么网络掩码 255.255.240.0 是正确的吗?

您选择一个在以下两种情况下都有效的网络掩码:

  1. IP 地址 172.16.78.192、172.16.74.3 和 172.16.65.1 在一个网络内
  2. IP 地址 172.16.94.3、172.16.82.254 和 172.16.88.1与 1 中的地址不在同一网络内。

首先进行一些数学运算:240 的二进制表示是 11110000 - 在地址的 3. 八位字节中为您的“主机”部分留下 4 位(或 2^4 = 16 个排列)。现在您需要进行估计:“16”大致足以将 65、74 和 78 合并到同一网络中,因为 65 和 78 之间的跨度仅为 78-65=13。要检查它是否真的有效,您需要找到小于或等于 65(您的最低地址编号)的 16 的最高倍数 - 即 16 * 4 = 64。然后将 16 添加到结果中,看看您的最高地址编号仍在范围内:64 + 16 = 80。

按照此计算,您会看到地址范围 172.16.64.0 - 172.16.80.255 将位于由掩码 255.255.240.0(CIDR 表示法 172.16.64.0/20)定义的一个网络内,并且符合上述两种条件。