【问题标题】:If a host doesn't know which net the destination is in, how will package be sent如果主机不知道目的地在哪个网络,包将如何发送
【发布时间】:2013-08-14 12:23:19
【问题描述】:

假设主机A要向10.3.3.3发送一个包,10.3.3.3是主机B与A在同一子网中。但是A认为B在另一个网络中,A会尝试使用arp来获取mac B的地址?

A 会设置 MAC 为路由的 MAC 并直接将包发送到路由器吗?路由器收到包裹怎么办,直接发给B?

相反,如果 A 认为 B 在同一个网络中,而实际上 B 不在,那么 A 最终会找到 B 吗? A 可能会发送一个 arp,但没有人会响应。 A会尝试将包裹发送到路由器吗?

【问题讨论】:

  • 为什么A会认为B不在另一个子网中?

标签: networking router arp


【解决方案1】:

路由完全基于目标地址和路由表(取决于您的子网配置)。

让我们假设,

主机 A 是 10.3.4.4,配置了网络掩码 255.255.255.0 和路由器 10.3.4.1

主机 B 是 10.3.3.3,配置了网络掩码 255.255.255.0。

在这种情况下,主机 A 的路由表看起来像,

Dest       Gateway   Mask
0.0.0.0    10.3.4.1  0.0.0.0
10.3.4.0   0.0.0.0   255.255.255.0

从底部开始,主机 A 将尝试查找要使用的路由。如果主机 A 尝试联系 10.3.4.x,它将匹配第一个路由,而不是使用网关,它将发送 ARP 请求“谁拥有 10.3.4.x?”在子网广播地址(10.3.4.255)上。

如果主机 A 尝试联系主机 B,它不会匹配第一条路由规则,并且会默认将数据包发送到网关(本例中为 10.3.4.1)。

所以不,如果没有配置主机 B 在同一个子网中,A 不会尝试使用 ARP 来获取主机 B 的 MAC。如果路由器配置了路由规则以在子网之间路由,它将传递数据包,否则它将被丢弃。

相反,如果 A 认为 B 在同一个网络中,而实际上 B 不在, A最终会找到B吗? A 可能会发送一个 arp,但没有人会响应。 A会尝试将包裹发送到路由器吗?

没有。 ARP 请求将被发送到子网广播地址。如果 B 不在该子网上并且忽略 ARP 请求,A 不会将数据包发送到路由器,因为它发送数据包的位置仅基于目标 IP 地址,不会更改基于 if 的路由位置数据包已送达。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多