В основном ARP-трансляции происходят внутри локальной сети, запрашивая MAC-адрес другого хоста для определенного IP-адреса.

Если хост находится в другой сети, откуда исходный компьютер знает MAC-адрес другого хоста? Кроме того, если исходный компьютер хочет отправить пакет другому хосту после широковещательной передачи ARP, если он узнает, что для этого IP-адреса MAC-адрес отсутствует в его локальной сети, как он запрашивает MAC-адрес другого хоста?

3 ответа3

1

Если A пытается найти MAC-адрес IP-адреса B через ARP и терпит неудачу, B не находится в своей подсети. Затем необходим маршрутизатор, поскольку функция маршрутизатора заключается в пересылке трафика между подсетями.

Типичная ситуация в жилой или простой офисной настройке состоит в том, что A передает трафик на шлюз по умолчанию, который будет IP-адресом маршрутизатора в этой подсети. Шлюз по умолчанию будет назначен A ранее по DHCP.

Но, поскольку A знает, в какой подсети он находится (так как он знает свой собственный IP-адрес и маску подсети), ему обычно не требуется выполнять поиск ARP, если он не пытается достичь другого хоста в той же подсети. И передача трафика на маршрутизатор, если вы пытаетесь достичь чего-то в подсети, в которой вы находитесь, не принесет пользы. Таким образом, если поиск ARP исходного хоста завершится неудачно для хоста назначения в той же подсети, хост источника будет считать, что хост назначения не существует. И он даже не будет пытаться выполнять поиск ARP на хостах в разных подсетях, он просто перенаправит их на маршрутизатор.

Тем не менее, есть ProxyARP.

1

... если хост находится в другой сети, откуда исходный компьютер знает MAC-адрес другого хоста?

Кто сказал, что у другого хоста даже есть MAC-адрес? MAC-адреса - это вещи Ethernet , а не интернет. Хост не должен ничего знать о хостах в других сетях, кроме их IP-адресов. Адресация окончательного пакета Ethernet к конечному устройству является обязанностью любого устройства, которое помещает этот пакет Ethernet в провод, который, конечно, не является этим хостом (поскольку он даже не находится в этой сети).

А также, если исходный компьютер хочет отправить пакет другому хосту после широковещательной передачи ARP, если он узнает, что для этого IP-адреса MAC-адрес отсутствует в его локальной сети, как он запрашивает MAC-адрес другого хоста?

Это не имеет смысла. MAC-адрес явно находится в локальной сети, поскольку этот MAC-адрес только что ответил на широковещательную рассылку ARP. Как это может поставить пакет Ethernet в локальной сети , если он не в локальной сети?

Запросы ARP и MAC-адреса являются строго локальным сетевым протоколом, используемым среди устройств, которые должны помещать локальные пакеты в сеть друг для друга. Типичный хост использует этот протокол, чтобы знать, как адресовать пакеты своему шлюзу по умолчанию и другим хостам в локальной сети, и это единственные устройства, для которых он должен передавать пакеты по проводам. Маршрутизатор, очевидно, должен был бы знать, как разместить пакеты в сети для других сетей.

0

Если хост находится в другой сети, источник не будет знать MAC-адрес хоста. Для связи источник отправит пакет на шлюз по умолчанию для передачи.

Это делается путем отправки пакета с MAC-адресом шлюза, который находится в его локальной сети, и IP-адресом хоста назначения. Шлюз будет решать, как маршрутизировать пакет и повторно отправлять его, сохраняя IP-адрес, но переключая MAC-адрес на MAC следующего перехода по сети. Этот процесс повторяется до тех пор, пока пакет не прибудет в пункт назначения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .