OSPFv3#

Описание#

Для работы в сетях IPv6 разработан бесклассовый протокол маршрутизации по состоянию канала OSPFv3, большинство параметров которого аналогичны протоколу OSPFv2, работающему в сетях IPv4. Оба протокола работают на основе алгоритма SPF. При обмене маршрутной информацией рассылаются те же типы пакетов, что и в версии протокол OSPFv6. Рассылка маршрутной информации в OSPFv3 производится с использованием группового адреса FF02::5 или FF02::6 и маршрутизаторов DR и BDR. Кроме того, для рассылки внутри локального канала используются индивидуальные локальные адреса источника и назначения. OSPFv3 использует аутентификацию IPv6 по протоколу IPSec.

Настройка#

Пример настройки#

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

Список команд для настройки первого узла:

set protocols ospfv3 area 0.0.0.0 interface eth1
set protocols ospfv3 area 0.0.0.0 range 2001:db8:1::/64
set protocols ospfv3 parameters router-id 192.168.1.1
set protocols ospfv3 redistribute connected

Список команд для настройки второго узла:

set protocols ospfv3 area 0.0.0.0 interface eth1
set protocols ospfv3 area 0.0.0.0 range 2001:db8:2::/64
set protocols ospfv3 parameters router-id 192.168.2.1
set protocols ospfv3 redistribute connected

Чтобы получить информацию о редистрибуции маршрутов, используйте команду show ipv6 ospfv3 redistribute.

Примечание

Чтобы перераспределить маршруты IPv6 через OSPFv3 на канале интерфейса WireGuard, настройте вручную адреса link-local на интерфейсах WireGuard

Пример настройки OSPFv3 для интерфейсов WireGuard#

Список команд для настройки первого узла:

set interfaces wireguard wg01 address 'fe80::216:3eff:fe51:fd8c/64'
set interfaces wireguard wg01 address '192.168.0.1/24'
set interfaces wireguard wg01 peer ospf02 allowed-ips '::/0'
set interfaces wireguard wg01 peer ospf02 allowed-ips '0.0.0.0/0'
set interfaces wireguard wg01 peer ospf02 endpoint '10.1.1.101:12345'
set interfaces wireguard wg01 peer ospf02 pubkey 'ie3...='
set interfaces wireguard wg01 port '12345'
set protocols ospfv3 parameters router-id 192.168.1.1
set protocols ospfv3 area 0.0.0.0 interface 'wg01'
set protocols ospfv3 area 0.0.0.0 interface 'lo'

Список команд для настройки второго узла:

set interfaces wireguard wg01 address 'fe80::216:3eff:fe0a:7ada/64'
set interfaces wireguard wg01 address '192.168.0.2/24'
set interfaces wireguard wg01 peer ospf01 allowed-ips '::/0'
set interfaces wireguard wg01 peer ospf01 allowed-ips '0.0.0.0/0'
set interfaces wireguard wg01 peer ospf01 endpoint '10.1.1.100:12345'
set interfaces wireguard wg01 peer ospf01 pubkey 'NHI...='
set interfaces wireguard wg01 port '12345'
set protocols ospfv3 parameters router-id 192.168.1.2
set protocols ospfv3 area 0.0.0.0 interface 'wg01'
set protocols ospfv3 area 0.0.0.0 interface 'lo'

Для проверки состояния между соседствующими узлами, используйте команду show ipv6 ospfv3 neighbor.

Пример вывода информации о состоянии соседствующих узлов:

fakel@ospf01:~$ show ipv6 ospfv3 neighbor
Neighbor ID     Pri    DeadTime    State/IfState         Duration I/F[State]
192.168.0.2       1    00:00:37     Full/PointToPoint    00:18:03 wg01[PointToPoint]

fakel@ospf02# run show ipv6 ospfv3 neighbor
Neighbor ID     Pri    DeadTime    State/IfState         Duration I/F[State]
192.168.0.1       1    00:00:39     Full/PointToPoint    00:19:44 wg01[PointToPoint]

Список команд#

Основные настройки#

Процесс OSPFv3 запускается при настройке первого интерфейса с поддержкой ospf.

set protocols ospfv3 area <number> interface <interface>#

Активирует протокол OSPFv3 на определенном интерфейс <interface>. Номер области <number> может быть указан в десятичной системе счисления в диапазоне от 0 до 4294967295. Или он может быть указан в десятичной системе счисления, аналогично ip-адресу.

set protocols ospfv3 parameters router-id <rid>#

Задает идентификатор маршрутизатора <rid> процесса OSPFv3. Идентификатор маршрутизатора может быть IP-адресом маршрутизатора, но не обязательно - это может быть любое произвольное 32-битное число. Однако он ДОЛЖЕН быть уникальным в пределах всего домена OSPFv3 для динамика OSPFv3 - если несколько динамиков OSPFv3 будут сконфигурированы с одним и тем же router-ID, произойдут плохие вещи!

Дополнительные настройки#

set protocols ospfv3 distance global <distance>#

Изменяет глобальное значение расстояния <distance> в протоколе OSPFv3. Диапазон расстояний составляет от 1 до 255.

set protocols ospfv3 distance ospfv3 <external|inter-area|intra-area> <distance>#

Изменяет значение расстояния <distance> в протоколе OSPFv3. Аргументами являются значения расстояния для внешних маршрутов <external>, маршрутов, распространяемых между зонами <inter-area> и маршрутов, распространяемых внутри одной зоны <intra-area> соответственно. Диапазон значений расстояния составляет от 1 до 255.

Настройки областей#

