ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопасность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

9 минут чтени€

ѕеред тем как начать: это цикл статей. ћы рекомендуем до этого материала ознакомитьс€ со статьей про Interlayer Discovery.

’от€ IPv6 €вл€етс€ основной темой этих лекций, в некоторых случа€х IPv4 представл€ет собой полезный пример решени€; Address Resolution Protocol IPv4 (ARP) €вл€етс€ одним из таких случаев. ARP - это очень простой протокол, используемый дл€ решени€ проблемы межуровневого обнаружени€, не полага€сь на сервер любого типа. –исунок ниже будет использован дл€ объ€снени€ работы ARP.

ѕример работы протокола ARP

ѕредположим, A хочет отправить пакет C. «на€ IPv4-адрес C,

203.0.113.12 недостаточно, чтобы A правильно сформировал пакет и поместил его на канал св€зи по направлению к C. „тобы правильно построить пакет, A также должен знать:

  • Ќаходитс€ ли C на том же канале св€зи, что и A
  • MAC или физический адрес C

Ѕез этих двух частей информации A не знает, как инкапсулировать пакет в канал св€зи, поэтому C фактически получит пакет, а B проигнорирует его.  ак можно найти эту информацию? Ќа первый вопрос, находитс€ ли C на том же канале в€зи, что и A, можно ответить, рассмотрев IP-адрес локального интерфейса, IP-адрес назначени€ и маску подсети.

ARP решает вторую проблему, сопоставл€€ IP-адрес назначени€ с MAC-адресом назначени€, с помощью следующего процесса:

  • ’ост A отправл€ет широковещательный пакет каждому устройству в сети, содержащему адрес IPv4, но не MAC-адрес. Ёто запрос ARP; это запрос A на MAC-адрес, соответствующий 203.0.113.12.
  • B и D получают этот пакет, но не отвечают, поскольку ни один из их локальных интерфейсов не имеет адреса 203.0.113.12.
  • ’ост C получает этот пакет и отвечает на запрос, снова использу€ unicast пакет. Ётот ответ ARP содержит как IPv4-адрес, так и соответствующий MAC-адрес, предоставл€€ A информацию, необходимую дл€ создани€ пакетов в направлении C.

 огда A получает этот ответ, он вставл€ет сопоставление между 203.0.113.12 и MAC-адресом, содержащимс€ в ответе, в локальном кэше ARP. Ёта информаци€ будет хранитьс€ до истечени€ времени ожидани€; правила тайм-аута записи кэша ARP различаютс€ в зависимости от реализации и часто могут быть настроены вручную. ѕродолжительность кэшировани€ записи ARP - это баланс между слишком частым повторением одной и той же информации в сети в случае, когда сопоставление IPv4-адресов с MAC-адресами не мен€етс€ очень часто, и отслеживанием любых изменений в расположении устройство в случае, когда конкретный адрес IPv4 может перемещатьс€ между хостами.

 огда A получает этот ответ, он вставл€ет сопоставление между 203.0.113.12 и MAC-адресом, содержащимс€ в ответе, в локальный кэш ARP. Ёта информаци€ будет хранитьс€ до тех пор, пока не истечет врем€ ожидани€; правила дл€ тайм-аута записи кэша ARP варьируютс€ в зависимости от реализации и часто могут быть настроены вручную. ѕродолжительность кэшировани€ записи ARP - это баланс между тем, чтобы не повтор€ть одну и ту же информацию слишком часто в сети, в случае, когда сопоставление IPv4-MAC-адресов мен€етс€ не очень часто, и идти в ногу с любыми изменени€ми в местоположении устройства, в случае, когда конкретный IPv4-адрес может перемещатьс€ между хостами.

