几周前,我在 Facebook 上与另一位网络工程师进行了一次有趣的讨论,内容如下:
我:
我想打击那些认为将 200 多个设备的网络放到 192.168.2.0/23 的子网中是个好主意的人(不,结尾 3 不是错字),以及(相当可能)同一个人认为在没有 VGA 或控制台 [或串行] 输出的硬件上安装无头防火墙是个好主意。
他:
我不明白。如果我要为 200 多个设备创建一个网络,并且我希望它们都在同一个广播域上,那么 /23 是有 510 个可用的票芽。是因为没有网络分段让您感到困扰吗?
我:
创建一个 10/16 会是一个更好的方法(就让它变得干净和以后容易处理而言)。另外,这个特定的客户正在疯狂增长,到明年应该拥有 500 多台设备。
他:
除非您有充分的理由,否则我会避免使用任何超过 /22 的广播域。你有什么样的交换和路由?听起来是时候在棒上安装 SVI 或路由器了。
基本上,我的烦恼是,无论是谁设置了原始网络,都使用 192.168.2.0/23,导致 192 网络被分成 2 个单独的 IP 块(我不喜欢结尾八位字节不同的事实,但是同一子网)。
所以这是我的问题:
设置子网掩码低于网络上设备数量实际所需的子网掩码是否存在网络性能问题?是否有任何其他原因导致这是一个坏主意(除了创建较小子网的安全和逻辑原因 - 创建某些 VLAN,将网络的一部分与另一部分分开,等等......)?
顺便说一句,我浏览了关于IPv4 Subnetting的 Canonical Question 的最佳答案,并学到了一些东西,但从性能的角度来看,它并没有直接回答我的问题。不过,具体来说,我发现该答案末尾的“将网络子网划分的三大主要原因”部分很有帮助。
在我看来,如果我将总共 30 台设备放到一个 10/16 子网中,就不会有问题。但是,如果我将 2048 台左右的设备放在 10/16 上,中间没有任何路由器或第 3 层交换,那么显然会有问题,很多设备都在尝试广播。
为什么这是一件坏事?我同意你的 FB 朋友的观点:这个子网大小似乎是用例的完美大小。
我在那里和你在一起。我运行了许多无头防火墙(嵌入式硬件上的 pfSense),但它们都有串行控制台。
一个
10.0.0.0/16
?!?作为单个子网?对于 500 台设备?当然,它会起作用,但它似乎非常浪费。您想在子网分配中给自己一些喘息的空间,但这太极端了。所以你不喜欢它,
/23
因为它看起来很奇怪?看起来像你可能需要克服的东西。在幕后,它都是二进制的。
“更低”,我想你的意思是“更大”?如果没有,请告诉我,我会修改。
简而言之,没有。假设相同数量的设备和相同的流量配置文件,在 a 上的性能与在 a 上的性能
/30
相同/8
。一方面,正如我之前提到的,如果你不需要它们,创建巨大的子网是非常浪费的。当然,RFC1918 IP 地址没有成本,但是如果您需要更改内容,创建大于必要的子网会限制您的灵活性。
作为一般规则,对于最终用户群,我更喜欢
/24
网络。如果有重大的技术需求,我会提高到 a/22
,但绝不会比这更大。在移动到更大的子网之前,我将竭尽全力将网络分割成更小的子网(和更小的广播域)。可能有问题。但可能没有。这并不明显。这完全取决于您的用例的性质。
如果您不喜欢您的前任如何设置网络,那么请考虑更改它。但不要出于审美原因(“
/23
看起来很奇怪”)这样做。出于合理的技术原因这样做,并确保您更改的任何架构实际上都比您弃用的架构更好。避免使用一个大的广播域的主要原因是因为一个脏网卡可以关闭您的网络。换句话说,如果您有 4 个网络(假设是 172.18.1.0/24 到 171.18.4.0/24)并且其中一个网络上有一个 NIC,它会吐出大量错误数据包,那么您将遇到错误那个网络上的网络性能。故障排除过程会容易得多。
拆分的另一个原因是通过 IP 地址快速识别设备的位置。我从来没有遇到过一个房间里有超过 254 台最终用户设备的办公空间(尽管我确信它们存在)。我唯一喜欢大于 /24 的网络是用于服务器。