set protocols ospfv3 area <number> range <prefix>#

Суммирует маршруты, распространяемые внутри одной зоны в один маршрут, распространяемый между зонами с префиксным типом LSA Type-3, анонсированный в другие зоны. Данная команда может быть использована только в ABR.

set protocols ospfv3 area <number> range <prefix> not-advertise#

Фильтрует внутриобластные пути - т.е. внутриобластные пути из этого диапазона не рекламируются в другие области. Эта команда имеет смысл только в ABR.

Настройки интерфейсов#

set interfaces <inttype> <interface> ipv6 ospfv3 cost <number>#

Устанавливает стоимость соединения <number> для указанного интерфейса <interface>. Значение стоимости устанавливается в поле метрики маршрутизатора-LSA и используется для расчета SPF. Диапазон значений стоимости составляет от 1 до 65535.

set interfaces <inttype> <interface> ipv6 ospfv3 dead-interval <number>#

Задайте количество секунд для значения таймера Dead Interval маршрутизатора, используемого для таймера ожидания и таймера бездействия. Это значение должно быть одинаковым для всех маршрутизаторов, подключенных к общей сети. Значение по умолчанию составляет 40 секунд. Диапазон интервалов составляет от 1 до 65535.

set interfaces <inttype> <interface> ipv6 ospfv3 hello-interval <number>#

Установка количества секунд для значения таймера Hello Interval <number>. При установке этого значения пакет Hello будет отправляться на указанный интерфейс каждые несколько секунд по таймеру. Это значение должно быть одинаковым для всех маршрутизаторов, подключенных к общей сети. Значение по умолчанию составляет 10 секунд. Диапазон значений интервала составляет от 1 до 65535.

set interfaces <inttype> <interface> ipv6 ospfv3 mtu-ignore#

Отключает проверку значения MTU в пакетах OSPF DBD. Таким образом, использование этой команды позволяет OSPF-связке достичь состояния FULL, даже если между двумя OSPF-маршрутизаторами имеется несоответствие MTU интерфейса.

set interfaces <inttype> <interface> ipv6 ospfv3 network <type>#

Определяет тип распределения для сети <type>, подключенной к определенному интерфейсу <inttype>:

  • broadcast – распределение широковещательных IP-адресов.

  • point-to-point – распределение адресов в сетях «точка-точка.

set interfaces <inttype> <interface> ipv6 ospfv3 priority <number>#

Задает целочисленное значение Router Priority <number>. Маршрутизатор с наивысшим приоритетом будет иметь больше шансов стать назначенным маршрутизатором. Если установить значение 0, то маршрутизатор не будет иметь права стать назначенным маршрутизатором. Значение по умолчанию равно 1. Диапазон интервалов от 0 до 255.

set interfaces <inttype> <interface> ipv6 ospfv3 passive#

Определяет интерфейс <interface> как пассивный. Пассивный интерфейс рекламирует свой адрес, но не выполняет протокол OSPF (смежности не формируются и пакеты hello не генерируются).

set interfaces <inttype> <interface> ipv6 ospfv3 retransmit-interval <number>#

Задает количество секунд для значения таймера RxmtInterval <number>. Это значение используется при повторной передаче пакетов Database Description и Link State Request, если подтверждение не было получено. Значение по умолчанию равно 5 секундам. Диапазон интервалов составляет от 3 до 65535.

set interfaces <inttype> <interface> ipv6 ospfv3 transmit-delay <number>#

Задает количество секунд для значения InfTransDelay <number>. Позволяет установить и настроить для каждого интерфейса интервал задержки перед началом процесса синхронизации базы данных маршрутизатора со всеми соседями. Значение по умолчанию составляет 1 секунду. Диапазон значений интервала составляет от 3 до 65535.

Настройка редистрибуции#

set protocols ospfv3 redistribute <route source>#

Перераспределяет информацию о маршрутизации из заданного источника маршрута в процесс OSPF. Для источника маршрута доступно пять режимов: bgp, connected, kernel, rip, static.

set protocols ospf redistribute <route source> route-map <name>#

Устанавливает route map <name> для фильтрации перераспределенных маршрутов из заданного источника маршрута <route source>. Для источника маршрута доступно пять режимов: bgp, connected, kernel, rip, static.

Мониторинг состояния#

show ipv6 ospfv3 neighbor#

Выводит информацию о состоянии соседей.

show ipv6 ospfv3 neighbor detail#

Выводит информацию о соседях в подробном виде.

show ipv6 ospfv3 neighbor <A.B.C.D>#

Выводит в подробном виде информацию для конкретного соседа <A.B.C.D>.

show ipv6 ospfv3 neighbor <interface>#

Выводит в подробном виде информацию для соседа на указанном интерфейсе <interface>.

show ipv6 ospfv3 interface [prefix]|[<interface> [prefix]]#

Выводит информацию о состоянии и настройках OSPF для указанного интерфейса <interface> или для всех интерфейсов, если конкретный интерфейс не указан. С аргументом prefix эта команда также выводит информацию о префиксах.

show ipv6 ospfv3 route#

Выводит таблицу маршрутизации OSPF, определенную по последнему расчету SPF.

show ipv6 ospfv3 border-routers#

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

show ipv6 ospfv3 database#

Выводит на экран сводную таблицу с содержимым базы данных (LSA).

show ipv6 ospfv3 database <type> [A.B.C.D] [adv-router <A.B.C.D>|self-originate]#

Выводит содержимое базы данных для определенного типа рекламы каналов.

show ipv6 ospfv3 redistribute#

Выводит информацию о редистрибуции маршрутов в OSPFv3