我是否正确,在 IPv4 和 IPv6 点对点网络的情况下,子网的第一个地址是在主机/路由器中配置的有效地址?例如,如果192.0.2.0/31
其中一个主机会得到192.0.2.0/31
而另一个会得到192.0.2.1/31
。或者在这种情况下2001:db8::/127
,其中一个设备将获得地址2001:db8::/127
,而另一个将获得2001:db8::1/127
. 换句话说,192.0.2.0
or2001:db8::
是一个完全正常的地址?
在 IPv4 和 IPv6 点对点网络的情况下,子网的第一个地址是否是有效的可配置地址?
对,那是正确的。
IPv4:
RFC 3021, Using 31-Bit Prefixes on IPv4 Point-to-Point Links对 IPv4 进行了解释,但请注意并非所有供应商,尤其是 Microsoft,都支持/31
网络:
2. 31 位前缀的考虑
本节讨论在点对点链路上使用 31 位前缀对 Internet 路由和操作可能产生的影响。此处所做的考虑也反映在第 3 节中。
对于本文档的长度,IP 地址将被解释为:
<Network-number><Host-number>
其中
<Host-number>
代表地址的未屏蔽部分,它应该至少为 1 位宽。“-1”表示法用于表示该字段全为 1 位。出于本次讨论的目的,路由系统被认为能够进行无类别或 CIDR [ RFC1519 ] 路由。2.1. 寻址
如果将 31 位子网掩码分配给点对点链路,则它只留下
<Host-number>
1 位。因此,可能只产生两个可能的地址:{<Network-number>, 0} and {<Network-number>, -1}
这些地址历来与网络和广播地址相关联(参见第 2.2 节)。在具有 31 位子网掩码的点对点链路中,上述两个地址必须被解释为主机地址。
2.2. 广播和网络地址
IP 段上有几个历史上公认的广播地址 [ RFC1812 ]:
(a) the directed broadcast {<Network-number>, -1} {<Network-number>, 0} The network address itself {<Network-number>, 0} is an obsolete form of directed broadcast, but it may still be used by older hosts. (b) the link local (or limited) broadcast {-1, -1} {0, 0} The {0, 0} form of a limited broadcast is obsolete, but may still be present in a network.
使用 31 位前缀长度仅留下两种编号可能性(参见第 2.1 节),从而消除了对链路的定向广播的使用(参见第 2.2.1 节)。有限广播必须用于分配有 31 位子网掩码的点对点链路上的所有广播流量。
在
<Network-number>
由网络管理员作为唯一的本地路由域分配。目标IP地址是否应该是定向广播的决定是由直接连接到目标网段的路由器做出的。当前的转发方案和算法在远程路由器中不受影响。本文档的目的是讨论 31 位前缀在点对点链路上的适用性和操作。不考虑对其他类型接口的影响(如果有)。
2.2.1. 定向广播
当设备想要访问给定(远程,而不是直接连接)子网上的所有主机时,它可以将数据包的目标地址设置为链路的子网广播地址。对于具有 31 位前缀的点对点链路,此操作是不可能的。
正如第 6 节所讨论的,定向广播功能的丧失实际上可能被视为一种有益的副作用,因为它略微增强了网络对某类 DoS 攻击的抵抗力[ RFC2644,SMURF ]。
2.3. 对当前路由协议的影响
具有 31 位前缀的网络对当前的路由协议没有影响。大多数当前部署的路由协议旨在提供无类路由。此外,对等点之间的通信是使用多播、有限广播或单播地址(都在本地网络上)完成的,使用 31 位子网掩码不会影响这些地址。
对于 IPv4 可以这样想,/31
网络上发送的每个数据包实际上都是发往网络上的所有其他主机(只有一个),这是广播的定义,因此广播在这样的网络上无关紧要.
IPv6:
IPv6 从来没有广播,因此,与 IPv4 不同,IPv6 网络中的所有地址都可用作主机地址,包括全零和全 1 地址。IPv6 大量使用多播。