IPv6- это весело часть 2

Введение: Добрый день или вечер, или даже ночь дорогие хабрчани. В данной статье продолжим изучать особенности протокола IPv6 и его отличия от IPv4. В данной статье будет минимальное количество теории, а максимальное количество настройки. Начнем с настройки DHCPV6 и рассмотрим особенности работы этого протокола на основе протокола IPv6 также посмотрим на то как настраиваются протокола динамической маршрутизации на основе IPv6. Оборудования для настройки выберем Cisco (в третей части Juniper). Также хотелось поблагодарить всех пользователей которые комментируют, задают вопросы. Задавая некоторые не удобные вопросы вы заставляете меня лезть снова в книжки, что-то повторять, что-то лучше осваивать и отвечать на ваши вопросы. Также каждый из вас может повлиять на выпуск следующей части. Не беспокойтесь задавать вопросы если, что-то не ясно.«Предыдущая статья здесьПлан1 Настройка протокола DHCPV62 Настройка статических маршрутов3 Настройка протоколов динамической маршрутизации (RIPng, EIGRP, OSPF, IS-IS, BGP)4 Настройка ACL (Расширенные именованные листы)5 VRRP v3,6 Настройка IPv6 ICMP ограничение по скорости7 Dual IPv4 and IPv6 Protocol Stacks

По просьбам трудящихся, прежде всего хотелось выразить свое мнение относительно IPv6 и подвести некий итог написанного в предыдущей главе. Разберу я его по пунктам1 В IPv6 нету Broadcast, ARP.Broadcast частично заменили Multicast адреса и адреса Link Local (читайте предыдущую статью). ARP протокол заменен протоколом NDP2 В IPv6 нету технологии NAT которая есть в IPv4. Смело спорьте с тем кто скажет обратное. Экономия адресов в IPv6 не используется, адресов хватит на всех. Уровень безопасности который обеспечивает NAT в технологии IPv4 заменен адресами Unique Local (читайте предыдущую статью), но нельзя забывать, что безопасность должны обеспечивать межсетевые экраны — это их функция. Название Nat64 которое можете встретить в литературе про IPv6, идет речь о совместном использовании технологии IPv6, Ipv4 (читайте предыдущую статью)3) По моим ощущениям осталось 3–4 года для полного перехода на IPv6. По моим представлением переход будет параллелен.4) Благодаря Link Local адресам сетевые устройства могут общаться в локальной сети и только в пределах ее.5) Появилась фитча которая называется: «проверка уникальности IPv6 адреса». Используется в DHCPV6 полный процесс будет описан чуть ниже. Суть ее в том, что после назначения ip адреса устройству он посылает icmp запрос, destination выбирает данный ему адрес если приходит ответ то его адрес не уникален и нужно получать новый IPv6 адрес. 6) Появились адреса anycast (читать статью), В сети могут существовать несколько хостов с абсолютно идентичными IPv6 адресами. Вариант использования я выявил одно, в случае когда находятся три балансировщика около сервера. Им дается один и тот же адрес который называется anycast. Принцип работы балансировщика я пояснять не буду так как это не тема статьи.7) Вендоры такие как Cisco или Juniper полностью готовы к переходу на IPv6, дело остается за операторами связи и ИТ кампаниями.

Ошибки свойственны человеку, но для нечеловеческих ляпов нужен компьютер. (Paul Ehrlich)

DHCPV6

