子网划分、嵌套子网划分、VLSM 和广播地址

网络工程 ipv4 子网
2021-07-27 06:10:09

一位老师向我们介绍了 VLSM 和“嵌套子网划分”:

  • 你不应该使用 all-1 / all-0 子网
  • 您获得的相同公共网络,可以拆分为不同大小/具有不同子网掩码的子网
  • 你可以嵌套子网,这样同一个IP实际上属于2个子网:在下面的例子中,B的范围是从193.174.26.161到190,但是C嵌套在193.174.26.189到193.174.26.190之间;此外 B & C 嵌套在 A 中
  • 这样做的目的是浪费更少的 IP
  • 路由器不支持,但理论上可以

老师给我们举了例子,要求如下:

  • 你从你的 ISP 得到 193.174.26.0 /24
  • A:140台主机
  • B:20台主机
  • C: 2 台主机
  • 给定:C 应该嵌套在 B 中

--> 使用相同大小的子网而不嵌套是行不通的

解决方案:

┌────────┬────────────────┬──────────┬──────┬──────── ──┬────────────┬──────────┐
│网络│网络地址│最后一个八位字节│后缀│第一个主机│最后一个主机│广播│
├────────┼────────────────┼──────────┼──────┼────────── ──┼──────────┼──────────┤
│A │193.174.26.0 │0000 0000 │/24 │1 │254 │255 │
├────────┼────────────────┼──────────┼──────┼────────── ──┼──────────┼──────────┤
│B │193.174.26.160│1010 0000 │/27 │161 │190 │191 │
├────────┼────────────────┼──────────┼──────┼────────── ──┼──────────┼──────────┤
│C │193.174.26.188│1011 1100 │/30 │189 │190 │191 │
└────────┴────────────────┴──────────┴──────┴──────── ──┴───────────┴──────────┘

我从来没有关注过它,也找不到很多信息,所以我有一些问题:

  1. 我认为 C 是全 1 子网,对吗?
  2. 如果路由器(例如将本地网络连接到 Internet 的路由器)接收到目标为 193.174.26.255 的数据包,会发生什么情况?它如何决定是将其路由到所有主机(193.174.26.1 和 193.174.26.254 之间的每个人,无论是在子网 B 还是 C 中)还是仅路由到直接位于网络 193.174.26.0 中的主机(嵌套网络的根)
  3. 谁将收到地址为 193.174.26.191 的数据包?B 中的所有主机包括 C 或仅 C 中的主机?
  4. 一般来说,即使你不使用VLSM和嵌套,但你ALLOW all-0 / all-1-networks:你如何区分“超级网络”和子网络的网络/广播地址?(按照链接的文章,它应该同时工作)
  5. 有人在现实生活中使用过这种技术吗?

关于全 1 和全 0 子网的 Cisco 文章 http://www.cisco.com/c/en/us/support/docs/ip/dynamic-address-allocation-resolution/13711-40.html

2个回答

不幸的是,你的老师犯了一个错误。您不能“嵌套”或重叠子网。事实上,许多路由器不会让你以这种方式配置地址——它们会给你一个错误,因为它们不知道给定的“嵌套”地址使用哪个接口。

您的所有问题都很好——它们指出了尝试重叠子网的问题以及为什么这行不通。

我可以说5的答案是否定的。

“嵌套”(重叠网络)需要代理 arp,因此应该不惜一切代价避免。没有企业路由器会允许这种损坏的配置——每个接口/子网必须完全独立,这意味着在现实世界中,在路由真实IP 地址的地方,不能使用这种“保护方法(又名:废话)[*]

任何不精通网络的人都不应该尝试它。(即,如果您十年或更长时间没有设计、设置和维护大型复杂网络,您甚至不应该谈论这种类型的损坏。)

(完全披露)
我现在正在 OpenStack 开发环境中做这件事。192.168.xx.0/24 在较大的 /24 中的一台机器后面有一个 /29。该机器必须更改许多特定的非默认设置,以假装是 /29 切片中的主机。(又名proxy-arp)是的,我可以在路由器上为 /29 添加路由,但是 /24 中的机器仍然无法与 /29 通信,因为它们较大的网络掩码意味着它们是链接-当地的; 我必须将该 /29 路由添加到 /24 中的所有机器才能工作。

全 0 和全 1
几十年来,这些概念在现代网络中没有任何实际意义。您在 Internet 上可能遇到的任何事情都不会对网络大小做出任何假设——现在一切都是无类的是的,曾经有使用全 0(或 1)子网的问题——比如 199.72.0.0/24(来自 199.72.0.0/16 的第一个子网)(真实故事) ——因为互联网上的一些随机系统( AIX) 将类逻辑应用于范围。今天没有什么可以做到的。因此,对于 199.72.0.0/16,地址范围是 0.0 到 255.255——这些地址也是 /16 的网络广播地址。那些总是 /16 的网络和广播,即使 /24 嵌套在某处。

活动网络掩码始终定义网络和广播。是的,这意味着嵌套结构具有多个广播地址,但由于不同的网络掩码,不同区域(子网络、父网络等)内的节点侦听不同的地址。在第 2 层(以太网),同一域(例如 vlan)中的所有主机都会看到相同的广播,但主机将在第 3 层过滤掉“外部”广播,除非它们被发送到“所有”节点”广播地址为 255.255.255.255。

[*] 希望像这样节省空间的 ISP 通过桥接来做到这一点,但这有其自身的问题。
[*] 我警告过我的白痴(“我们知道的比你多”)同事不要使用 199.72.0.0/24,但他们还是这样做了——将 webdev 桌面放在 0.0/25 中。一天后,在每个人都抱怨互联网上他们根本无法获得的随机位置之后,出现了“ What. Did. I. Tell. You. ”。那是在 1997 年。