/以太网上的32个子网通过DHCP

是否有可能通过DHCP分配给以太网主机只有主机本身的子网掩码,例如192.168.1.123/32? 常见的操作系统是否支持这种configuration?

我希望主机发送所有的stream量到路由器(而不是直接到同一网段的其他主机),但仍然为他们能够沟通(所以没有“客户端隔离”); 有效地创build一个点对点链接,但没有任何客户端configuration。

更新:我的意图是configuration一个运行dd-wrt的家庭路由器,以便所有的stream量必须通过路由器上的IP堆栈,因此可以通过一些ipfilter规则进行过滤。 我希望有一个通用的解决scheme,一些标准的方式来实现点对点的以太网连接,仍然可以通过DHCP自动configuration所有常见的操作系统。

根据目前的反应,这似乎并不那么容易; 我会再读一些关于VLAN的内容,然后重新考虑我的计划。

首先,为了创build点到点链接,你至less需要4个地址,所以你必须使用/ 30掩码。 例如:192.168.1.0/30

  • networking地址:192.168.1.0/30
  • 第一点地址:192.168.1.1/30
  • 第二点地址:192.168.1.2/30
  • 广播地址:192.168.1.3/30

您必须将每个主机放置在不同的/ 30子网上,并在网关上实施子网间路由。

编辑:你不会写很多关于你的基础设施或你想用这种configuration实现的可伸缩性。 我想你的路由器支持使用子接口。

此外,如果您使用DHCP服务器来分发寻址scheme,则不需要额外的客户端configuration。

有可能分配一切,但我怀疑这将工作 – 特别是与Windows客户端。 与Linux协同工作的常识方法将如下所示:

  1. 使用地址和正确的子网掩码configuration接口
  2. 删除本地networking路由
  3. 通过接口添加到网关的显式路由
  4. 通过网关添加一条默认路由

它通常需要在DHCP客户端上进行手动configuration或脚本来完成1之后的任何操作。

您还应该确保您的网关不会发送ICMPredirect消息到主机 – 它通常会在检测到主机正在尝试通过网关到达同一networking内的另一个主机时执行此操作(信息源自地址/子网掩码路由器的本地主机接口的组合)。

使用/ 32networking掩码(静态或通过DHCP)似乎是VPS提供商*向Linux主机应用日益普遍的默认configuration – 可能是为了减less广播stream量。

我不确定这样的configuration是否可以在基于Windows的主机上按预期工作,但是Linux主机的工作手册configuration看起来像这样(对于Debian的版本)。

的/ etc /networking/接口:

auto eth0 iface eth0 inet static address 123.123.82.130 netmask 255.255.255.255 broadcast 123.123.82.130 up route add 123.123.92.171/32 dev eth0 up route add default gw 123.123.92.171 

无论DHCP提供的这种configuration是否能够可靠工作,都可能高度依赖于分配的networking脚本。 当然有一些证据支持这个(如NetworkManager),如下面的提交到Dracut initramfs构build工具:

https://github.com/haraldh/dracut/commit/99ccbc30dff9fa51dd3187dc10f8f632e5e54e4b

更新:Google Compute实例通过DHCP分配/ 32,向使用选项121的非子网网关提供静态主机路由。

[*] CheapVPS,1&1和Strato做这个例子。

您可以用来与点对点链接中的其他设备进行通信的最小的IPv4前缀是/31前缀。 这是在RFC 3021“在IPv4点对点链接上使用31位前缀”中定义的。

同样,您可以使用/127 IPv6networking进行点对点链接。 请参阅RFC 6164,在路由器间路由器上使用127位IPv6前缀