SLAAC — это способ, который позволяет устройству получить свой префикс, длину префикса и адрес шлюза по умолчанию от маршрутизатора IPv6 без помощи DHCPv6-сервера. При использовании SLAAC для получения необходимой информации устройства полагаются на сообщения «Объявления маршрутизатора ICMPv6».IPv6-маршрутизаторы периодически отправляют сообщения «Объявления маршрутизатора ICMPv6» всем устройствам в сети под управлением IPv6. По умолчанию маршрутизаторы Cisco отправляют такие сообщения каждые 200 секунд на адрес групповой передачи всем IPv6-узлам. IPv6-устройству, находящемуся в сети, не нужно ждать этих периодических сообщений. Устройство может отправить сообщение «Запрос маршрутизатора ICMPv6», который использует адрес групповой передачи всем IPv6-узлам. Когда маршрутизатор IPv6 получает такое сообщение, он сразу же отправляет в ответ объявление маршрутизатора.IPv6-маршрутизация не включена по умолчанию. Чтобы маршрутизатор работал как IPv6-маршрутизатор, необходимо использовать команду глобальной конфигурации ipv6 unicast-routing.Сообщение «Объявления маршрутизатора ICMPv6» содержит префикс, длину префикса и другие сведения IPv6-устройства. Кроме того, такое сообщение указывает IPv6-устройству, как ему получить информацию по адресации. сообщение «Объявления маршрутизатора» может выглядеть в одном из следующих 3 вариантов.• Вариант 1: только SLAAC. Устройство должно использовать префикс, длину префикса и шлюз по умолчанию, которые содержатся в сообщении «Объявления маршрутизатора». Другая информация недоступна с DHCPv6-сервера.• Вариант 2: SLAAC и DHCPv6. Устройство должно использовать префикс, длину префикса и шлюз по умолчанию, которые содержатся в сообщении «Объявления маршрутизатора». На DHCPv6-сервере доступна и другая информация, например адрес DNS-сервера. Устройство получит эту дополнительную информацию в процессе поисков и запросов к DHCPv6-серверу. Этот процесс называется «DHCPv6 без запоминания состояний», поскольку DHCPv6-серверы не выделяют и не отслеживают какие-либо назначения IPv6-адресов, а предоставляют дополнительную информацию, например об адресе DNS-сервера.• Вариант 3: только DHCPv6. Устройство не должно использовать информацию из сообщения «Объявления маршрутизатора» для пополнения своей информации об адресации. Вместо этого устройство будет использовать обычные процессы поисков и запросов к DHCPv6-серверам для получения всей своей информации об адресации. Такая информация включает в себя индивидуальный адрес IPv6, длину префикса, адрес шлюза по умолчанию и адреса DNS-серверов. В этом случае DHCPv6-сервер работает как DHCP-сервер, который фиксирует данные аналогично DHCP-серверу для IPv4. DHCPv6-сервер выделяет и отслеживает IPv6-адреса, чтобы не назначать один и тот же IPv6-адрес на нескольких устройствах.943d763a009443169cd4fe4390c9ab39.png

Компьютер позволяет нам совершать ошибки гораздо быстрее, чем любые другие изобретения человечества: за исключением, пожалуй, текилы и оружия. (Mitch Radcliffe)

Общие сведения о SLAACАвтоматическая настройка адреса без отслеживания состояния (SLAAC) — это способ получения устройством глобального IPv6-адреса одноадресной рассылки без использования DHCPv6-сервера. В основе SLAAC лежит протокол ICMPv6. Протокол ICMPv6 аналогичен ICMPv4, но при этом он имеет дополнительные функциональные возможности и демонстрирует большую устойчивость к ошибкам. SLAAC использует ICMPv6-сообщения запроса маршрутизатора и объявления маршрутизатора, чтобы предоставить информацию об адресации и другую информацию о конфигурации, обычно предоставляемую DHCP-сервером.• Сообщение запроса маршрутизатора (RS) — если клиент настроен на получение информации об адресации автоматически с использованием SLAAC, он посылает на маршрутизатор сообщение RS. Сообщение RS отправляется на IPv6-адрес многоадресной рассылки FF02::2, который поддерживают все маршрутизаторы.• Сообщение объявления маршрутизатора (RA) — для предоставления информации об адресации маршрутизатор отправляет сообщения RA клиентам, настроенным на получение IPv6-адресов автоматически. Сообщение RA содержит префикс и длину префикса локального сегмента. Эта информация используется клиентом для создания собственного глобального индивидуального IPv6-адреса. Маршрутизатор передаёт сообщение RA периодически или в ответ на сообщение RS. По умолчанию маршрутизаторы Cisco отправляют сообщения RA каждые 200 секунд. Сообщения RA всегда отправляются на общий для всех узлов IPv6-адрес многоадресной рассылки FF02::1.Как видно из термина, SLAAC не отслеживает состояние адреса. Служба без отслеживания состояния говорит о том, что ни один из серверов не поддерживает информацию о сетевом адресе. В отличие от сервера DHCP, сервер SLAAC не знает, какие IPv6-адреса используются, а какие доступны

