-1

Я знаю, что, если хост назначения находится в другой сети, возвращаемый MAC-адрес - это MAC-адрес маршрутизатора, а не спроектированного хоста. Интересно теперь, как это работает. Если мое предположение верно, что когда отправитель отправляет широковещательную рассылку ARP, маршрутизатор проверяет, находится ли хост назначения в локальной сети, и если это так, пересылает широковещательное сообщение на хосты локальной сети, а если нет (хост назначения находится за пределами локальной сети), маршрутизатор. отвечает своим собственным MAC, не передавая сообщение в локальную сеть, избегая ненужного сетевого трафика?

2 ответа2

2

Нет, это не работает, как вы описываете. Представьте, что локальные сети Ethernet разделены на сегменты, где каждый хост в сегменте может общаться друг с другом в сегменте. (Так изначально работал Ethernet, прежде чем все переходили на двухточечные соединения с коммутаторами). Итак, один сегмент выглядит так:

          <--- 192.168.3.0/24  --->
   ---------------------------------------------------    
      |                |             |            |
    Router          Host 1        Host 2       Host 3
    192.168.3.254   192.168.3.1  192.168.3.2  192.168.3.3
      |
... ----

Маска сети описывает допустимый диапазон IP-адресов в этом сегменте, в данном случае от 192.168.3.0 до 192.168.3.255.

Теперь давайте посмотрим на Host 1. Его сетевой адаптер будет иметь адрес 192.168.3.1/24 , поэтому он может отличать IP-адреса в локальной сети от других адресов. У него также будет запись о маршрутизации, которая просто говорит: «используйте 192.168.3.254 в качестве шлюза для каждого другого IP».

Поэтому, когда он отправляет пакет с каким-то IP-адресом, он будет знать, какой "локальный" IP-адрес в локальной сети использовать, либо непосредственно одному из локальных хостов, либо маршрутизатору с адресом шлюза.

Затем он ищет этот IP в локальном кэше ARP. Если IP-адрес отсутствует в кэше, независимо от того, является ли он IP-адресом маршрутизатора или другим IP-адресом хоста, и отправляет широковещательную рассылку Ethernet по локальной сети с содержимым "привет, у меня есть MAC-адрес 00:11:22:33:44:55, я ищу MAC-адрес IP 192.168.3.x ". И поле (маршрутизатор или хост) с IP-адресом 192.168.3.x отвечает "привет 00:11:22:33:44:55, у меня есть MAC-адрес 66:77:88:99:AA:BB, и я владелец IP-адреса 192.168.3.x ".

Это все, что происходит.

0

ARP не отправляется маршрутизатору, а ARP отправляется всей сети. Маршрутизатор или любой хост может ответить.

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

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

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