Ћюбое устройство, получающее ответ ARP, может прин€ть пакет и кэшировать содержащуюс€ в нем информацию. Ќапример, B, получив ответ ARP от C, может вставить сопоставление между 203.0.113.12 и MAC-адресом C в свой кэш ARP. ‘актически, это свойство ARP часто используетс€ дл€ ускорени€ обнаружени€ устройств, когда они подключены к сети. ¬ спецификации ARP нет ничего, что требовало бы от хоста ожидани€ запроса ARP дл€ отправки ответа ARP.  огда устройство подключаетс€ к сети, оно может просто отправить ответ ARP с правильной информацией о сопоставлении, чтобы ускорить процесс начального подключени€ к другим узлам на том же проводе; это называетс€ gratuitous ARP. Gratuitous ARP также полезны дл€ Duplicate.

Gratuitous ARP также полезны дл€ обнаружени€ дублирующихс€ адресов (Duplicate Address Detection - DAD); если хост получает ответ ARP с адресом IPv4, который он использует, он сообщит о дублированном адресе IPv4. Ќекоторые реализации также будут посылать серию gratuitous ARPs в этом случае, чтобы предотвратить использование адреса или заставить другой хост также сообщить о дублирующемс€ адресе.

„то произойдет, если хост A запросит адрес, использу€ ARP, который не находитс€ в том же сегменте, например, 198.51.100.101 на рисунке 5? ¬ этой ситуации есть две разные возможности:

  • ≈сли D настроен дл€ ответа как прокси-ARP, он может ответить на запрос ARP с MAC-адресом, подключенным к сегменту. «атем A кэширует этот ответ, отправл€€ любой трафик, предназначенный дл€ E, на MAC-адрес D, который затем может перенаправить этот трафик на E. Ќаиболее широко распространенные реализации по умолчанию не включают прокси-ARP.
  • A может отправл€ть трафик на свой шлюз по умолчанию, который представл€ет собой локально подключенный маршрутизатор, который должен знать путь к любому пункту назначени€ в сети.

IPv4 ARP - это пример протокола, который отображает interlayer идентификаторы путем включени€ обоих идентификаторов в один протокол.


ќбнаружение соседей IPv6

IPv6 замен€ет более простой протокол ARP серией сообщений Internet Control Message Protocol (ICMP) v6. ќпределены п€ть типов сообщений ICMPv6:

  • “ип 133, запрос маршрутизатора
  • “ип 134, объ€вление маршрутизатора
  • “ип 135, запрос соседа
  • “ип 136, объ€вление соседа
  • “ип 137, перенаправление

–исунок ниже используетс€ дл€ объ€снени€ работы IPv6 ND. „тобы пон€ть работу IPv6 ND, лучше всего проследить за одним хостом, поскольку он подключен к новой сети. ’ост A на рисунке ниже используетс€ в качестве примера.

ќбнаружение соседей IPv6 и маршрутизатора

    A начнет с формировани€ link local address, как описано ранее. ѕредположим, A выбирает fe80 :: AAAA в качестве link local address.

  • “еперь A использует этот link local address в качестве адреса источника и отправл€ет запрос маршрутизатору на link local multicast address (адрес многоадресной рассылки дл€ всех узлов). Ёто сообщение ICMPv6 типа 133.
  • B и D получают этот запрос маршрутизатора и отвечают объ€влением маршрутизатора, которое €вл€етс€ сообщением ICMPv6 типа 134. Ётот одноадресный пакет передаетс€ на локальный адрес канала A, используемый в качестве адреса источника, fe80 :: AAAA.
    • ќбъ€вление маршрутизатора содержит информацию о том, как вновь подключенный хост должен определ€ть информацию о своей локальной конфигурации в виде нескольких флагов.
    • ‘лаг M указывает, что хост должен запросить адрес через DHCPv6, потому что это управл€емый канал.
    • ‘лаг O указывает, что хост может получать информацию, отличную от адреса, который он должен использовать через DHCPv6. Ќапример, DNS-сервер, который хост должен использовать дл€ разрешени€ имен DNS, должен быть получен с помощью DHCPv6.
  • ≈сли установлен флаг O, а не флаг M, A должен определить свой собственный IPv6-адрес интерфейса. ƒл€ этого он определ€ет набор префиксов IPv6, используемых в этом сегменте, исследу€ поле информации о префиксе в объ€влении маршрутизатора. ќн выбирает один из этих префиксов и формирует IPv6-адрес, использу€ тот же процесс, который он использовал дл€ формировани€ link local address: он добавл€ет локальный MAC-адрес (EUI-48 или EUI-64) к указанному префиксу. Ётот процесс называетс€ SLAAC.
  • “еперь хост должен убедитьс€, что он не выбрал адрес, который использует другой хост в той же сети; он должен выполн€ть DAD. „тобы выполнить обнаружение повтор€ющегос€ адреса:
    • ’ост отправл€ет серию сообщений запроса соседей, использу€ только что сформированный IPv6-адрес и запрашива€ соответствующий MAC-адрес (физический). Ёто сообщени€ ICMPv6 типа 135, передаваемые с link local address, уже назначенного интерфейсу.
    • ≈сли хост получает объ€вление соседа или запрос соседа с использованием того же адреса IPv6, он предполагает, что локально сформированный адрес €вл€етс€ дубликатом; в этом случае он сформирует новый адрес, использу€ другой локальный MAC-адрес, и попытаетс€ снова.
    • ≈сли хост не получает ни ответа, ни запроса соседа другого хоста, использующего тот же адрес, он предполагает, что адрес уникален, и назначает вновь сформированный адрес интерфейсу.