Принцип работы SLACC + DHCPV6 без отслеживание состояния

6334c88667974762b2b58c66bff36f23.jpg

Для отправки маршрутизатором сообщений RA, на нём предварительно необходимо настроить работу IPv6-маршрутизации. Для активации IPv6-маршрутизации необходимо выполнить следующие команды: Router (config)# ipv6 unicast-routing1. В топологии, PC1 настроен на автоматическое получение настроек IPv6-адресации. С момента загрузки PC1 не получил сообщений RA, поэтому он отправляет сообщение RS на адрес многоадресной рассылки, который поддерживают все маршрутизаторы, чтобы проинформировать локальный IPv6-маршрутизатор о необходимости получения сообщения RA.2. R1 получает сообщение RS и отправляет в ответ сообщение RA. В сообщение RA включены префикс и длина префикса сети. Сообщение RA отправлено на общий для всех узлов IPv6-адрес многоадресной рассылки FF02::1 с адресом канала маршрутизатора типа link-local в качестве IPv6-адреса источника.3. PC1 получает сообщение RA, содержащее префикс и длину префикса для локальной сети. PC1 будет использовать эту информацию для создания собственного глобального индивидуального IPv6-адреса. PC1 имеет теперь 64-разрядный префикс сети, но требует 64-битный идентификатор интерфейса (IID) для создания глобального индивидуального адреса.Существует для способа создания PC1 собственного уникального IID:

EUI-64, генерация случайным образом.

Поскольку SLAAC — это процесс без отслеживания состояния, перед использованием PC1 этого вновь созданного IPv6-адреса, необходимо проверить его уникальность., PC1 посылает по протоколу ICMPv6 сообщение запроса поиска соседа с собственным адресом в качестве IPv6-адреса назначения. Если другие устройства не отвечают сообщением запроса поиска соседа, значит, адрес является уникальным и может быть использован PC1. Если сообщение запроса поиска соседей получено PC1, значит, адрес не уникален и операционная система должна установить новый идентификатор интерфейса для использования.Этот процесс является частью процесса обнаружения соседних устройств ICMPv6 и известен как обнаружение адресов-дубликатов (DAD).Настроен ли клиент на автоматическое получение информации об IPv6-адресации с использованием SLAAC, DHCPv6 или сочетанием обоих вариантов, зависит от настроек, содержащихся в сообщении RA. ICMPv6 сообщения RA содержат два флага, обозначающих, какой из вариантов должен быть использован клиентом. Предыдущая статья здесьЭтими флагами являются флаг управляемой конфигурации адресов (M) и флаг другой конфигурации (O).

80931120d8ec47c89df3da497be2a99f.jpg

Утверждать, что Java хорош тем, что работает на всех ОС, — то же самое, что утверждать, что анальный секс хорош тем, что подходит к любому полу. (Alanna)

Функции SLAAC, DHCPV6+SLAAC, DHCPV6Рассмотрим все три способа, изменение флагов. 1)SLAAC- Этот вариант указывает клиенту использовать только информацию из сообщения RA. Сюда входит информация о префиксе, длине префикса, DNS-сервере, MTU и информация о шлюзе по умолчанию. Далее клиент не получает никакой информации от сервера DHCPv6. Глобальный индивидуальный IPv6-адрес создаётся путём объединения префикса, полученного в сообщении RA, и идентификатора интерфейса, полученного с помощью EUI-64 или сгенерированного случайным образом.Сообщения RA настроены на отдельном интерфейсе маршрутизатора. Для повторной активации режима SLAAC на интерфейсе, на котором мог быть установлен другой вариант работы, флаги M и O необходимо сбросить на их первоначальные значения, равные 0. Для этого применяются следующие команды режима конфигурации интерфейса: Router (config-if)# no ipv6 nd managed-config-flagRouter (config-if)# no ipv6 nd other-config-flag

8d55f915441d4eb68b4feb9002c06bf6.jpg

