Введение и немного теории.
Происхождение протокола IP версии 6 относится к 1998 году к RFC 2460, который описывает IPv6 как протокол-преемник для 4-ой версии. Данный переход связан с предсказуемым исчерпанием адресного пространства в IPv4. Переход от 32-х битных к 128-ми битным адресам позволил увеличить адресное пространство в IPv6 до предела 2 в 128 степени количества адресов. Однако помимо увеличения адресного пространства, в реализации IPv6 достаточно много нововведений, призванных избавить данный протокол от проблем его предшественника. К данным нововведениям можно отнести – отсутствие broadcast, SLAAC, NDP.
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 префикс.
Упрощенная топология:
В качестве DHCPv6 сервера используется маршрутизатор Cisco, в качестве пограничного устройства, выполняющего DHCPv6 delegation – фаерволл FortiGate в виде виртуальной машины с версией операционной системы 5.4.4. Для клиентской части также используется FortiGate.
Ниже приведены выдержки из конфигурации с комментариями.
Cisco:
#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 адрес.
На этом базовая настройка закончена. Дополнительно можно настроить 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 и т.д.
Происхождение протокола IP версии 6 относится к 1998 году к RFC 2460, который описывает IPv6 как протокол-преемник для 4-ой версии. Данный переход связан с предсказуемым исчерпанием адресного пространства в IPv4. Переход от 32-х битных к 128-ми битным адресам позволил увеличить адресное пространство в IPv6 до предела 2 в 128 степени количества адресов. Однако помимо увеличения адресного пространства, в реализации IPv6 достаточно много нововведений, призванных избавить данный протокол от проблем его предшественника. К данным нововведениям можно отнести – отсутствие broadcast, SLAAC, NDP.
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 префикс.
Упрощенная топология:
В качестве DHCPv6 сервера используется маршрутизатор Cisco, в качестве пограничного устройства, выполняющего DHCPv6 delegation – фаерволл FortiGate в виде виртуальной машины с версией операционной системы 5.4.4. Для клиентской части также используется FortiGate.
Ниже приведены выдержки из конфигурации с комментариями.
Cisco:
#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 адрес.
На этом базовая настройка закончена. Дополнительно можно настроить 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 и т.д.
Поделиться с друзьями
Комментарии (2)
acmnu
30.05.2017 10:13А что же с DHCP? DHCP для IPv6 можно использовать в том случае, если нужно контролировать назначение IP адресов или же предоставлять настройки DNS.
Т.е. DHCP все же нужен в большинстве случаев.
remzalp
Что это, откуда это, где это используется и за сколько это купить? А если не купить — как получить бесплатно?
И я не про IPv6 спрашиваю.