Prefix delegation ipv6 что это

Начинаем работать с IPv6 в операционной системе FortiOS

Введение и немного теории.

Происхождение протокола IP версии 6 относится к 1998 году к RFC 2460, который описывает IPv6 как протокол-преемник для 4-ой версии. Данный переход связан с предсказуемым исчерпанием адресного пространства в IPv4. Переход от 32-х битных к 128-ми битным адресам позволил увеличить адресное пространство в IPv6 до предела 2 в 128 степени количества адресов. Однако помимо увеличения адресного пространства, в реализации IPv6 достаточно много нововведений, призванных избавить данный протокол от проблем его предшественника. К данным нововведениям можно отнести – отсутствие broadcast, SLAAC, NDP.

Prefix delegation ipv6 что это. 7397c2578bbf4accabc7c5accc8a0f6d. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-7397c2578bbf4accabc7c5accc8a0f6d. картинка Prefix delegation ipv6 что это. картинка 7397c2578bbf4accabc7c5accc8a0f6d

SLAAC или stateless auto-configuration можно использовать для автоматической конфигурации IP адресов без учета состояния в том случае, если хостам не нужен определенный IP адрес. SLAAC автоматически настраивает адреса с помощью протокола NDP и маршрутизатора. В отличии от DHCPv6, для реализации технологии SLAAC не требуются дополнительные серверы.

Протокол NDP в свою очередь приходит на замену ARP, ICMP router discovery и ICMP redirect. В IPv6 NDP отвечает за автонастройку адреса конечных точек сети, обнаружения других узлов на линии, обнаружения адреса других узлов на уровне канала связи, обнаружение конфликта адресов, поиск доступных путей и DNS-серверов, обнаружения подсетей и поддержки доступности информации о путях к другим активным соседним узлам.

А что же с DHCP? DHCP для IPv6 можно использовать в том случае, если нужно контролировать назначение IP адресов или же предоставлять настройки DNS. DHCPv6 также может предоставлять другие параметры, опрашивать узлы сети и изменять их адреса. Это stateful DHCPv6. Stateless DHCPv6 может предоставлять дополнительную информацию (например DNS) хостам, которые получили свои IPv6 адреса с помощью автоматической настройки (SLAAC) или ручной адресации.

В операционной системе FortiOS полностью поддерживается протокол IPv6 и начиная с версии FortiOS 5.4 поддерживает достаточно интересную функцию DHCP delegation, которая позволяет интерфейсу устройства получать адреса от подсетей, которые предоставляет DHCP сервер, находящийся за другим интерфейсом. Другими словами, как только сервер DHCP делегировал префиксы клиенту, интерфейс, который связан с локальной сетью (LAN), имеет адрес IPv6 с помощью блока принятого префикса и адреса, используемые в полученном префиксе, можно передавать на других клиентов в локальной сети.

Для настройки данного функционала будет воспроизведен реальный случай, когда провайдер отдает на клиента определенный IPv6 префикс.

Prefix delegation ipv6 что это. d2daf6bf7cf94237966e52a24da4e86f. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-d2daf6bf7cf94237966e52a24da4e86f. картинка Prefix delegation ipv6 что это. картинка d2daf6bf7cf94237966e52a24da4e86f

В качестве DHCPv6 сервера используется маршрутизатор Cisco, в качестве пограничного устройства, выполняющего DHCPv6 delegation – фаерволл FortiGate в виде виртуальной машины с версией операционной системы 5.4.4. Для клиентской части также используется FortiGate.

Ниже приведены выдержки из конфигурации с комментариями.

#ipv6 dhcp pool dhcpv6

Используем DHCP pool под названием dhcpv6

#prefix-delegation pool dhcpv6-pool1 lifetime 1800 600

Название pool’а, который используется для делегирования префиксов – dhcpv6-pool1

#interface Ethernet0/0
#no ip address
#ipv6 address 2010:AB8:0:1::1/64
– назначаем адрес для интерфейса e0/0
#ipv6 enable
#ipv6 dhcp server dhcpv6
– включаем DHCPv6 сервер на интерфейсе
#exit

Следующей командой определяем название пула префиксов для делегирования. Будет использован пул адресов 2001:DB8:1200::/48, из которых клиенту мы делегируем sub-префиксы /64

#ipv6 local pool dhcpv6-pool1 2001:DB8:1200::/48 64

После этого переходим к настройке пограничного FortiGate.

FortiGate-VM64-KVM # config system interface

Переходим в режим конфигурации сетевых интерфейсов

FortiGate-VM64-KVM (interface) # edit port1

Входим в режим редактирования интерфейса port1

FortiGate-VM64-KVM (port1) # config ipv6

Начинаем настраивать IPv6

FortiGate-VM64-KVM (ipv6) # set dhcp6-prefix-delegation enable

Данной командой включается функционала делегирования префиксов, полученных от провайдера, на downstream интерфейсы фаерволла.

Интерфейс в сторону провайдера настроен, переходим к настройке интерфейса локальной сети. По аналогии с настройками для port1 входим в режим конфигурации IPv6 для интерфейса port2.

#config system interface
#edit «port1»
#config ipv6
#set ip6-mode delegated
– указываем, что будет использоваться делегированный префикс
#set ip6-upstream-interface «port1» – интерфейс, за которым находится DHCPv6 сервер
#set ip6-subnet 2001:db8:1200::1/64
#set ip6-send-adv enable
#config ipv6-delegated-prefix-list
#edit 1
#set upstream-interface «port10»
#set autonomous-flag enable
#set onlink-flag enable
#set subnet 2001:db8:1200::/64
– указываем префикс делегирования
#end
#end
#end

Отдельно стоит остановится на команде Ip6-send-adv – включение или выключение данной опции указывает необходимо ли системе периодически отправлять Router Advertisements и слушать Router Solicitations. Когда данный параметр включен, адрес этого интерфейса будет добавлен в multicast группу All Routers (FF02 :: 02) и включен в Multi Listener Discovery (MLD) report. По умолчанию ip6-send-adv находится в состоянии disable. В этом случае, при включенной опции autoconf, FortiGate будет функционировать как SLAAC клиент.

Проверяем на клиенте с включенным SLAAC.

Включаем autoconf для интерфейса port1 на клиентском фаерволле согласно топологии.

ip6-client # config system interface
ip6-client (interface) # edit port1
ip6-client (port1) # config ipv6
ip6-client (ipv6) # set autoconf enable
ip6-client (ipv6) # end

Отдельной командой проверяем, что все настроено правильно и устройство получило IP адрес.

Prefix delegation ipv6 что это. ad8ed7e857c7459baa411bc4f8446a3d. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ad8ed7e857c7459baa411bc4f8446a3d. картинка Prefix delegation ipv6 что это. картинка ad8ed7e857c7459baa411bc4f8446a3d

На этом базовая настройка закончена. Дополнительно можно настроить DHCPv6 сервер на пограничном FortiGate и использовать делегированный IPv6 префикс в качестве pool’a адресов на конечных клиентах.

Настраивается это достаточно просто:

#config system dhcp6 server – переход в режим конфигурации DHCPv6 сервера
#edit 1
#set interface «port2»
– интерфейс, который будет предоставлять DHCP сервис
#set upstream-interface «port1» – интерфейс в сторону провайдера, через который мы получаем наш префикс
#set ip-mode delegated– дополнительно указываем, что настроенный DHCPv6 сервер будет использовать делегированный префикс.
#end

И под конец несколько команд для базовой сетевой диагностики в FortiOS:

# execute interface dhcp6client-renew — обновление DHCPv6 lease на указанном интерфейсе
#get router info6 routing-table database – вывод таблицы маршрутизации для IPv6
#exec ping6 & #exec ping6-options – ping для IPv6 и задание определенных параметров, таких как размер пакета, число повторов, source IP, TTL и т.д.

Источник

IPv6 (Русский)

В Arch Linux протокол IPv6 включён по умолчанию.

Статья Linux IPv6 HOWTO, хоть и давно не обновлялась, содержит подробную информацию об IPv6, от основ до более сложных тем. Если вы слабо знакомы с данным протоколом, то стоит сначала прочесть её.

Contents

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

Пинг по адресу многоадресной рассылки ff02::1 заставит все хосты в локальной сети ответить. При этом нужно указать сетевой интерфейс:

После этого список «соседей» по локальной сети можно вывести командой

Автоконфигурация узла (SLAAC)

Простейший способ получения IPv6-адреса в уже настроенной сети — автоконфигурация узла (SLAAC, Stateless address autoconfiguration). При этом адрес автоматически вычисляется на основании объявленного маршрутизатором префикса сети. Никакие дальнейшие настройки или использование специализированного ПО вроде DHCP-клиента не требуются.

Клиент

Если вы используете netctl, то нужно только добавить одну строку в файл настроек вашей проводной или беспроводной сети.

Если вы используете NetworkManager, то он автоматически включит использование IPv6-адресов, если таковые объявлены в сети.

Нужно также заметить, что для нормальной работы автоконфигурации должны быть разрешены пакеты ICMP для IPv6. Поэтому необходимо добавить разрешения для пакетов ipv6-icmp в настройки межсетевого экрана. Если вы используете брандмауэр на основе iptables, то добавьте следующее правило:

Если вы используете другой интерфейс межсетевого экрана (ufw, shorewall и т.д.), то инструкции по разрешению пакетов ipv6-icmp нужно искать в документации.

Шлюз должен также разрешать трафик ipv6-icmp во всех основных цепочках межсетевого экрана. Для брэндмауэра/iptables добавьте правила:

Privacy Extensions

Когда устройство-клиент получает адрес посредством SLAAC, его IPv6-адрес вычисляется на основании префикса сети и MAC-адреса сетевого интерфейса. Это может иметь определённые последствия с точки зрения безопасности, поскольку MAC-адрес компьютера теперь можно узнать по IPv6-адресу. Для решения этой проблемы был разработан стандарт IPv6 Privacy Extensions (RFC 4941). В соответствии с ним ядро видоизменяет исходный адрес, генерируя вместо него временный. Такой подход используется, когда необходимо скрыть настоящий адрес при подключении к удалённому серверу.

Чтобы включить Privacy Extensions, добавьте в файл /etc/sysctl.d/40-ipv6.conf следующие строки:

После перезагрузки Privacy Extensions будут включены.

dhcpcd

NetworkManager

Чтобы включить IPv6 Privacy Extensions явно, добавьте следующие строки в файл NetworkManager.conf(5) :

Примените настройки и переподключитесь ко всем активным соединениям.

Перезагрузите соединение и подключитесь к нему снова.

systemd-networkd

Тем не менее, учитываются некоторые другие опции:

connman

Добавьте следующую строку в файл службы (например, /var/lib/connman/название_службы/settings ):

