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

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

Ќовое в IPv6-это автоконфигураци€, котора€ €вл€етс€ почти "мини-DHCP" - сервером, и некоторые протоколы были удалены или изменены. “очно так же, как IPv4, хосты, настроенные на IPv6, должны узнать MAC-адрес других устройств, но мы больше не используем ARP, он был заменен протоколом под названием NDP (Neighbour Discovery Protocol).


“еоретические основы

ѕомимо изучени€ MAC-адресов, NDP используетс€ дл€ решени€ р€да задач:

  • Router Discovery (обнаружение маршрутизаторов): NDP используетс€ дл€ изучени€ всех доступных маршрутизаторов IPv6 в подсети.
  • ќбнаружение MAC-адресов: после того, как хост выполнил проверку DAD и использует IPv6 адрес он должен будет обнаружить MAC адреса хостов с которыми он хочет общатьс€.
  • DAD (обнаружение дубликатов адресов): каждый хост IPv6 будет ждать, чтобы использовать свой адрес, если только он не знает, что ни одно другое устройство не использует тот же адрес. Ётот процесс называетс€ DAD, и NDP делает это за нас.
  • SLAAC: NDP используетс€, чтобы узнать, какой адрес и длину префикса должен использовать хост.

ћы рассмотрим все задачи, чтобы увидеть, как они работают. Ќачнем с обнаружени€ маршрутизатора.  огда хост настроен на IPv6, он автоматически обнаруживает маршрутизаторы в подсети.

’ост IPv6 может использовать NDP дл€ обнаружени€ всех маршрутизаторов в подсети, которые могут использоватьс€ в качестве шлюза по умолчанию. ¬ принципе, хост отправл€ет сообщение с запросом, есть ли там какие-либо маршрутизаторы, и маршрутизаторы ответ€т. »спользуютс€ два сообщени€:

  • RS (Router Solicitation), который отправл€етс€ на "все маршрутизаторы ipv6" FF02::2 multicast адрес.
  • RA (Router Advertisement) отправл€етс€ маршрутизатором и включает в себ€ его link-local IPv6 адрес.
Router Solicitation Router Advertisement

 огда хост отправл€ет запрос маршрутизатору, маршрутизатор будет отвечать на одноадресный адрес хоста. ћаршрутизаторы также будут периодически отправл€ть рекламные объ€влени€ маршрутизаторов дл€ всех заинтересованных сторон, они будут использовать дл€ этого адрес FF02:: 1 "все узлы".

Ѕольшинство маршрутизаторов также будут иметь global unicast адрес, настроенный на интерфейсе, в этом случае хосты будут узнавать не только о link-local адресе, но и о префиксе, который используетс€ в подсети.

префикс, который используетс€ в подсети

Ётот префикс можно использовать дл€ SLAAC. NPD также используетс€ в качестве замены ARP. ƒл€ этого он использует два вида сообщений:

  • NS (Neighbor Solicitation)
  • NA (Neighbor Advertisement)

«апрос соседа работает аналогично запросу ARP, он запрашивает определенный хост дл€ своего MAC-адреса, и объ€вление соседа похоже на ответ ARP, поскольку оно используетс€ дл€ отправки MAC-адреса. ¬ основном это выгл€дит так:

«апрос соседа NDP

¬с€кий раз, когда хост посылает запрос соседу, он сначала провер€ет свой кэш, чтобы узнать, знает ли он уже MAC-адрес устройства, которое он ищет. ≈сли его там нет, он пошлет соседу запрос. Ёти соседние запрашивающие сообщени€ используют solicited-node multicast адрес запрашиваемого узла.

ѕомимо обнаружени€ MAC-адресов, сообщени€ NS и NA также используютс€ дл€ обнаружени€ дубликатов IPv6-адресов. ѕрежде чем устройство IPv6 использует одноадресный адрес, оно выполнит DAD (обнаружение дубликатов адресов), чтобы проверить, не использует ли кто-то другой тот же IPv6-адрес. ≈сли адрес используетс€, хост не будет его использовать. ¬от как это выгл€дит:

