Изучаем сеть: ARP и поиск соседей в IPv6
• Чтобы передать Ethernet-кадр, компьютер должен знать MAC-адрес следующего устройства, однако обычно приложение знает только IP-адрес получателя. В IPv4 эту проблему решает протокол ARP.
• ARP (Address Resolution Protocol) сопоставляет IPv4-адрес устройства с его MAC-адресом внутри локальной сети.
• Если компьютеру нужен MAC-адрес устройства
192.168.1.50, он отправляет широковещательный запрос примерно следующего содержания:"Кто имеет 192.168.1.50? Сообщите 192.168.1.10"
• Запрос получают все устройства в данном широковещательном домене, но отвечает только владелец нужного адреса, после чего полученное соответствие сохраняется в ARP-таблице на некоторое время (на этом кстати основана атака APR Spoofing).
• Если получатель находится в другой сети, компьютер ищет не его MAC-адрес, а MAC-адрес шлюза, которому будет передан кадр.
• В IPv6 протокол ARP не используется, вместо него работает NDP (Neighbor Discovery Protocol), являющийся частью ICMPv6. Он не только определяет канальные адреса соседей, но и помогает находить маршрутизаторы, проверять доступность устройств и обнаруживать повторяющиеся IPv6-адреса.
• В отличие от широковещательных ARP-запросов, NDP активно использует multicast, что позволяет не отправлять запрос каждому устройству сети.
• Посмотреть таблицу соседей в Linux можно командой:
ip neigh show• ARP и NDP связывают сетевой и канальный уровни, позволяя превратить IP-пакет в кадр, который действительно можно передать по локальной сети. Удачи!
#ИзучаемСеть
• Поддержать автора монеткой: @v_meshke