Постоянный приватный адрес

Другой полезной возможностью являются описанные в RFC 7217 постоянные приватные IP-адреса (stable private addresses). Эта технология позволяет назначать интерфейсам постоянные адреса, для вычисления которых вместо MAC-адреса устройства используется специально сгенерированный ключ.

Чтобы заставить ядро сгенерировать ключ (например, для интерфейса wlan0 ), необходимо задать параметр ядра:

NetworkManager

Описанные выше настройки не работают для NetworkManager, но он использует постоянные приватные адреса по умолчанию [1],[2].

Статический адрес

Иногда использование статического адреса может быть применено в качестве одной из мер обеспечения безопасности. Например, если ваш локальный маршрутизатор использует обнаружение соседей (Neighbor Discovery) или radvd (RFC 2461), вашему интерфейсу будет автоматически присвоен адрес, который содержит часть MAC-адреса сетевого интерфейса (используя SLAAC). Это может быть не слишком хорошо для безопасности, так как позволяет без труда отслеживать систему даже если часть IPv6-адреса сменилась.

IPv6 и PPPoE

Если вы используете netctl для PPPoE, тогда вместо этого добавьте следующую строку в файл настроек netctl:

Делегирование префикса (DHCPv6-PD)

Делегирование префикса (prefix delegation) — широко распространённая технология развёртывания IPv6, используемая многими интернет-провайдерами. Представляет собой метод назначения сетевого префикса пользователю (например, локальной сети). Маршрутизатор может быть настроен на привязку разных сетевых префиксов к различным подсетям. Провайдер выдаёт префикс с помощью DHCPv6 (обычно это префикс /56 или /64 ), а dhcp-клиент назначает префикс локальной сети. В случае простого шлюза с двумя интерфейсами клиент обычно получает адрес через WAN-интерфейс (или псевдоинтерфейс вроде ppp) и на его основании присваивает IPv6-префикс интерфейсу, обращённому к локальной сети.

Клиент DHCPv6 принимает входящие соединения на UDP-порт 546. Чтобы настроить доступ к этому порту в межсетевом экране nftables, в файле /etc/nftables.conf добавьте следующее правило в цепочку input:

dhcpcd

WIDE-DHCPv6

systemd-networkd

Настройте внешний (wan) и внутренний (lan) интерфейсы. Это включит DHCPv6-PD для интерфейса с запущенным DHCPv6-клиентом. Делегированные префиксы предоставляются посредством IPv6 Router Advertisement во внутренней (локальной) сети.

Другие клиенты

dhclient также может запрашивать сетевой префикс, но для присваивания этого префикса или его части нужно использовать специальный скрипт. Пример программы: https://github.com/jaymzh/v6-gw-scripts/blob/master/dhclient-ipv6.

Отключение IPv6

Отключение функциональности

Параметр ядра ipv6.disable=1 отключает весь стек IPv6, что в большинстве случаев помогает добиться желаемого результата. О параметрах ядра см. Kernel parameters.

Также вы можете отключить присвоение адреса IPv6 конкретным сетевым интерфейсам, добавив следующие строки в файл настроек sysctl /etc/sysctl.d/40-ipv6.conf :

Необходимо перечислить здесь все сетевые интерфейсы, для которых требуется отключение IPv6, так как опция all.disable_ipv6 не будет применена к сетевым интерфейсам, которые уже включены на момент выполнения инструкций из файла настроек.

Другие программы

Отключение IPv6 в ядре не предотвращает другие программы от попытки использования версии IPv6. В большинстве случаев это не приводит к проблемам, однако, если они все-таки появляются, вам остается лишь искать в man-страницах или на просторах сети способ отключить эту функциональность.

dhcpcd

Например, dhcpcd будет продолжать пытаться запрашивать настройки сети у маршрутизаторов IPv6 (т.н. Router solicitation). Чтобы отключить это, добавьте следующие строки в файл /etc/dhcpcd.conf :

NetworkManager

Чтобы отключить IPv6 в NetworkManager, вызовите контекстное меню значка статуса сети и перейдите в Edit Connections > Wired > Network name > Edit > IPv6 Settings > Method, затем выберите Method как Ignore/Disabled.

GnuPG

Отключите IPv6 в настройка dirmngr:

systemd-timesyncd

Иногда systemd-timesyncd пытается отправлять запросы IPv6-серверу времени, даже если IPv6 отключён. Это может привести к тому, что системные часы не будут обновляться, а в журнале появятся сообщения об ошибках следующего вида:

Команда systemctl status systemd-timesyncd в пункте «Status» выведет IPv6-адрес целевого сервера:

Как видно из FS#59806, по протоколу IPv6 работают «2.»-сервера ntp.org. Чтобы запретить подключение к ним, удалите в файле /etc/systemd/timesyncd.conf записи 2.arch.pool.ntp.org и 2.pool.ntp.org из параметров NTP and FallbackNTP соответственно.

systemd-networkd

Использование IPv4 вместо IPv6

Prefix delegation ipv6 что это. Tango inaccurate. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-Tango inaccurate. картинка Prefix delegation ipv6 что это. картинка Tango inaccurateThe factual accuracy of this article or section is disputed.Prefix delegation ipv6 что это. Tango inaccurate. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-Tango inaccurate. картинка Prefix delegation ipv6 что это. картинка Tango inaccurate

Источник

IPv6 DHCPv6 Prefix Delegation

