我有一个10.0.0.0/8
分成两部分的网络。DHCP 服务器使用 A 类掩码 ( )10.0.0.10
向分配地址。这是我的网络的“访客”部分。10.0.0.150
255.0.0.0
授权网络用户在 DHCP 服务器上有保留地址,地址范围为 到 ,10.100.0.10
掩码10.100.0.250
为 A 类。
网络上的文件服务器的 IP 地址为10.100.0.1
,掩码为 B 类(255.255.0.0
)。
- “访客”网络和“授权”网络上的设备都可以互相看到。
- “授权”网络可以看到文件服务器。
- “访客”网络无法看到文件服务器。
到目前为止,这种方法效果很好,但我的班主任却发誓这样做不行。我在好几个地方都读到过,分配了不同子网掩码的 PC 不应该能够相互通信。
有人能帮助我理解为什么尽管子网掩码不同,但“授权”网络 PC 仍可以正常访问文件服务器吗?
答案1
子网掩码的原理是,它定义了 IP 地址的哪部分是网络地址,哪部分是主机地址:
10.100.0.1
- IP地址;
255.0.0.0
- 子网掩码;
10
- 网络地址,100.0.1
- 主机地址。
同一子网内的主机可以直接相互通信。这意味着,如果主机 A 和 B 位于同一子网内,并且 A 想要与 B 通信,那么 A 将直接将其流量发送到 B。如果主机 A 想要与位于不同子网中的主机 C 通信,那么 A 将不得不将此流量路由到网关,该网关知道(希望)如何到达不同的网络。因此,由主机来定义将流量发送到何处:
- 直接到主机(第二台主机位于同一子网内)
- 到网关(第二台主机属于不同的子网)
您的情况是,您的“授权”客户端有 IP 地址10.100.0.10 - 10.100.0.250
(我假设子网掩码为255.0.0.0
)。服务器有 IP 地址10.100.0.1
。对于“授权”范围内的主机,此服务器位于同一子网中。
如果10.100.0.10
“授权”范围内的主机想要与服务器通信 - 它首先检查该服务器是否位于同一子网内。对于10.100.0.10
具有子网掩码的主机255.0.0.0
,同一子网将是该范围内的所有主机10.0.0.1 - 10.255.255.254
。服务器的 IP 地址恰好在此范围内。因此,“授权”范围内的主机尝试直接访问服务器,并且(假设它们位于同一第 2 层网络上)此尝试成功。
在这种情况下,即使服务器具有不同的子网掩码 - 它恰好位于较大的子网中(这也是“授权”客户端的子网)。如果您的服务器在 IP 地址中具有不同的第二个字节(10.150.0.1
例如),它将是无法回复从“授权”范围到主机,因为从服务器的角度来看,“授权”范围看起来像一个不同的子网,服务器需要将流量发送到路由器。如果没有路由器 - 那么就不会有通信。
如果您想将网络分为“访客”部分和“授权”部分,那么您需要让它们位于不重叠的不同子网中。
例如:
- “客人”-
10.10.0.1
,子网掩码255.255.0.0
- “授权”-
10.20.0.1
,子网掩码255.255.0.0
服务器将位于具有 IP 地址10.20.0.100
和子网掩码的网络的“授权”部分内255.255.0.0
。
通过这种设置,这些子网将有效地彼此分离,因为代表其子网的 IP 地址的部分将有所不同:
10.10
为客人10.20
授权
此时,这些子网之间的通信只能通过在两个子网中都有接口的路由器才能实现。
另外,值得一提的是,虽然您的所有计算机都共享同一个第 2 层网络,但没有什么可以阻止访客手动为自己分配“授权”范围内的 IP 地址。这将有效地使他们成为授权网络的一部分。
答案2
所有“授权”和“访客”机器都在同一个子网上,因此它们都可以相互访问也就不足为奇了。
服务器的受限子网掩码使其认为只有“授权”的计算机位于同一子网上,因此它直接为它们进行 ARP 并可以访问它们。
服务器认为“来宾”计算机位于不同的子网中,因此会尝试将其数据包发送到其默认网关(即,在以太网层,它会将其寻址到默认网关的 MAC 地址;在 IP 层,它们仍寻址到“来宾”计算机)。如果服务器未定义默认网关,或者其默认网关无法访问或配置错误,则这些数据包将无法到达“来宾”计算机。
答案3
由于数据包超出了其 LAN 范围,因此它们将数据包发送到其默认路由器。其默认路由器将它们转发到目的地并向源发送 ICMP 重定向。无论 ICMP 重定向是否有效,流量仍会到达那里。
你绝对不应该这样做。