ip addr add 网址 32和24的区别
在您提供的信息中,您首先使用 ip addr add
命令给 eth0
接口添加了两个IPv4地址:10.10.88.65/32
和 10.10.88.64/24
。然后,您使用 route -n
命令查看了路由表,并发现有一个路由项与 10.10.88.0
网络相关。
这里的关键点在于理解 /32
和 /24
这两个不同的子网掩码:
-
/32 子网掩码:表示一个单一的IP地址。当您给接口添加一个
/32
地址时,它相当于告诉系统这个IP地址直接关联(直连)到这个接口。因此,系统会自动为这个单一的IP地址创建一个直连路由。这就是为什么当您添加10.10.88.65/32
地址时,系统中会出现一个直连路由。 -
/24 子网掩码:表示一个包含256个IP地址的网络(从
10.10.88.1
到10.10.88.255
)。当您给接口添加一个/24
地址时,您实际上是在告诉系统整个10.10.88.0/24
网络都与这个接口相关联。因此,系统会创建一个网络路由,而不是直连路由。
在您的最后一个命令中,您添加了 10.10.88.64/24
地址,但是没有看到对应的路由项,这是因为:
-
路由表中已有更具体的路由:您已经有一个
10.10.88.0/24
的路由项,它涵盖了10.10.88.64/24
网络。在路由表中,更具体的路由(如直连路由)会被优先选择。 -
路由表的合并:当存在多个路由指向同一目的地,但通过不同的接口时,路由表可能会合并这些路由,只显示一个最具体的路由。
因此,尽管您添加了 10.10.88.64/24
地址,但由于 10.10.88.0/24
的路由已经涵盖了这个地址,所以没有单独显示一个新的路由项。这是预期的行为,您的系统配置看起来是正确的。
在计算机网络中,路由(routing)是一种将数据包从源传输到目的地的方法。路由表包含了用于指导数据包转发的信息。在Linux系统中,您可以通过查看/proc/net/route
或使用ip route
命令来查看路由表。路由表中的每一条目都描述了如何到达特定的网络或主机。
直连路由(Direct Route)
直连路由是指目的地在直接连接的网络上的路由。换句话说,目标网络的接口是本地可到达的,不需要通过任何路由器或网关。直连路由通常用于本地网络接口的IP地址或网络上的广播地址。
特点:
- 数据包可以直接发送到目的地,不需要通过任何路由器。
- 在路由表中,直连路由通常会有一个
UG
标志,U
代表路由是活动的,G
代表路由是可达的。 - 直连路由的网关(Gateway)字段通常是空的,因为不需要网关来转发数据包。
网络路由(Network Route)
网络路由是指到达非直接连接的网络的数据包转发路径。这种路由需要通过一个或多个路由器来转发数据包,因为目标网络不在本地网络上。
特点:
- 数据包需要通过一个或多个路由器来到达目的地。
- 在路由表中,网络路由通常会有一个
UG
标志,同样U
代表路由是活动的,G
代表路由是可达的。 - 网络路由的网关(Gateway)字段会包含下一跳路由器的IP地址,这个地址指示了数据包应该被发送到的下一个路由器。
区别
- 目的地:直连路由用于直接连接的网络,而网络路由用于非直接连接的网络。
- 网关:直连路由通常没有网关,因为它们是直接可达的;网络路由需要一个网关,因为数据包需要被转发到其他网络。
- 跳数:直连路由的跳数通常是0,因为它们直接连接;网络路由的跳数至少是1,因为数据包至少需要经过一个路由器。
- 路由表条目:在路由表中,直连路由和网络路由的表示可能略有不同,特别是在网关字段和路由标志上。
了解直连路由和网络路由的区别对于网络管理和故障排除非常重要,因为它决定了数据包如何在网络中流动。