The prefix delegation feature lets a DHCP server assign prefixes chosen from a global pool to DHCP clients. The DHCP client can then configure an IPv6 address on its LAN interface using the prefix it received. It will then send router advertisements including the prefix, allowing other devices to use autoconfiguration to configure their own IPv6 addresses.

This feature can be useful in an ISP environment. Here’s an example:

Prefix delegation ipv6 что это. ipv6 prefix delegation. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 prefix delegation. картинка Prefix delegation ipv6 что это. картинка ipv6 prefix delegation

In the picture above we have an ISP that has the global prefix 2001:DB8:1100::/40 that it can assign to customers. With the prefix delegation feature and DHCPv6, it automatically assigns prefixes to its customers:

Each customer router configures an IPv6 address based on the prefix they received from the ISP using the general prefix feature and advertises the specific prefix (subnet) to host devices in router advertisements.

Host devices are then able to configure their own IPv6 address using the prefix in the router advertisement and EUI-64.

Configuration

Let’s take a look at the configuration. Here is the topology we’ll use:

Prefix delegation ipv6 что это. ipv6 prefix delegation physical topology. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 prefix delegation physical topology. картинка Prefix delegation ipv6 что это. картинка ipv6 prefix delegation physical topology

Let’s start with the ISP router. We need to enable IPv6 unicast routing:

The global prefix is configured with the ipv6 local pool command:

This tells the router that we have a pool called GLOBAL_POOL and that we can use the entire 2001:DB8:1100::/40 prefix. Each DHCP client, however, will receive a /48 prefix out of this pool.

Now we need to configure the DHCP server:

I refer to the pool we just created and add some extra information like the google DNS servers and a domain name. On the interface that connects to the customers, I configure an IPv6 address that does not fall within the range of the global prefix (if you try, you get an error) and the DHCP server needs to be activated on the interface:

That completes the ISP router configuration.

Customer Routers

Let’s configure the customer routers.

Make sure you enable IPv6 unicast routing:

The interface that connects to the ISP router will use DHCP client:

The prefix that we receive will be stored as ISP_PREFIX. We will use this on the interface that connects to our hosts to configure an IPv6 address:

In the IPv6 address command, I refer to our ISP_PREFIX so that the router starts the address with that prefix. I’ll use a /64 prefix on this interface.

We can do the exact same thing on this router as we did on C1:

The only difference is that I use a different specific prefix (subnet) on this router.

Hosts

On each of our hosts, we use autoconfiguration:

This completes our configuration.

Verification

Let’s verify our work!

Let’s take a closer look at our DHCP pool:

The output above tells us that we have two clients and that the ISP router uses the GLOBAL_POOL for the prefix. Let’s take a closer look at those two DHCP clients:

The output above is interesting as it tells us which prefixes the router assigned to the DHCP clients.

Customers

Let’s take a look at those DHCP clients, the customer routers.

Let’s take a look at the DHCP information from C1’s perspective:

Above we see that we received our prefix from the ISP, including some other details like the DNS servers and domain name. You can also see that this router named the prefix “ISP_PREFIX”.

Here we can see the IPv6 address that C1 configured on its GigabitEthernet 0/1 interface:

We can also verify that the router has stored the prefix it received from the ISP:

Which is used to configure the GigabitEthernet 0/2 interface:

That’s all we need to check on C1.

Let’s verify that C2 has received a prefix from the ISP:

Источник

На главную

Введение

Протокол IPv6 является наследником повсеместно используемого сегодня протокола IP четвёртой версии, IPv4, и естественно, наследует большую часть логики работы этого протокола. Так, например, заголовки пакетов в IPv4 и IPv6 очень похожи, используется та же логика пересылки пакетов – маршрутизация на основе адреса получателя, контроль времени нахождения пакета в сети с помощью TTL и так далее. Однако, есть и существенные отличия: кроме изменения длины самого IP-адреса, произошёл отказ от использования широковещания в любой форме, включая направленное (Broadcast, Directed broadcast). Вместо него теперь используются групповые рассылки (multicast). Также исчез ARP-протокол, функции которого возложены на ICMP, что заставит отделы информационной безопасности внимательнее относиться к данному протоколу, так как простое его запрещение уже стало невозможным. Мы не станем описывать все изменения, произошедшие с протоколом, так как читатель сможет с лёгкостью найти их на большинстве IT-ресурсов. Вместо этого покажем практические примеры настройки устройств на базе Cisco IOS для работы с IPv6.

Многие начинающие сетевые специалисты задаются вопросом: «Нужно ли сейчас начинать изучать IPv6?» На наш взгляд, сегодня уже нельзя подходить к IPv6 как к отдельной главе или технологии, вместо этого все изучаемые техники и методики следует отрабатывать сразу на обеих версиях протокола IP. Так, например, при изучении работы протокола динамической маршрутизации EIGRP стоит проводить настройку тестовых сетей в лаборатории как для IPv4, так и для IPv6 одновременно. Перейдём от слов к делу!

Адресация в IPv6

Prefix delegation ipv6 что это. ipv6 1. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 1. картинка Prefix delegation ipv6 что это. картинка ipv6 1

