запрос arp в другую подсеть, как?

мне интересно, есть ли у меня компьютер в подсети а с IP-адресом 192.168.123.1, и компьютер с IP-адресом 192.168.124.1 в другой подсети.

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

мой вопрос теперь: как будет выглядеть этот запрос ARP, у меня есть два возможных метода, которые я могу подумать of:

  1. компьютер A, видит, что IP-адрес компьютера B находится вне его собственной подсети. Это решает передать пакет к его шлюзу по умолчанию (маршрутизатор) и передает запрос ARP с IP-адресом маршрутизатора. Далее: маршрутизатор отвечает с его mac-адресом, и кадр передается маршрутизатору, который будет заботиться о кадре.

  2. компьютер A, является "глупым" и отправляет запрос ARP с IP-адресом B. маршрутизатор достаточно умен и видит что IP-адрес в это routeingtable. И отвечает своим MAC-адресом. Затем компьютер a отправляет кадр на маршрутизатор, думая, что это компьютер B. маршрутизатор отправляет пакет на компьютер B.

недостаток, который я вижу со вторым подходом, заключается в том, что при серфинге в google он будет делать запрос arp с IP-адресом Google. Маршрутизатор ответит своим, так как он знает, как добраться до Google. В следующий раз, когда вы перейдете на другой веб-сайт, вы нужно сделать то же самое снова и отправить запрос arp с IP этого сайта. Это приведет к много ARP запросов (по одному на каждый сайт). И кэш arp станет очень большим.

Я действительно не знаю ответа. Я нашел два видео на YouTube -этот и этот - каждый говорит мне разные вещи:

Я надеюсь, что кто-то может помочь мне.

10
задан JakeGould
18.11.2022 18:53 Количество просмотров материала 2881
Распечатать страницу

2 ответа

это "метод". ARP запросы на адреса вне подсети не будут отправляться вообще. Единственный запрос ARP будет для шлюза IP-адрес.

если вы просто настроить 192.168.123.1/24 для компьютера А и не делать ничего другого, он будет иметь таблицу маршрутизации, как это:

  • 192.168.123.0/24 к устройству eth0
  • 0.0.0.0/0 шлюз 192.168.123.254 устройство eth0

в такой таблице маршрутизации первая запись объявляет, что 192.168.123.0/24 является локальным-доступен через eth0 без шлюза - так пытается связаться с 192.168.123.42 действительно отправить запрос ARP для 192.168.123.42.

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

(вы можете проверить это, просто взглянув на кэш ARP;ip neigh или arp -a в зависимости от операционной системы, или с помощью инструмента захвата пакетов типа tcpdump или Wireshark.)

в большинстве операционных систем, вы можете, конечно, добавить маршруты явно говорят ОС, что некоторые подсети являются локальными (например,ip route add 192.168.124.0/24 dev eth0).

8
отвечен grawity 2022-11-20 02:41

и протокол разрешения адресов, и протокол обнаружения соседей (IPv6) используются только в том случае, если не совпадает никакой другой маршрут, кроме маршрута интерфейса. Если существует соответствующий маршрут, будь то по умолчанию или явный, с указанным шлюзом свяжутся. Разрешение адреса шлюза все еще использует ARP/NDP, конечно.

1
отвечен Daniel B 2022-11-20 04:58

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх