路由表和接口中的“掩码”有什么区别?

网络工程 子网 界面 路由表
2022-03-01 08:06:04

如果我们以 Windows 为例,我们可以使用命令“netstat -rn”来显示路由表,如下所示:

    IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
                              (omit other items..)
     192.168.56.0    255.255.255.0         On-link      192.168.56.1    281
     192.168.56.1  255.255.255.255         On-link      192.168.56.1    281
   192.168.56.255  255.255.255.255         On-link      192.168.56.1    281

我们还可以使用命令“ipconfig”来列出接口,如下所示:

Ethernet adapter Ethernet 3:
                       (omit other items..)
   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::e1d6:d479:c8d3:3032%8
   IPv4 Address. . . . . . . . . . . : 192.168.56.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

如果我们向“192.168.56.13”发送一个 ip 数据包,则此 dest ip 地址将与“Netmask(255.255.255.0)”进行与运算,并与 IPv4 路由表中所有项目的“Network Dest AND Netmask”进行比较,并获得接口“192.168.56.1”。

我的问题是从ipconfig得到的接口信息中,还有一个“子网掩码(255.255.255.0)”。“网络掩码”和“子网掩码”有什么不同的用途?从路由表中获取接口以确定“192.168.56.13”是否在同一个局域网(广播域)中后,“子网掩码”是否仅用于另一个 AND 操作?

2个回答

网络和子网在后网络地址类世界中是同一个东西,IPv6 从来没有网络地址类,但仍然使用掩码(总是写为掩码长度,而不是显式掩码)。

地址掩码用于区分地址的网络和主机部分。它用于确定目标地址中应与路由表网络地址匹配的部分,以确定是否存在匹配,并且将使用最长匹配(或在长度相同的情况下使用最低度量)。

接口是确定匹配时将数据包(不是包)转发到的实际接口。由于路由器在不同的网络之间路由数据包,因此在路由器中很有可能,甚至需要有多个接口,以太网物理接口或逻辑接口,或两者兼有。

他们是一样的东西。子网掩码用于将 IP 地址分为网络地址和主机地址。在这个例子中,子网掩码255.255.255.0等于11111111.11111111.11111111.00000000它的比特位,表示它有可用的256主机。254

另一方面,接口只是用于转发流量的实际接口。接口需要有一个掩码,以便它知道它与哪个子网相关。