Адреса в IPv6 записываются в шестнадцатеричной форме, каждая группа из четырёх цифр отделяется двоеточием. Например, 2001:1111:2222:3333:4444:5555:6666:7777. Маска указывается через слеш, то есть, например, /64. В адресе протокола IPv6 могут встречаться длинные последовательности нулей, поэтому предусмотрена сокращённая запись адреса. Во-первых, могут не записываться начальные нули каждой группы цифр, то есть вместо адреса 2001:0001:0002:0003:0004:0005:0006:7000 можно записать 2001:1:2:3:4:5:6:7000. Конечные нули при этом не удаляются. В случае, когда группа цифр в адресе (или несколько групп подряд) содержит только нули, она может быть заменена на двойное двоеточие. Например, вместо адреса 2001:1:0:0:0:0:0:1 может использоваться сокращённая запись вида 2001:1::1. Стоит отметить, что сократить адрес таким образом можно только один раз. Ниже приводятся правильные и неправильные формы записи IPv6 адресов.

Правильная запись.

Ошибочная форма.

Забавные сокращения.

Однако не все адреса протокола IPv6 могут быть назначены узлам в глобальной сети. Существует несколько зарезервированных диапазонов и типов адресов. Адрес IPv6 может относиться к одному из трёх следующих типов.

Адреса Unicast очень похожи на аналогичные адреса протокола IPv4, они могут назначаться интерфейсам сетевых устройств, серверам и хостам конечных пользователей. Групповые или Multicast адреса предназначены для доставки пакетов сразу нескольким получателям, входящим в группу. При использовании Anycast адресов данные будут получены ближайшим узлом, которому назначен такой адрес. Стоит обратить особое внимание на то, что в списке поддерживаемых протоколом IPv6 адресов отсутствуют широковещательные адреса. Даже среди Unicast адресов существует более мелкое дробление на типы.

Адреса, относящиеся к группе Unique local, описаны в RFC 4193 и по своему назначению очень похожи на приватные адреса протокола IPv4, описанные в RFC 1918. Адреса группы Link local предназначены для передачи информации между устройствами, подключёнными к одной L2-сети. Большинство адресов из диапазона Global unicast могут быть назначены интерфейсам конкретных сетевых узлов. Список зарезервированных адресов представлен ниже.

Базовая настройка интерфейсов

Включение маршрутизации IPv6 производится с помощью команды ipv6 unicast-routing. В принципе, поддержка маршрутизатором протокола IPv6 будет производиться и без введения указанной команды, однако без неё устройство будет выполнять функции хоста для IPv6. Многие команды, к которым вы привыкли в IPv4, присутствуют также и в IPv6, однако для них вместо опции ip нужно будет указывать слово ipv6.

Настройка адреса на интерфейсе возможна несколькими способами. При одном лишь включении поддержки IPv6 на интерфейсе автоматически назначается link-local адрес.

Вычисление части адреса link-local производится с помощью алгоритма EUI-64 на основе MAC-адреса интерфейса. Для этого в середину 48 байтного МАС-адреса автоматически дописывается два байта, которые в шестнадцатеричной записи имеют вид FFFE, а также производится инвертирование седьмого бита первого байта MAC-адреса. На рисунках ниже схематично показана работа обсуждаемого алгоритма.

Prefix delegation ipv6 что это. ipv6 2. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 2. картинка Prefix delegation ipv6 что это. картинка ipv6 2

Prefix delegation ipv6 что это. ipv6 3. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 3. картинка Prefix delegation ipv6 что это. картинка ipv6 3

Сравните указанный выше link-local адрес с физическим адресом интерфейса Gi0/0 маршрутизатора (несущественная часть вывода команды sho int Gi0/0 удалена).

EUI-64 часть IPv6 адреса: C800:3FFF:FED0:A008.

Назначение адреса на интерфейс вручную производится с помощью команды ipv6 address, например, ipv6 address 2001:db8::1/64. Возможно лишь указывать адрес сегмента сети, оставшаяся часть будет назначаться автоматически с использованием преобразованного с помощью EUI-64 физического адреса интерфейса, для чего используйте команду с ключевым словом eui-64.

Обмен сообщениями внутри одного L2-сегмента только с помощью адресов link-local возможен и в некоторых случаях используется, однако в большинстве ситуаций интерфейсу должен быть назначен обычный маршрутизируемый IPv6-адрес. Так, например, соседство по протоколам OSPF или EIGRP устанавливается с использованием link-local адресов. Автоматический поиск соседа и другие служебные протоколы также работают по link-local адресам.

Естественно, сохранилась и возможность автоматического назначения адреса в IPv6 с помощью протокола DHCP. Стоит, правда, отметить, что в IPv6 существует два различных типа DHCP: stateless и stateful, настройка которых производится с помощью команд ipv6 address autoconfig и ipv6 address dhcp соответственно.

Настройка «серверной» части практически не отличается от таковой для IPv4. Сначала требуется создать DHCP пул, после чего привязать его к интерфейсу. Привязка к интерфейсу осуществляется в явном виде с помощью интерфейсной команды ipv6 dhcp server name, где в качестве name выступает имя ранее созданного пула DHCP. Здесь же стоит отметить, что DHCPv6 не позволяет исключать определённые IPv6 адреса из диапазона так, как это делалось для IPv4 с помощью команды ip dhcp excluded-address, равно как и осуществлять ручную привязку адреса к клиенту.

Команда ipv6 nd managed-config-flag указывает клиенту на необходимость использования DHCPv6 для получения адреса. Также можно уведомить клиента о необходимости получения дополнительных параметров (адрес DNS-сервера или имя домена) с помощью команды ipv6 nd other-config-flag.

Просмотреть информацию о настроенных пулах DHCPv6 можно с помощью команды show ipv6 dhcp pool.

