子网掩码问题

子网掩码问题

我正在为考试做准备,却发现自己在一道关于网络掩码的问题上陷入了“死胡同”。

问题是:

根据下图,一旦两个子网都配置完毕,
观察到一个子网中的主机无法访问另一个子网中的主机。
每个站和路由器的 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 = 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,如果是这样,那为什么呢?我似乎无法理解这一点。

感谢大家!

答案1

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

Station 01: 172.16.78.192
Station 02: 172.16.74.3
Router's port 01: 172.16.65.1

需要在网络 1 中,并且这三个 IP 主机

Station 03: 172.16.94.3 
Station 04: 172.16.82.254 
Router's port 02: 172.16.88.1

需要位于网络 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)定义的一个网络内,并符合上述两个条件。

答案2

学习如何使用这个好工具:http://www.subnet-calculator.com/

相关内容