NS (Neighbor Solicitation NA (Neighbor Advertisement)

Host1 был настроен с IPv6-адресом 2001:1:1:1::2, который уже используетс€ Host2. ќн будет посылать запрос соседства, но поскольку host2 имеет тот же IPv6-адрес, он ответит объ€влением соседа. Host1 теперь знает, что это дубликат IPv6-адреса. Ёта проверка выполн€етс€ дл€ всех одноадресных адресов, включа€ link-local адреса. Ёто происходит, когда вы настраиваете их и каждый раз, когда интерфейс находитс€ в состо€нии "up".

ѕоследний NPD, который мы рассмотрим, - это SLAAC, котора€ позвол€ет хостам автоматически настраивать свой IPv6-адрес. ƒл€ IPv4 мы всегда использовали DHCP дл€ автоматического назначени€ IP-адреса, шлюза по умолчанию и DNS-сервера нашим хостам, и эта опци€ все еще доступна дл€ IPv6 (мы рассмотрим ее ниже).

DHCP прекрасна€ "вещь", но недостатком €вл€етс€ то, что вам нужно установить DHCP-сервер, настроить пул с диапазонами адресов, шлюзами по умолчанию и DNS-серверами.

 огда мы используем SLAAC, наши хосты не получают IPv6-адрес от центрального сервера, но он узнает префикс, используемый в подсети, а затем создает свой собственный идентификатор интерфейса дл€ создани€ уникального IPv6-адреса. ¬от как работает SLAAC:

  1. ’ост сначала узнает о префиксе с помощью сообщений NDS RS RA.
  2. ’ост принимает префикс и создает идентификатор интерфейса, чтобы создать уникальный IPv6-адрес.
  3. ’ост выполн€ет DAD, чтобы убедитьс€, что IPv6-адрес не используетс€ никем другим.

ћаршрутизаторы Cisco будут использовать EUI-64 дл€ создани€ идентификатора интерфейса, но некоторые операционные системы будут использовать случайное значение. Ѕлагодар€ SLAAC хост будет иметь IPv6-адрес и шлюз, но один элемент все еще отсутствует...DNS-сервер. SLAAC не может помочь нам с поиском DNS-сервера, поэтому дл€ этого шага нам все еще требуетс€ DHCP.

DHCP дл€ IPv6 называетс€ DHCPv6 и поставл€етс€ в двух формах:

  • Stateful
  • Stateless

ћы рассмотрим DHCPv6 чуть позже, но дл€ SLAAC нам нужно пон€ть, что такое stateless DHCPv6. ќбычно DHCP-сервер отслеживает IP-адреса, которые были арендованы клиентами, другими словами, он должен сохран€ть "состо€ние" того, какие IP-адреса были арендованы и когда они истекают.

—ервер stateless DHCPv6 не отслеживает ничего дл€ клиентов. ќн имеет простую конфигурацию с IPv6-адресами нескольких DNS-серверов.  огда хост IPv6 запрашивает у сервера DHCPv6 IPv6-адрес DNS-сервера, он выдает этот адрес, и все.

ѕоэтому, когда вы используете SLAAC, вам все еще нужен stateless DHCPv6, чтобы узнать о DNS-серверах.

“еперь вы узнали все задачи, которые NPD выполн€ет дл€ нас:

  • Router Discovery
  • MAC Address Discovery
  • Duplicate Address Detection
  • Stateless Address Autoconfiguration

Ќастройка на Cisco

ƒавайте посмотрим на NPD на некоторых маршрутизаторах, чтобы увидеть, как он работает в реальности. Ѕудет использоватьс€ следующа€ топологи€ дл€ демонстрации:

топологи€ дл€ демонстраци

Ѕудем использовать OFF1 в качестве хоста, который будет автоматически настраиватьс€ с помощью SLAAC и OFF2 в качестве маршрутизатора. 2001:2:3:4//64 это префикс, который мы будем использовать. ƒавайте сначала настроим OFF2:

OFF2(config)#ipv6 unicast-routing

ѕрежде чем OFF2 будет действовать как маршрутизатор, нам нужно убедитьс€, что включена одноадресна€ маршрутизаци€ IPv6. “еперь давайте настроим IPv6 адрес на интерфейсе:

OFF2(config)#interface fa0/0
OFF2(config-if)#no shutdown
OFF2(config-if)#ipv6 address 2001:2:3:4::1/64

ѕеред настройкой OFF1 мы включим отладку NPD на обоих маршрутизаторах, чтобы могли видеть различные сообщени€:

OFF1#debug ipv6 nd
ICMP Neighbor Discovery events debugging is on
OFF2#debug ipv6 nd
ICMP Neighbor Discovery events debugging is on

 оманда debug ipv6 nd очень полезна, так как она будет показывать различные сообщени€, которые использует NPD.

ƒавайте теперь настроим OFF1:

OFF1(config)#interface fa0/0
OFF1(config-if)#no shutdown
OFF1(config-if)#ipv6 address autoconfig

OFF1 будет настроен дл€ использовани€ SLAAC с командой ipv6 address autoconfig. ѕри включенной отладке вы увидите на своей консоли следующие элементы:

OFF1#
ICMPv6-ND: Sending NS for FE80::C000:6FF:FE7C:0 on FastEthernet0/0
ICMPv6-ND: DAD: FE80::C000:6FF:FE7C:0 is unique.

ќн посылает NS дл€ своего собственного IPv6-адреса, и когда никто не отвечает, он понимает, что это единственный хост, использующий этот адрес. ¬ы также можете видеть, что OFF1 отправл€ет объ€вление соседства в сторону OFF2:

OFF1#
ICMPv6-ND: Sending NA for FE80::C000:6FF:FE7C:0 on FastEthernet0/0
OFF2#
ICMPv6-ND: Received NA for FE80::C000:6FF:FE7C:0 on FastEthernet0/0 from FE80::C000:6FF:FE7C:0

ћы можем просмотреть базу данных с информацией L2 и L3 следующим образом:

OFF2#show ipv6 neighbors
IPv6 Address Age Link-layer Addr State
Interface
FE80::C000:6FF:FE7C:0 21 c200.067c.0000 STALE Fa0/0

show ipv6 neighbors покажет вам IPv6-адреса и MAC-адреса. OFF1 также отправит запрос маршрутизатора, а OFF2 в ответ отправит объ€вление маршрутизатора:

OFF1#
ICMPv6-ND: Sending RS on FastEthernet0/0
OFF2#
ICMPv6-ND: Received RS on FastEthernet0/0 from FE80::C000:6FF:FE7C:0
ICMPv6-ND: Sending solicited RA on FastEthernet0/0
ICMPv6-ND: Sending RA from FE80::C001:6FF:FE7C:0 to FF02::1 on FastEthernet0/0
ICMPv6-ND: MTU = 1500
ICMPv6-ND: prefix = 2001:2:3:4::/64 onlink autoconfig
ICMPv6-ND: 2592000/604800 (valid/preferred)
OFF1#
ICMPv6-ND: Received RA from FE80::C001:6FF:FE7C:0 on FastEthernet0/0
ICMPv6-ND: Selected new default router FE80::C001:6FF:FE7C:0 on FastEthernet0/0

≈сли вы хотите увидеть все маршрутизаторы, о которых знает ваш хост, вы можете использовать следующую команду:

OFF1#show ipv6 routers
Router FE80::C001:6FF:FE7C:0 on FastEthernet0/0, last update 0 min
Hops 64, Lifetime 1800 sec, AddrFlag=0, OtherFlag=0, MTU=1500
HomeAgentFlag=0, Preference=Medium
Reachable time 0 msec, Retransmit time 0 msec
Prefix 2001:2:3:4::/64 onlink autoconfig
Valid lifetime 2592000, preferred lifetime 604800

ѕоскольку OFF1 настроен дл€ SLAAC он будет использовать префикс в объ€влении маршрутизатора дл€ настройки самого себ€:

OFF1#
ICMPv6-ND: Prefix Information change for 2001:2:3:4::/64, 0x0 - 0xE0
ICMPv6-ND: Adding prefix 2001:2:3:4::/64 to FastEthernet0/0
ICMPv6-ND: Sending NS for 2001:2:3:4:C000:6FF:FE7C:0 on FastEthernet0/0
ICMPv6-ND: Autoconfiguring 2001:2:3:4:C000:6FF:FE7C:0 on FastEthernet0/0
ICMPv6-ND: DAD: 2001:2:3:4:C000:6FF:FE7C:0 is unique.

ќн будет использовать префикс и автоматически настраивать IPv6-адрес. ѕрежде чем он использует адрес, он будет использовать DAD, чтобы убедитьс€, что адрес уникален. ƒавайте посмотрим IPv6-адрес:

OFF1#show ipv6 int brief
FastEthernet0/0 [up/up]
FE80::C000:6FF:FE7C:0
2001:2:3:4:C000:6FF:FE7C:0

 ак вы видите, OFF1 использовал 2001:2:3:4::/64 префикс дл€ настройки самого себ€.

Ёто вс€ информаци€ о NPD дл€ вас сейчас, давайте продолжим изучение материала обратив подробное внимание на DHCPv6! —татусный DHCPv6 работает аналогично DHCP дл€ IPv4. ћы все еще используем его дл€ предоставлени€ адресов, шлюзов по умолчанию, DNS-серверов и некоторых других опций клиентам, но одним из ключевых отличий €вл€ютс€ сообщени€, которые мы теперь используем.

DHCP дл€ IPv4 использует сообщени€ Discover, Offer, Request и ACK. DHCPv6 использует Solicit, Advertise, Request и Reply message.

¬рем€ получени€ сообщени€, похожие на сообщени€ обнаружени€. ’ост будет использовать это сообщение, когда он ищет IPv6-адрес сервера DHCPv6. —ообщение advertise используетс€ дл€ предоставлени€ хосту IPv6-адреса, шлюза по умолчанию и DNS-сервера. —ообщение запроса используетс€ хостом, чтобы спросить, можно ли использовать эту информацию, и ACK отправл€етс€ сервером дл€ подтверждени€ этого.

јналогично, как и дл€ DHCP IPv4, когда ваш DHCP-сервер не находитс€ в той же подсети, вам потребуетс€ DHCP relay дл€ пересылки сообщений DHCP на центральный DHCP-сервер.