Список текущих клиентов отображается в выводе команды show ipv6 dhcp binding.

Вывод списка интерфейсов, на которых задействован протокол DHCPv6 производится с помощью команды show ipv6 dhcp interface.

Кроме stateful DHCPv6 оборудование Cisco поддерживает также версию DHCPv6 Lite, отличающуюся отсутствием команды address prefix внутри пула и интерфейсной опции managed-config-flag. В этом случае адрес интерфейса узла вычисляется на основе сообщения Router Advertisement.

Также как и для IPv4 L3-коммутаторы и маршрутизаторы Cisco могут выполнять функции DHCP ретранслятора, для чего используется команда ipv6 dhcp relay destination ipv6-address, где ipv6-address – адрес сервера DHCPv6.

В DHCPv6 появилась очень интересная возможность – делегирование префиксов. Данная функция, на наш взгляд, будет наиболее востребована операторами связи, так как позволяет делегировать клиенту большой префикс для распределения внутри его корпоративной сети. Рассмотрим работу функции Prefix Delegation на примере. На схеме ниже маршрутизатор Delegating_router представляет оконечное оборудование оператора, CE_router – граничное оборудование клиента. Маршрутизаторы Client_net1 и Client_net2 эмулируют устройства, подключённые в разные IPv6-сети клиента. Стоит особо подчеркнуть, что Client_net1 и Client_net2 находятся в разных подсетях, между коммутатором SW1 и маршрутизатором CE_router поднят транк, в котором существуют две виртуальные сети №2 (для Client_net1) и №3 (для Client_net2). На маршрутизаторе CE_router для каждой виртуальной сети настраивается свой подынтерфейс.

Prefix delegation ipv6 что это. ipv6 6. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 6. картинка Prefix delegation ipv6 что это. картинка ipv6 6

Prefix delegation ipv6 что это. ipv6 7. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 7. картинка Prefix delegation ipv6 что это. картинка ipv6 7

На маршрутизаторе Delegating_router создадим локальный пул, из которого будет производиться раздача префиксов клиентам.

Пул c_prefix определён префиксом 2001:DB8::/40, из которого клиентам будут раздаваться меньшие префиксы с маской /48.

Вслед за локальным пулом необходимо создать пул DHCPv6, который привязать к интерфейсу Gi1/0.

Настройка делегирующего маршрутизатора на этом завершается. На граничном маршрутизаторе клиента делегируемый префикс необходимо принять с помощью интерфейсной команды ipv6 dhcp client pd prefix, где prefix – имя принимаемого префикса, это имя будет использоваться в дальнейшем.

Адреса клиентских подсетей будут назначаться из полученного префикса. Так как данному клиенту был выделен префикс 2001:DB8::/48, то адреса конечных сетей будут, например, такими 2001:DB8:0:1::/64 и 2001:DB8:0:2::/64. Произведём соответствующую настройку подынтерфейсов маршрутизатора CE_router. Как видно из приведённого ниже листинга, адреса не указываются в явном виде, вместо этого используется полученный ранее от провайдера префикс.

Единственное, что осталось сделать – получить адреса на клиентских узлах.

Ещё одной возможностью, связанной с использованием префиксов, является опция глобального определения префикса для маршрутизатора. Такая возможность позволяет упростить процедуру назначения адресов на интерфейсы маршрутизатора или L3-коммутатора. Допустим, что организации выделена сеть 2001:db8:1::/48. Это означает, что все адреса будут начинаться с «2001:db8:1». Начать нужно с определения префикса.

После того, как префикс сконфигурирован, можно переходить к его непосредственному назначению на интерфейс.

Стоит обратить особое внимание на синтаксис, который используется при назначении адреса на интерфейс. Левая часть адреса заполняется битами из основного префикса (количество бит соответствует длине основного префикса). Оставшаяся часть берётся из указанного в команде ipv6 address адреса. В принципе, левая часть указываемого на интерфейсе адреса может быть любой, в примере выше она заполнена нулями.

Использование основного префикса может быть совмещено с автоматическим назначением адреса на интерфейс с помощью SLAAC.

С помощью команды sho ipv general-prefix можно просмотреть, на каких интерфейсах сконфигурированы адреса, использующие определённый основной префикс.

Справедливости ради, стоит отметить, что допускается определить несколько префиксов с одним именем. На интерфейсы будут назначены все сконфигурированные адреса.

Как уже было отмечено ранее, в IPv6 протокол ARP более не используется. Определение соседей производится с помощью протокола NDP (Neighbor Discovery Protocol) путём обмена сообщениями ICMP, отправляя их на групповой адрес FF02::1.

В операционных системах семейства Windows также присутствует возможность просмотра списка соседей (аналог команды arp –a), правда, теперь придётся использовать более длинный системный вызов.

Похожим образом осуществляется поиск маршрутизаторов в локальном сегменте, правда, в этом случае отправка пакетов производится на адрес FF02::2. Заинтересованный узел отправляет сообщение RS (Router Solicitation), на которое получает ответ RA (Router Advertisement) от маршрутизатора. Указанный ответ содержит параметры работы IP-протокола в данной сети. Описанный процесс представлен на рисунке ниже.

Prefix delegation ipv6 что это. ipv6 4. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 4. картинка Prefix delegation ipv6 что это. картинка ipv6 4

Обнаружение маршрутизатора, подключённого к сегменту локальной сети, используется для получения узлом адреса IPv6 с помощью процедуры stateless address autoconfiguration (SLAAC), которую ошибочно ещё называют Stateless DHCP.

