如果我有一个基础设施类型的网络,为什么本地 PC 会发送一个 MAC 的 ARP 请求?路由器是否已经知道 MAC 地址,因为它至少使用第 2 层?
这样做是为了加快速度,没有 MAC 查找吗?
如果我有一个基础设施类型的网络,为什么本地 PC 会发送一个 MAC 的 ARP 请求?路由器是否已经知道 MAC 地址,因为它至少使用第 2 层?
这样做是为了加快速度,没有 MAC 查找吗?
帧直接从本地 LAN 上的主机传送到主机,它们不通过路由器。甚至路由器在向主机发送帧时也需要使用 ARP 从 IP 地址解析 MAC 地址。
具有目标主机 IP 地址的源主机(包括路由器)必须以某种方式将 IP 地址解析为 LAN 上的 MAC 地址。IPv4 为此使用 ARP。它首先查看它的 ARP 表,如果它没有找到 IP 地址的条目,它将发送一个 ARP 请求。它需要 MAC 地址才能为 LAN 构建帧。
当客户端刚刚启动并由 DHCP 配置时,它知道自己的 IP 地址、网络掩码和默认网关的 IP 地址(以及其他选项,如 DNS 服务器)。
为了真正将 IP 数据包传递到网关,数据包需要封装在一个以太网帧中,该帧寻址到网关的 MAC 地址——这需要由 IPv4 上的 ARP 学习。
当然,数据包也可以发送到其他本地目的地(DNS 服务器、文件服务器、目录服务器,...)。所有这些 IP 地址也需要被 ARP “翻译”。
我假设您所说的“路由器”实际上是家庭/小型企业网关设备。这些设备通常是几个逻辑设备的组合,旨在提供“盒中网络”。
客户不知道也不关心所有这些功能都在一个盒子里。实现这些功能的硬件可能会或可能不会关心它们是否在同一个盒子中,特别是以太网交换机功能往往在专用硬件中完成,而 IP 路由和 wifi 桥接通常在嵌入式 CPU 上的软件中完成。
客户端只知道 DHCP 服务器提供给它的详细信息,通常是 IP 地址、子网掩码、默认网关和 DNS 服务器。
客户端根据 IP 地址、子网掩码和默认网关填写其路由表。默认路由是根据默认网关设置创建的,并且在线路由是根据 IP 地址和子网掩码创建的。
因此,如果 IP 在本地子网中,则将其视为 on-link,并且使用 arp 查找目标的 MAC 地址。否则 arp 用于查找默认网关的 MAC 地址。
难道有些思科盒子不具备这两种功能吗?
是的,思科制造了大量的设备。
如果我有一个旧的 3750
3750 是所谓的“第 3 层交换机”,它具有以太网交换功能、快速但相对基本的 IP 路由功能和 DHCP 服务器功能。但是据我所知,它没有 NAT 或有状态的防火墙支持。因此,除非您对每台机器都有公共 IP,并且准备好让所有机器对 Internet 开放,否则您不能真正将其用作 Internet 网关。
并打开 ip routing,这对网络上的客户端有什么改变吗?
取决于客户端的配置方式。如果您希望交换机在内部网络之间进行路由,那么您需要告诉内部网络上的 DHCP 服务器将交换机的 IP 作为默认网关分发给客户端。
您还需要在交换机上设置默认路由以指向您的 Internet 网关,并且(除非您的 Internet 网关在所有网络上都有接口)在您的 Internet 网关上设置一条路由以将流量带回交换机。