”странение ложных срабатываний при обнаружении повтор€ющегос€ адреса

ѕроцесс DAD, описанный здесь, может привести к ложным срабатывани€м. ¬ частности, если какое-то другое устройство на канале св€зи передает исходные пакеты запроса соседа обратно к A, оно будет считать, что это от другого хоста, требующего тот же адрес, и, следовательно, объ€вит дубликат и попытаетс€ сформировать новый адрес. ≈сли устройство посто€нно повтор€ет все запросы соседей, отправленные A, A никогда не сможет сформировать адрес с помощью SLAAC.

„тобы решить эту проблему, RFC7527 описывает усовершенствованный процесс DAD. ¬ этом процессе A будет вычисл€ть одноразовый номер, или, скорее, случайно выбранную серию чисел, и включать ее в запрос соседей, используемый дл€ проверки дублировани€ адреса. Ётот одноразовый номер включен через расширени€ Secure Neighbor Discovery (SEND) дл€ IPv6, описанные в RFC3971.

≈сли A получает запрос соседа с тем же значением nonce, который он использовал дл€ отправки запроса соседа воврем€ DAD, он сформирует новый одноразовый номер и попытаетс€ снова. ≈сли это произойдет во второй раз, хост будет считать, что пакеты зацикливаютс€, и проигнорирует любые дальнейшие запросы соседей с собственным одноразовым номером в них. ≈сли полученные запросы соседей имеют одноразовый номер, отличный от того, который выбрал локальный хост, хост будет предполагать, что на самом деле существует другой хост, который выбрал тот же адрес IPv6, и затем сформирует новый адрес IPv6.

 ак только у него есть адрес дл€ передачи данных, A теперь требуетс€ еще одна часть информации перед отправкой информации другому хосту в том же сегменте - MAC-адрес принимающего хоста. ≈сли A, например, хочет отправить пакет в C, он начнет с отправки multicast сообщени€ запроса соседа на C с запросом его MAC-адреса; это сообщение ICMPv6 типа 135.  огда C получает это сообщение, он ответит с правильным MAC-адресом дл€ отправки трафика дл€ запрошенного IPv6-адреса; это сообщение ICMPv6 типа 136.

¬ то врем€ как предыдущий процесс описывает объ€влени€ маршрутизатора, отправл€емые в ответ на запрос маршрутизатора, каждый маршрутизатор будет периодически отправл€ть объ€влени€ маршрутизатора на каждом подключенном интерфейсе. ќбъ€вление маршрутизатора содержит поле lifetime, указывающее, как долго действует объ€вление маршрутизатора.

ј теперь почитайте о проблемах шлюза по умолчанию. ” нас получилс€ отличным материал на эту тему.