Статические маршруты

Таблица маршрутизации протокола IPv6 по умолчанию содержит не только непосредственно подключённые сетки, но также и локальные адреса. Кроме того, в ней присутствует маршрут на групповые адреса.

Привычным способом задаются статические маршруты в IPv6. Единственное, что хотелось бы отметить, что при использовании link-local адресов, кроме самого адреса следующего перехода, необходимо указать и интерфейс.

Динамическая маршрутизация

Настройка динамической маршрутизации в IPv6 немногим сложнее. Во-первых, для добавления интерфейса в процесс маршрутизации команда network более не используется. Вместо этого на интерфейсе должна быть дана команда ipv6 eigrp 1 для включения EIGRP 1, либо ipv6 ospf 1 area 0 для добавления интерфейса в магистральную зону процесса OSPF 1. Процесс маршрутизации EIGRP для IPv6 по умолчанию выключен, поэтому его потребуется включить, но самой «приятной» особенностью является необходимость следить за назначением параметра router-id. При IPv4 маршрутизации данный параметр мог быть назначен вручную, либо выбран автоматически на основании IP-адресов, назначенных интерфейсам. Если на устройстве нет IPv4 адресов вовсе, то router-id для процессов динамической маршрутизации IPv6 может быть назначен только вручную.

Для элементарной сети, представленной на схеме ниже, проведём настройку EIGRP. Маршрутизатор R1 на интерфейсе Gi0/0 имеет адрес 2001:db8::1/64, R2 – 2001:db8::2/64.

Prefix delegation ipv6 что это. ipv6 5. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 5. картинка Prefix delegation ipv6 что это. картинка ipv6 5

Сначала настроим маршрутизатор R1.

Введём аналогичные команды на R2, после это EIGRP-соседство устанавливается между двумя маршрутизаторами.

Вывод с маршрутизатора R1.

Вывод с маршрутизатора R2.

Если в сети используется протокол BGP, то для управления им придётся воспользоваться несколько иным подходом: в BGP не создаются различные процессы для IPv4 и IPv6. Вместо этого внутри одного «родительского» процесса деление на версии протокола IP производится с помощью команды address-family. Ниже приводится вывод с маршрутизатора R1. Настройка R2 выполнена аналогично.

На момент написания статьи (конец марта 2014 года) в глобальной таблице маршрутизации (BGP full view или BGP full table) насчитывалось примерно 500000 префиксов для IPv4 и около 17000 записей для IPv6.

Конфигурирование протокола OSPF для работы в сети IPv6 производится схожим образом. Протокол, который надо включать и настраивать, называется OSPFv3. Он полностью независим от IPv4. Третья версия протокола содержит ряд изменений и дополнений по сравнению с предыдущей реализацией OSPF.

Списки доступа

В списках доступа также есть небольшие изменения. Так, например, установка листа на интерфейс производится командой ipv6 traffic-filter, например, ipv6 traffic-filter TEST in.

После установки листа TEST на интерфейс Gi0/0 в приведённой выше схеме маршрутизатор R2 перестаёт отвечать на эхо-запросы по протоколу ICMP.

Туннелирование в среде IPv4 и IPv6

Не менее интересный вопрос связан с работой туннелей, поддерживающих IPv6. Самыми простыми туннелями в среде IPv4 были IPIP (IP-in-IP) и GRE. При использовании GRE с введением IPv6 для администратора практически ничего не меняется, однако поддержки IPv6 в IPIP нет. Вместо IPIP можно использовать IPv6IP. Приятной возможностью GRE является его универсальность, благодаря которой можно переносить протоколы IPv4 и IPv6 как поверх транспортной сети с IPv4, так и поверх сети IPv6. За выбор протокола транспортной сети отвечают ключевые слова ip или ipv6 после команды tunnel mode gre.

Вернёмся к нашей схеме и настроим между двумя маршрутизаторами туннель GRE так, чтобы поверх него работал протокол IPv4, а сам туннель существовал в сети IPv6. Листинг ниже представляет настройку туннельного интерфейса маршрутизатора R1. Устройство R2 конфигурируется аналогично.

На сегодняшний день, скорее всего, администратор столкнётся с противоположной ситуацией: потребуется передавать IPv6 трафик поверх сети IPv4. Конфигурация в этом случае симметрична: настройки IPv4 и IPv6 меняются местами. Пожалуй, стоит ещё отметить, что на данный момент в туннелях GRE поверх IPv6 отсутствует поддержка keepalive сообщений.

Кроме перечисленных туннелей существует ещё несколько распространённых типов: 6to4, 6in4, 6rd, Teredo, ISATAP, однако их рассмотрение выходит далеко за рамки данного материала. Сосуществование сетей IPv4 и IPv6 может происходить по одному из трёх сценариев: использование разнообразных туннелей, о которых упоминалось выше, в режиме dual stack, при котором всеми устройствами одновременно поддерживаются обе версии протокола IP, либо при помощи трансляций, например, NAT-PT.

Виртуальные процессы маршрутизации (VRF)

Ещё одна тема, которой хотелось бы коснуться в рамках беглого рассмотрения IPv6 – VRF. Конфигурирование VRF в многопротокольной среде производится немного иначе – без указания ключевого ip в начале. Здесь также используется подход с конструкцией address-family, который мы видели при настройке BGP. При создании VRF используется ключевое слово definition.