2) DHCPV6+SLAAC- Для DHCPv6 без отслеживания состояния значение флага O установлено равным 1, а значение флага M остается со значением по умолчанию, равным 0. Значение флага O, равное 1, используется для информирования клиента о том, что на DHCPv6-сервере без отслеживания состояния доступна дополнительная информация о конфигурации.Для того чтобы изменить сообщение RA, отправляемое на интерфейс маршрутизатора для указания использования DHCPv6 без отслеживания состояния, используйте следующие команды: Router (config-if)# ipv6 nd other-config-flag

cd3e791344744382b3d5399e46ac9321.jpg»

3) Протокол DHCPv6 с отслеживанием состояния (только DHCPv6)Флаг M указывает, используется ли DHCPv6 с отслеживанием состояния. Флаг O не используется. Для того чтобы изменить значение флага М с 0 на 1 для объявления DHCPv6 с отслеживанием состояния, применяются следующие команды: Router (config-if)# ipv6 nd managed-config-flag

b6794c37047d4318b844683a320a9729.jpg

Создание языка программирования — это как прогулка по парку. По парку Юрского периода. (Larry Wall)

Процессы DHCPV6В случае если в сообщении RA указан вариант работы DHCPv6 (с отслеживанием состояния или без), инициируется работа DHCPv6. Сообщения протокола DHCPv6 посылаются через протокол UDP. Сообщения DHCPv6 от сервера к клиенту используют UDP порт назначения 546. Клиент отправляет сообщения на сервер DHCPv6 через UDP порт назначения 547.Клиенту — теперь DHCPv6-клиенту — необходимо определить местоположение сервера DHCPv6. клиент передаёт сообщение DHCPv6 SOLICIT на зарезервированный IPv6-адрес многоадресной рассылки FF02::1:2, используемый всеми DHCPv6 серверами. Этот адрес многоадресной рассылки действует в рамках канала link-local, это означает, что маршрутизаторы не направляют сообщения в другие сети.Один или несколько серверов DHCPv6 отвечают DHCPv6-сообщением ADVERTISE. Сообщение ADVERTISE сообщает DHCPv6-клиенту, что сервер доступен для предоставления службы DHCPv6.Клиент отвечает серверу DHCPv6 сообщением REQUEST или INFORMATION-REQUEST, в зависимости от того, является ли DHCPv6-сервер сервером с отслеживанием состояния или без него.• DHCPv6-клиент без отслеживания состояния — клиент отправляет DHCPv6 сообщение INFORMATION-REQUEST серверу DHCPv6, запрашивая только параметры конфигурации, например, адрес DNS-сервера. Клиент создаёт собственный IPv6-адрес при помощи префикса из сообщения RA и самогенерируемого идентификатора интерфейса.• DHCPv6-клиент с отслеживанием состояния — клиент отправляет DHCPv6 сообщение REQUEST серверу для получения IPv6-адреса и всех остальных параметров конфигурации от сервера.

02b9a5012485408d9b1b10e2a9ddc4a5.jpg»

Программы — это как секс: гораздо лучше, когда бесплатно. (Linus Torvalds)

Теперь оставим теорию и выведем только настройку1) Настройка маршрутизатора в качестве DHCPV6 сервера без отслеживания состоянияАктивация маршрутизации IPv6Router (config)# ipv6 unicast-routingНастройка DHCPV6 пулаRouter (config)#ipv6 dhcp pool (pool-name)Настройка параметров пулаRouter (config-dhcpv6)# dns-server (указываем адрес dns-server-address)Router (config-dhcpv6)#domain-name (указываем имя domain)Настройка интерфейсаRouter (config-)# interface (type number)Router (config-if)# ipv6 dhcp server (pool name)Router (config-if)# ipv6 nd other-config-flag2) В качестве клиентаRouter (config)#interface (interface-number)Router (config-if)# ipv6 enableRouter (config-if)# ipv6 address autoconfig (Команда ipv6 address autoconfigвключает автоматическую настройку IPv6-адресации с использованием SLAAC)

Проверка: show ipv6 dhcp pool, show ipv6 interface (type-number)3) Сервер DHCPV6 с отслеживанием состоянияАктивация маршрутизации IPv6Router (config)#ipv6 unicast-routingНастройка DHCPV6-пулаRouter (config)#ipv6 dhcp pool (pool-name)Настройка параметров пулаRouter (config-dhcpv6)# address (prefix/length (lifetime (valid-lifetime preferred-lifetime)infinite))Router (config-dhcpv6)# dns-server (dns-server-address)Router (config-dhcpv6)# domain-name (domain-name)Настройка интерфейсаRouter (config)#interface (interface-number)Router (config-if)# ipv6 dhcp server (pool-name)Router (config-if)# ipv6 nd managed-config-flagНастройка маршрутизатора в качестве DHCPV6-клиента с отслеживанием состоянияRouter (config)#interface (interface-number)

Router (config-if)# ipv6 enableRouter (config-if)# ipv6 address dhcp4) Настройка маршрутизатора в качестве агента рентрансляцииRouter (config)#interface (interface-number)Router (config-if)# ipv6 dhcp relay destination (address)

Если отладка — процесс удаления ошибок, то программирование должно быть процессом их внесения. (Edsger W. Dijkstra)

2) Настройка статических маршрутов в IPv6Router (config)# ipv6 route ipv6-prefix/prefix-length { ipv6-address | exit-intf }1) Настройка рекурсивного статического маршрутаRouter (config)#ipv6 route 2001: DB8: ACAD:2::/64 2001: DB8: ACAD:4::2Router (config)#ipv6 route 2001: DB8: ACAD:5::/64 2001: DB8: ACAD:4::2Router (config)#ipv6 route 2001: DB8: ACAD:3::/64 2001: DB8: ACAD:4::2Название сети — next-hop.В данном примере разные сети next-hop один и тот же.2) Настройка напрямую подключнного статического маршрутаRouter (config)#ipv6 route 2001: DB8: ACAD:3::/64 s0/0/03)Настройка полностью заданного статического маршрута IPv6Router (config)#ipv6 route 2001: DB8: ACAD:3::/64 s0/0/0 fe80::2 (суть его в том, что если используете адрес типа Lin-Local то надо обязательно указать тип выходного интерфейса)4)настройка маршрутов по умолчаниюipv6 route::/0 { ipv6-address | exit-intf }5)Настройка суммарного IPv6-адресаRouter (config)#ipv6 route 2001: DB8: ACAD:1::/64 2001: DB8: ACAD:4::2Router (config)#no ipv6 route 2001: DB8: ACAD:2::/64 2001: DB8: ACAD:4::2Router (config)#no ipv6 route 2001: DB8: ACAD:3::/64 2001: DB8: ACAD:4::2Router (config)#no ipv6 route 2001: DB8: ACAD:4::/64 2001: DB8: ACAD:4::2В суммеRouter (config)#ipv6 route 2001: DB8: ACAD:4::/61 2001: DB8: ACAD:4::2

Если бы McDonalds разрабатывал ПО, один из сотни биг-маков был бы отравлен, а администрация отвечала бы: «В качестве извинения примите купон на два бесплатных биг-мака». (Mark Minasi)

3) Настройка динамической маршрутизации в IPv6RipngRouter (config)#interface (number)Router (config-if)# ipv6 rip RIP-AS enableRouter (config-if)# exitпередать маршрут по умолчаниюRouter (config)# pv6 rip имя_домена default-information originate

EIGRPRouter (config)# ipv6 router eigrp autonomous-systemRouter (config-rtr)# eigrp router-id 1.0.0.0 — задание номера процессаRouter (config-rtr)# no shutdownRouter (config)# interface (type/number) (заходим в интерфейс)Router (config-if)# ipv6 eigrp (AS)

OSPF3Router (config)# ipv6 router ospf 10 –активировать режим OSPFRouter (config-rtr)# router-id 1.1.1.1 (задаем router-id)Router (config-rtr)# auto-cost reference-bandwith 1000 (задаем cost)Router (config)# interface (type/number) (заходим в интерфейс)Router (config-if)# ipv6 ospf 10 area (number) (назначаем интерфейс в протокол ospf, номер процесса, номерarea)Router#clear ipv6 ospf process

IS-ISRouter (config)# isis area-tag (например router isis area2)Router (config-rtr)# net network-entity-title (например 49.0001.0000.0000.000с. 00Router (config)# interface Ethernet 0/0/1Router (config)# ipv6 address {ipv6-address/prefix-length | prefix-name sub-bits/prefix-length}Router (config-if)# ipv6 router isis area-name (ipv6 router isis area2)

BGPRouter (config)# router bgp 65000Router (config-rtr)# no bgp default ipv4-unicast (выключаем ipv4 unicast адреса для BGP)Router (config-rtr)#bgp router-id (сконфигурим 32-битный роутер id, будьте аккуратный эта команда сбросит все активный BGP peering сессии)Router (config-rtr)# neighbor 2001: DB8:0: CC00::1 remote as 64600 — добавим ipv6 адрес соседа и автономную систему.Router (config-rtr)# address-family ipv6 [unicast |multicast]Router (config-rtr-af)#neighbor 2001: DB8: CC00::1 activate — активируем соседа для обмена префиксами ipv6

4) ACLRouter (config)#ipv6 access-list NO-BYX-SIDET-VKONTAKTERouter (config-ipv6-acl)#deny ipv6 2001: db8: café:30::/64 anyRouter (config-ipv6-acl)#permit ipv6 any anyвсе это может выглядеть следующем образом-Router (config)#ipv6 access-list access-list-nameRouter (config-ipv6-acl)#deny | permit protocol (source-ipv6-prefix/prefix-length |any|host source-ipv6-addres) (operator (port-number)) (destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address) (operator (port-number))Router (config)# interface (type/number) (заходим в интерфейс)Router (config-if)# ipv6 traffic-filter access-list-name { in |out }

5) VRRP, HSPRRouter (config)# fhrp version vrrp v3 — включаем, когда используется 3 версия, вторая не не активна.Router (config)# interface type numberRouter (config-if)# vrrp (group-id address-family (ipv6)Router (config-if)# vrrp 3 address-family ipv6Router (config-if-vrrp)# address 2001: abc: café:11::/64 primary (или secondary)Router (config-if-vrrp)# description group 3Router (config-if-vrrp)# match-address (добавляем второй адрес в объявление)Router (config-if-vrrp)# preempt delay minimum 30 — включаем преимущество низкой приоритетности мастера с опцией задержки (опциально)HSPRSwitch (config)# interface type numberSwitch (config-if)#no switchportSwitch (config)#standby 1 ipv6 autoconfigRouter (config)# interface type numberRouter (config-if)#standby version (2)Router (config)# interface type numberRouter (config-if)#standby (group-number) ipv6 (link-local |address)Router (config-if)#standby [group-number]preempt [delay {minimumseconds | reload seconds |sync seconds}]Router (config-if)#standby [group-number]priority priority

6) Настройка IPv6 ICMP ограничение по скоростиRouter (config)#ipv6 icmp error- interval (bucketsize) (interval в милл сек, диапозон 0 2147483647, bucketsize — опциально, диапозон 1 — 200

7) Dual IPv4 and IPv6 Protocol Stacks

Switch (config)# sdm prefer dual-ipv4-and-ipv6 defaultSwitch (config)# ip routingSwitch (config)# ipv6 unicast-routingSwitch (config)# interface gigabitethernet2/0/1Switch (config-if)# no switchportSwitch (config-if)# ip address 192.168.99.1 244.244.244.0Switch (config-if)# ipv6 address 2001:0DB8: c18:1::/64 eui 64Switch (config-if)# end

Учитывая печальное состояние современных компьютерных программ, разработку ПО до сих пор можно считать искусством, а не научной дисциплиной. (Bill Clinton)

Вот и подошла вторая часть к концу, а кто слушал молодец. Из написанной статьи я понял одно, для настройки BGP, IS-IS нужно писать отдельные статьи. В целом настройка ipv6 не сильно отличается от ipv4, местами получается даже проще. В третьей части я опишу, настройку протоколов на основе оборудования Juniper networks. Она по сути будет довольно короткой, поэтому оставляйте свои комментарии под статьей. Повторюсь ваша критика, вопросы или пожелания могут повлиять на написании новой статьи. Всем удачи.

Список используемой литературы1 CCNA RS2 CCNP RS3 IP Version 6 in Junos (EDU-JUN-IPV6)4 XGU.RU5 Cisco.com

© Habrahabr.ru