通过 DHCP 分配 IP 来创建私有子网

物联网 联网 ESP8266
2021-06-03 01:08:56

如果重要的话,我正在使用 esp8266 wifi 模块。我打算做的是将模块连接到我的家用路由器,并让其他模块连接到这个模块并形成第二层,并且第二层其他模块可以连接形成第三层并且网络扩展等等,本质上是一棵树比如网络拓扑。连接到家庭路由器的第一个模块将使其自己的私有 IP 范围独立于家庭路由器 ip 范围,我们将进一步对其进行子网划分。所以我们从:

  • 第一个模块的 10.0.0.0/8。它需要IP 10.1.0.0
  • 它通过DHCP提供 10.2.1.0/16、10.3.1.0/16 ... 10.254.0.0/16
  • 10.2.1.0/16 可以进一步通过DHCP给10.2.2.1/24、10.2.3.0/24等等直到10.2.254.0/24
  • 10.2.2.1/24 可以给 10.2.2.2/32 到 10.2.2.254/32 DHCP

每个模块都运行自己的 DHCP 服务器。

现在的问题是,当一个模块从另一个模块得到一个请求给它分配一个ip地址时,DHCP服务器应该响应;但问题是 DHCP 无法以我描述的方式分配 ip 地址,而且我似乎只能为连续的 ip-blocks 设置它。

例如 192.168.1.0 到 192.168.254.254 没问题,但我需要 192.168.1.0 到 192.168.254.0

有没有办法让 DHCP 服务器按照我想要的方式分配 IP 地址?

1个回答

网络上的 IP 范围为某些地址保留了位置。让我们以将网络一分为二的第一步为例:

network #      ip for devices   broadcast 
    0                  1-126          127
  128                 129-254         255

这是面具/25。

对于其他掩码,也有精确的边界,它限制了子网中具有地址的设备的允许地址和数量。

第一个地址总是用于寻址网络本身,最后一个地址是广播地址。

因此,您不能自行选择 100% 的 IP 范围。

更多信息:https : //kthx.at/subnetmask/和在RFC 2131 中解释了 DCHP 的设计和工作。

如果您有兴趣,您可以阅读此 RFC 以提高您对地址管理的了解。IETF RFC 1466 IP 地址空间管理指南