Добавление протокола маршрутизации в VRF производится также с использованием опции address-family. Добавить в VRF можно не только поименованные процессы, но и пронумерованные.

Фрагментация

В литературе можно нередко встретить упоминания о том, что в IPv6 фрагментация невозможна. Действительно, если внимательно посмотреть на заголовок пакетов IPv6, можно обнаружить, что в нём нет полей, отвечающих за процедуру фрагментации. На рисунке ниже представлено сравнение заголовков пакетов IPv4 и IPv6. Тёмно-серым отмечены изменившиеся поля.

Prefix delegation ipv6 что это. ipv6 8. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 8. картинка Prefix delegation ipv6 что это. картинка ipv6 8

Как видно из представленного выше сравнения, поля Identification, Flags и Fragment Offset были удалены.

Проведём небольшой эксперимент, для чего соберём схему, представленную ниже.

Prefix delegation ipv6 что это. ipv6 9. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 9. картинка Prefix delegation ipv6 что это. картинка ipv6 9

Маршрутизаторы используют следующие адреса на своих интерфейсах со стандартной маской /64.

Маршрутизатор и интерфейсАдрес
R1 Gi0/02001:db8:12::1
R2 Gi0/02001:db8:12::2
R2 Gi1/02001:db8:23::2
R3 Gi1/02001:db8:23::3

Сначала удостоверимся, что в IPv6 заголовке на самом деле отсутствуют указанные выше поля, для чего с помощью ICMP протокола убедимся в наличии связности между маршрутизаторами R1 и R3 и изучим содержимое одного из перехваченных на линке R1-R2 пакетов.

Prefix delegation ipv6 что это. ipv6 10. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 10. картинка Prefix delegation ipv6 что это. картинка ipv6 10

Выясним теперь значение MTU для интерфейса Gi0/0 маршрутизатора R1.

Так как значение MTU для протокола IPv6 равно 1500 байт, то мы не сможем передать ICMP сообщения большего размера. Для того, чтобы это проверить, отправим с помощью команды ping несколько сообщений echo request размером 2000 байт.

Удивительно, не так ли?! Заглянем в дамп и выясним, что же происходит в сети на самом деле.

Prefix delegation ipv6 что это. ipv6 11. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 11. картинка Prefix delegation ipv6 что это. картинка ipv6 11

В представленном выше пакете IPv6 появился дополнительный заголовок Fragment Header for IPv6, которого не было ранее. Этот дополнительный заголовок и содержит такие важные для процесса фрагментации поля как: Offset, More Fragments и Identification. Таким образом, фрагментация в IPv6 всё-таки возможна и выполняется она отправителем с использованием вспомогательного заголовка Fragment Header for IPv6.

Стоит заметить, что в IPv6 заголовок пакета имеет строго фиксированную длину в 40 байт, а все вспомогательные опции вынесены в последующие заголовки. Данный подход носит название IPv6 header chain. Обратите внимание на значения поля Next Header в заголовке пакета IPv6 и последующем заголовке Fragment Header for IPv6.

Продолжим наши эксперименты и вручную уменьшим значение MTU для маршрутизатора R2 на линке R2-R3.

Теперь вновь сгенерируем на маршрутизаторе R1 несколько больших пакетов.

Первый пакет был потерян, зато все остальные оказались успешно доставленными. Заглянем теперь в дамп трафика. Итак, маршрутизатор R1 сразу же выполняет фрагментацию и отправляет два пакета с размерами 1496 и 560 байт (на картинке ниже поле Length отображает длину кадра Ethernet, заголовок которого составляет 14 байт).

Prefix delegation ipv6 что это. ipv6 12. Prefix delegation ipv6 что это фото. Prefix delegation ipv6 что это-ipv6 12. картинка Prefix delegation ipv6 что это. картинка ipv6 12

Однако первый пакет не может быть передан через линк R2-R3, о чём маршрутизатор R2 генерирует ICMP сообщение Packet Too Big (Type=2, Code=0). Маршрутизатор R1 реагирует на полученное ICMP-сообщение и начинает отправку данных, используя более мелкие пакеты: 1296 и 760 байт.

Да, протокол IPv4 ведёт себя совершенно иначе: маршрутизатор по пути следования трафика будет просто фрагментировать проходящие IP-пакеты без установленного бита DF, если их размер превышает значение MTU для исходящего интерфейса; и отбрасывать IP-пакеты с установленным битом DF в том же случае. Конечно, промежуточный маршрутизатор будет генерировать ICMP сообщение (Type=2, Code=4) Destination Unreachable (Fragmentation Needed), но отправляющая сторона никак не сможет на них отреагировать из-за выставленного бита DF.

В заключение хотели бы обратить внимание читателя на размеры IPv6 пакетов, которые получались при фрагментации для передачи через канал с IPv6 MTU равным 1300 байт. Пакеты имели размеры 1296 и 760 байт. Но почему именно 1296, а не 1300 байт? Ответ кроется в деталях реализации процедуры фрагментации, а именно в размере поля Offset заголовка Fragment Header for IPv6. Дело в том, что поле Offset имеет длину равную 13 бит и указывает на количество блоков по 8 байт, на которое смещён данный фрагмент. Таким образом, смещение фрагмента должно быть кратным 8 байтам. Аналогичная ситуация наблюдается и в протоколе IPv4, где поле Fragment Offset имеет абсолютно такую же длину.

Заключение

Завершая этот вводный кусочек, хочется отметить следующее.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *