是否可以为同一网络中的主机分配网络地址和广播地址?

网络工程 播送 IP地址
2021-07-20 11:04:39

我知道不建议将网络和广播地址分配给主机,但是有什么方法/技巧可以分配它们吗?

3个回答

在 linux 上,可以创建一个网络,其中第一个和最后一个地址并不特殊,可以用作常规主机地址,如下所示。

  1. 使用 /32 网络掩码为接口分配 IP 地址
  2. 添加带有所需网络掩码的显式路由。

我不知道同样的技巧是否适用于其他操作系统。

下面是一个示例,该示例使用 .0 和 .255 地址在它们之间创建两个网络命名空间和一个虚拟网络。

ip netns add blue
ip netns add red
ip netns exec red ip link set dev lo up
ip netns exec blue ip link set dev lo up
ip link add veth0 type veth peer name veth1
ip link set veth0 netns red
ip link set veth1 netns blue
ip netns exec red ip link set dev veth0 up
ip netns exec red ip addr add 192.168.168.0/32 dev veth0
ip netns exec red ip route add 192.168.168.0/24 dev veth0
ip netns exec blue ip link set dev veth1 up
ip netns exec blue ip addr add 192.168.168.255/32 dev veth1
ip netns exec blue ip route add 192.168.168.0/24 dev veth1
ip netns exec red ping 192.168.168.255
ip netns exec blue ping 192.168.168.0

您会经常在点对点链接上看到这种情况。例如。(172.16.0.0/31 和 172.16.0.1/31)。RFC 3021描述了这种情况以节省地址空间。Packetlife也有一篇关于这个的好博文。

无需为主机分配广播或网络地址。当您为主机分配了地址时,根据子网掩码,主机将根据掩码计算用于网络和广播的内容。

在 Linux 主机上,您已经可以在接口文件中添加网络和广播地址,但我不知道它的意义何在。