Сети для самых маленьких. часть одиннадцатая. mpls l3vpn

IP-адрес

Начнем с базовой настройки роутера Mikrotik. Добавим на каждом из трех маршрутизаторов loopback интерфейс и пропишем IP адреса для внутренних и внешних интерфейсов в соответствии с топологией выше.

Настройка адресов на Маршрутизаторе R1

 > interface bridge add name=lo0
 > ip address add address=192.168.1.1/32 interface=lo0 
 > ip address add address=192.168.12.1/24 interface=ether1

Присваивание адресации для роутера R2

 > interface bridge add name=lo0
 > ip address add address=192.168.2.2/32 interface=lo0 
 > ip address add address=192.168.12.2/24 interface=ether1
 > ip address add address=192.168.23.2/24 interface=ether2

Конфигурация сетей на Маршрутизаторе R3

 > interface bridge add name=lo0
 > ip address add address=192.168.3.3/32 interface=lo0 
 > ip address add address=192.168.23.3/24 interface=ether1

[править] Настройка основных режимов работы протокола

configure ospf routerid <IP>                               - назначение Router-ID маршрутизатору.
configure ospf metric-table 10M 1000 100M 100 1G 10 10G 1 40G 1 - задание стоимости интерфейсов на основе их скорости.
configure ospf ase-limit <number> {timeout <seconds>}      - ограничение на количество External LSA. При достижении значения коммутатор
                                                             переходит в режим overflow на timeout секунд.
<enable | disable> ospf capability opaque-lsa              - Если включены, желательно чтобы на всех устройствах c OSPF.
configure ospf restart  - в каких случаях маршрутизатор выполняет graceful restart.
configure ospf restart grace-period <seconds>              - время которое маршрутизатор просит у helper-ов для выполнения graceful restart.
configure ospf  restart-helper  - в каких случаях
                                                             маршрутизатор должен выполнять роль HELPER-а при graceful-рестарт'е соседа.
disable ospf  restart-helper-lsa-check - будучи в роли HELPER'a не прекращать процедуру
                                                                                                       graceful-restart для соседа при появлении LSA,
                                                                                                       которое нужно передать перезапускающемуся соседу.
configure ospf add virtual-link <router-id> <area-id>      - настройка Virtual Link'a в транзитной зоне на ABR'aх.
enable iproute sharing                                     - разрешение одновременное использование и балансирование нагрузки между маршрутами
                                                             с одинаковой стоимостью.
enable loopback-mode vlan <name>                           - пометить SVI влана как loopback-интерфейс (для имитации подключенного маршрута).

[править] Настройка зон

create ospf area <ID>                                               - создание новой зоны (зона 0 существует всегда, создавать не нужно).
configure ospf area <ID> stub  stub-default-cost <cost>             - определение зоны как STUB.
configure ospf area <ID> nssa  stub-default-cost <cost> {translate} - определение зоны как NSSA.
                                                                      опция translate определяет, переводить ли LSA type 7
                                                                      в LSA type 5. Может включаться только на ABR'ах. Включение на IR'ах
                                                                      может привести к ошибкам маршрутизации. Если не включён нигде,
                                                                      автоматически выбирается 1 ABR на котором происходит перевод.
configure ospf add vlan <name> area <ID> {passive|link-type ...}    - назначение ip-интерфейса влана определённой зоне.
configure ospf vlan <name> authentication md5 <key-id> <key-string> - аутентификация MD5 для ip-интерфейса влана.
configure ospf vlan <name> area <ID>
configure ospf vlan <name> priority <0-255>                         - назначение приоритета маршрутизатора на интерфейсе влана. По-умолчанию 1.

Внимание! Перед удалением ip-адреса из ip-интерфейса влана, который добавлен в OSPF, необходимо сначала убрать этот интерфейс из OSPF. Правильный порядок таков:

configure ospf delete vlan <name>
unconfigure vlan <name> ipaddress

Если не следовать этому правилу, то иногда (в ~20% случаев) при снятии ip-адреса из влана рушится процесс OSPF, что приводит к перезагрузке всего коммутатора. Это справедливо по крайней мере для ExtremeXOS 12.6.

Типы объявлений о состоянии канала (LSA)

Type 1 LSA — Router LSA — объявление о состоянии каналов маршрутизатора. Эти LSA распространяются всеми маршрутизаторами. В LSA содержится описание всех каналов маршрутизатора и стоимость (cost) каждого канала. Распространяются только в пределах одной зоны.

Type 2 LSA — Network LSA — объявление о состоянии каналов сети. Распространяется DR в сетях со множественным доступом. В LSA содержится описание всех маршрутизаторов присоединенных к сети, включая DR. Распространяются только в пределах одной зоны.

Type 3 LSA — Network Summary LSA — суммарное объявление о состоянии каналов сети. Объявление распространяется пограничными маршрутизаторами. Объявление описывает только маршруты к сетям вне зоны и не описывает маршруты внутри автономной системы. Пограничный маршрутизатор отправляет отдельное объявление для каждой известной ему сети.

Когда маршрутизатор получает Network Summary LSA от пограничного маршрутизатора он не запускает алгоритм вычисления кратчайшего пути. Маршрутизатор просто добавляет к стоимости маршрута указанного в LSA стоимость маршрута к пограничному маршрутизатору. Затем маршрут к сети через пограничный маршрутизатор помещается в таблицу маршрутизации.

Type 4 LSA — ASBR Summary LSA — суммарное объявление о состоянии каналов пограничного маршрутизатора автономной системы. Объявление распространяется пограничными маршрутизаторами. ASBR Summary LSA отличается от Network Summary LSA тем, что распространяется информация не о сети, а о пограничном маршрутизаторе автономной системы.

Type 5 LSA — AS External LSA — объявление о состоянии внешних каналов автономной системы. Объявление распространяется пограничным маршрутизатором автономной системы в пределах всей автономной системы. Объявление описывает маршруты, внешние для автономной системы OSPF, или маршруты по умолчанию (default route), внешние для автономной системы OSPF.

Type 6 LSA — Multicast OSPF LSA — специализированный LSA, который используют мультикаст OSPF приложения (Not implemented by CISCO).

Type 7 LSA — AS External LSA for NSSA — объявления о состоянии внешних каналов автономной системы в NSSA зоне. Это объявление может передаваться только в NSSA зоне. На границе зоны пограничный маршрутизатор преобразует type 7 LSA в type 5 LSA.

Type 8 LSA — Link LSA — анонсирует link-local адрес и префикс(ы) маршрутизатора всем маршрутизаторам разделяющим канал (link). Отправляется только если на канале присутствует более чем один маршрутизатор. Распространяются только в пределах канала (link).

Type 9 LSA — Intra-Area-Prefix LSA ставит в соответствие:
список префиксов IPv6 и маршрутизатор, указывая на Router LSA,
список префиксов IPv6 и транзитную сеть, указывая на Network LSA.
Распространяются только в пределах одной зоны.

OSPF

После настройки интерфейсов продолжим конфигурацию OSPF. Необходимо добавить IP-сети каждого маршрутизатора в конфигурацию OSPF.

Конфигурация маршрутизатора R1

За первым маршрутизатором находятся сети 192.168.12.0/24 и 192.168.1.1/32

 > routing ospf network add network=192.168.1.1/32 area=backbone 
 > routing ospf network add network=192.168.12.0/24 area=backbone

Настройка сетей для Роутера R2

Второй маршрутизатор адресует сети 192.168.12.0/24, 192.168.23.0/24 и 192.168.2.2/32

 > routing ospf network add network=192.168.2.2/32 area=backbone 
 > routing ospf network add network=192.168.12.0/24 area=backbone 
 > routing ospf network add network=192.168.23.0/24 area=backbone 

Маршрутизатор R3

Для третьего маршрутизатора видны сети 192.168.23.0/24, и 192.168.3.3/32

 > routing ospf network add  network=192.168.3.3/32 area=backbone 
 > routing ospf network add network=192.168.23.0/24 area=backbone

Когда настройка окончена, давайте посмотрим на таблицу маршрутизации третьего устройства. Необходимо проверить, передаются ли сети по OSPF протоколу, и какие сети выгрузились в таблицу маршрутизации.

 > ip route print 
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit 
 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 0 ADo  192.168.1.1/32                     192.168.23.2            110
 1 ADo  192.168.2.2/32                     192.168.23.2            110
 2 ADC  192.168.3.3/32     192.168.3.3     lo0                       0
 3 ADo  192.168.12.0/24                    192.168.23.2            110
 4 ADC  192.168.23.0/24    192.168.23.3    ether1                    0

Результаты работы успешны, настройка выполнена корректно.

Типы зон

При разделении автономной системы на зоны маршрутизаторам, принадлежащим к одной зоне, не известна информация о детальной топологии других зон.

Разделение на зоны позволяет:

  • Снизить нагрузку на ЦП маршрутизаторов за счёт уменьшения количества перерасчётов по алгоритму OSPF
  • Уменьшить размер таблиц маршрутизации
  • Уменьшить количество пакетов обновлений состояния канала

Каждой зоне присваивается идентификатор зоны (area ID). Идентификатор может быть указан в десятичном формате или в формате записи IP-адреса. Однако идентификаторы зон не являются IP-адресами и могут совпадать с любым назначенным IP-адресом.

Существует несколько типов зон:

Магистральная зона (backbone area)

Магистральная зона (известная также как нулевая зона или зона 0.0.0.0) формирует ядро сети OSPF. Все остальные зоны соединены с ней, и межзональная маршрутизация происходит через маршрутизатор соединенный с магистральной зоной. Магистральная зона ответственна за распространение маршрутизирующей информации между немагистральными зонами. Магистральная зона должна быть смежной с другими зонами, но она не обязательно должна быть физически смежной; соединение с магистральной зоной может быть установлено и с помощью виртуальных каналов.

Стандартная зона (standard area)

Обычная зона, которая создается по умолчанию. Эта зона принимает обновления каналов, суммарные маршруты и внешние маршруты.

Тупиковая зона (stub area)

Тупиковая зона не принимает информацию о внешних маршрутах для автономной системы, но принимает маршруты из других зон. Если маршрутизаторам из тупиковой зоны необходимо передавать информацию за границу автономной системы, то они используют маршрут по умолчанию.
В тупиковой зоне не может находиться ASBR.

Totally stubby area

Totally stubby area не принимает информацию о внешних маршрутах для автономной системы и маршруты из других зон. Если маршрутизаторам необходимо передавать информацию за пределы зоны, то они используют маршрут по умолчанию. Cisco-proprietary тип зоны.

Описание работы протокола

Принцип работы заключается в следующем:

  1. После включения маршрутизаторов протокол ищет непосредственно подключенных соседей и  устанавливает с ними «дружеские» отношения.
  2. Затем они обмениваются друг с другом информацией о подключенных и доступных им сетях. То есть они строят карту сети (топологию сети). Данная карта одинакова на всех маршрутизаторах.
  3. На основе полученной информации запускается алгоритм SPF (Shortest Path First, «выбор наилучшего пути»), который рассчитывает оптимальный маршрут к каждой сети. Данный процесс похож на построение дерева, корнем которого является сам маршрутизатор, а ветвями — пути к доступным сетям. Данный процесс, то есть конвергенция, происходит очень быстро.

[править] Таймеры

configure ospf vlan <vlan_name> timer <retransmit-interval> <transit-delay> <hello-interval> <dead-interval> {<wait-timer-interval>}
configure ospf area <ID>        timer <retransmit-interval> <transit-delay> <hello-interval> <dead-interval> {<wait-timer-interval>}
configure ospf virtual-link <router-id> <area-ID> timer <retransmit-interval> <transit-delay> <hello-interval> <dead-interval>
  • Retransmit interval — время перед повторной отправкой LSA, получение которой не было подтверждено соседом (ACK не был получен).
  • Transit delay — время необходимое для передачи LSA через инетрфейс. Должно быть больше 0.
  • Hello interval — интервал отправки HELLO. По-умолчанию 10 сек для broadcast сети.
  • Dead Interval — время отсутствия HELLO от соседа, после которого считается, что сосед отключился. По-умолчанию, 4 * Hello.
  • Wait Timer Interval — время между поднятием интерфейса и началом процедуры выбора DR и BDR. Должно быть больше Hello.

Настройка OSPF c одной областью

Рассмотрим,  как настроить сеть OSPF c одной областью. Предположим, у нас есть следующая схема.

В примере сеть  состоит из трех маршрутизаторов mikrotik, соединенных вместе одним адресным пространством  10.10.1.0/24, и каждый маршрутизатор имеет еще по одной подключенной сети.

В этом примере на маршрутизаторах настроены следующие IP-адреса:

R1

Ether1-10.10.1.1/30

Ether2-10.10.1.5/30

Ether3-210.13.1.0/28

R2

Ether1-10.10.1.6/30

Ether2-10.10.1.9/30

Ether3-172.16.1.0/16

R3

Ether1-10.10.1.2/30

Ether2-10.10.1.10/30

Ether3-192.168.1.0/24

Конфигурация  OSPF осуществляется следующими основными шагами

  1. Настроить router-id
  2. Конфигурация области
  3. Конфигурация сети

Настройка router-id

Настраиваем маршрутизатор Микротик  R1

Переходим в меню Routing – OSPF вкладка  Instances. Здесь должен быть уже созданный экземпляр default , если его нет, то создаем.

Аналогично создаем экземпляры на всех остальных маршрутизаторах.

В консоли эти команды такие

R1:
 /routing ospf instance> add name=default

R2:
 /routing ospf instance> add name=default

R3:
 /routing ospf instance> add name=default

Как видно, router-id равен 0.0.0.0, это означает, что маршрутизатор будет использовать один из IP-адресов роутера  в качестве идентификатора маршрутизатора. В большинстве случаев рекомендуется настроить loopback интерфейс как идентификатор маршрутизатора. IP-адрес Loopback интерфейса является виртуальным, программным адресом, который используется для идентификации маршрутизатора в сети. Преимущества в том, что loopback-адрес всегда активен  и не может быть недоступен как физический интерфейс. Протокол OSPF использует его для связи между маршрутизаторами, идентифицированными  router-id.

Настроим loopback, для этого заходим в меню interfaces т  добавляем новый интерфейс, выбираем bridge

Делаем настройки как показаны на рисунке.

Напишем только имя loopback после чего нажимаем OK.

Следующим шагом, настраиваем ip адрес на интерфейсе. Для роутера R1 настроим ip 10.255.255.1/32

Настраиваем router-id как loopback. Для этого идем в routing — ospf, вкладка instance/ Выбираем наш экземпляр default,  В поле router-id, вписываем ip адрес loopback интерфейса,  10.255.255.1

Аналогичные настройки делаем на остальных маршрутизаторах R2 и R3

Консоль

 /interface bridge> add name=loopbackip address add address=10.255.255.1/32 interface=loopback /routing ospf instance> set 0 router-id=10.255.255.1

Настройка области OSPF

Переходим к конфигурации  области. Область backbone уже создана и дополнительной настройки не требуется.

«Обратите внимание что область backbone area-id должна быть 0.0.0.0»

Настройка Сети

Открываем меню Routing-OSPF вкладка Network,  Нажимаем кнопку добавить

В поле Network, прописываем сеть, Area выбираем backbone. Для роутера R1 прописываем адресацию в соответствии со схемой 10.10.1.0/30, 210.13.1.0/28 и 10.10.1.4/30. В результате должна получиться следующая картина

Консоль

 /routing ospf network> add network=210.13.1.0/28 area=backbone
 /routing ospf network> add network=10.10.1.0/30 area=backbone
 /routing ospf network> add network=10.10.1.4/30 area=backbone

В принципе,  для префиксов 10.10.1.0/30 и 10.10.1.4.30 можно было прописать 10.10.1.0/24, тогда получилось бы так

Аналогично настраиваем R2

R3

Консоль

R2:
 /routing ospf network> add network=172.16.1.0/16 area=backbone
 /routing ospf network> add network=10.10.1.0/24 area=backbone

R3:
 /routing ospf network> add network=192.168.1.0/24 area=backbone
 /routing ospf network> add network=10.10.1.0/24 area=backbone

На этом конфигурация  OSPF завершена. Если все сделано правильно, то на вкладке OSPF  Interfaces должны появиться интерфейсы, а на вкладке Routes маршруты.

Формат OSPF-пакетов

OSPF-пакет инкапсулируется непосредственно в поле данных IP-пакета. Значение поля «протокол верхнего уровня» в заголовке IP-дейтаграммы для OSPF равно 89.

Заголовок пакета

Октет 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0—3 Version Type Packet length
4—7 Router ID
8—11 Area ID
12—15 Checksum Authentication type
16—19 Authentication
20—23
  • Version — номер версии протокола OSPF, текущая версия OSPF для сетей IPv4 — 2;
  • Type — тип OSPF-пакета;
  • Packet length — длина пакета, включая заголовок;
  • Router ID — идентификатор маршрутизатора, уникальное 32-битное число, идентифицирующее маршрутизатор в пределах автономной системы;
  • Area ID — 32-битный идентификатор зоны;
  • Checksum — поле контрольной суммы, подсчитывается для всего пакета, включая заголовок;
  • Authentication type — тип используемой схемы аутентификации, возможные значения:
    • 0 — аутентификация не используется
    • 1 — аутентификация открытым текстом
    • 2 — MD5-аутентификация
  • Authentication — поле данных аутентификации.

Hello-пакет

Hello-пакет предназначен для установления и поддержания отношений с соседями. Пакет периодически посылается на все интерфейсы маршрутизатора.

Октет 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0—3 Version Type = 1 Packet length
4—7 Router ID
8—11 Area ID
12—15 Checksum Authentication type
16—19 Authentication
20—23
24—27 Network mask
28—31 Hello interval Options Router priority
32—35 Router dead interval
36—39 Designated router
40—43 Backup designated router
44—47 Neighbor ID
  • Network mask — сетевая маска интерфейса, через который отправляется hello-пакет;
  • Hello interval — интервал задающий частоту рассылки приветственных сообщений для обнаружения соседей в автономной системе, для LAN значение по умолчанию равно 10 секундам;
  • Options — 8-битное поле опций, описывает возможности маршрутизатора;
  • Router priority — приоритет маршрутизатора, 8-битное число, символизирующее приоритет маршрутизатора при выборе DR (англ. Designated router) и BDR (англ. Backup designated router);
  • Router dead interval — период времени, в течение которого маршрутизатор ожидает ответа соседей;
  • Designated router (DR) — IP-адрес DR;
  • Backup designated router (BDR) — IP-адрес BDR;
  • Neighbor ID — идентификатор соседа. Список составляется из идентификаторов соседей, от которых маршрутизатор получил hello-пакеты в течение времени, заданного в поле router dead interval;

Database Description

Пакет Database Description описывает содержание базы данных состояния канала. Обмен пакетами производится при установлении состояния смежности.

Октет 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0—3 Version Type = 2 Packet length
4—7 Router ID
8—11 Area ID
12—15 Checksum Authentication type
16—19 Authentication
20—23
24—27 Interface MTU Options I M MS
28—31 DD sequence number

dsfsdfsfga

  • Interface MTU — размер в байтах наибольшей IP дейтаграммы, которая может быть послана через данный интерфейс без фрагментации;
  • I-бит — устанавливается для первого пакета в последовательности;
  • M-бит — указывает наличие последующих дополнительных пакетов;
  • MS-бит — устанавливается для ведущего, сбрасывается для ведомого;
  • DD sequence number — в начальном пакете устанавливается на уникальное значение, при передаче каждого последующего пакета увеличивается на единицу, пока не будет передана вся база данных;
  • LSA headers — массив заголовков базы данных состояния каналов.

Link State Request

Пакет Link State Request предназначен для запроса части базы данных соседнего маршрутизатора.

Октет 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0—3 Version Type = 3 Packet length
4—7 Router ID
8—11 Area ID
12—15 Checksum Authentication type
16—19 Authentication
20—23
24—27 LS Type
28—31 Link State ID
32—35 Advertising Router
  • LS Type — тип объявления о состоянии канала;
  • Link State ID — идентификатор домена маршрутизации;
  • Advertising Router — идентификатор маршрутизатора, создавшего объявление о состоянии канала.

Link State Update

Пакет Link State Update предназначен для рассылки объявлений о состоянии канала. Пакет посылается по групповому адресу на один транзитный участок.

Октет 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0—3 Version Type = 4 Packet length
4—7 Router ID
8—11 Area ID
12—15 Checksum Authentication type
16—19 Authentication
20—23
24—27 Number of LSA
  LSA

Number of LSA — количество объявлений в пакете.

Link State Acknowledgment

Подтверждает получение пакета Link State Update.

Октет 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0—3 Version Type = 5 Packet length
4—7 Router ID
8—11 Area ID
12—15 Checksum Authentication type
16—19 Authentication
20—23
  LSA headers

Administrative Groups или Affinity

Вот сейчас должно стать страшно. Мне страшно.

  • Метрика MPLS TE.
  • Требования к полосе пропускания канала и приоритет замещения.
  • Explicit-path.
  • SRLG.

RFC3630Идея в том, что каждый интерфейс мы помечаем определёнными цветами.
А потом говорим, что вот этот туннель может идти по красным и фиолетовым линиям, но не может по зелёным, жёлтым и коричневым.
Раз уж примеры у нас в консоли Cisco, то далее буду использовать термин Attribute-Flag наравне с Administrative group, что не совсем правильно.Affinity и маска

  1. РРЛ это или нет
  2. Магистральная линия или в сторону сегмента доступа
  3. Канал через интернет или нет

Взяли только первые 8 бит для простоты.

  1. Чтобы это не был РРЛ ()
  2. Чтобы это был магистральный линк (1)
  3. Канал не через интернет ()

Attribute-Flag 0000 0100 — Не РРЛ, магистральный и не через Интернет. Attribute-Flag && Mask = 0000 0100 = Affinity && Mask — сюда можно пускать трафик.
Attribute-Flag 0100 0000 — Не РРЛ, но в сторону сегмента доступа, да ещё и через интернет. Attribute-Flag && Mask = 0100 0000 ≠ Affinity && Mask — сюда нельзя пускать трафик.
Attribute-Flag 0000 0101 — Оптика, не РРЛ, магистральный и не через Интернет. Attribute-Flag && Mask = 0000 0100 = Affinity && Mask — сюда можно пускать трафик

Не важно, оптика или нет — результат тот же.

0x0RFC 7308разжёвывает Affinity

Практика

Файл конфигурации.

Надёжность и сходимость

  1. Защита на физическом уровне. Например, APS в SONET или LAG в Ethernet.
  2. IP — решение всех проблем. IGP, BGP, VRRP итд.
  3. Набор технологий в MPLS.
  • Path Protection
  • Local Protection

Важные моменты в OSPF

  1. Внутренний протокол маршрутизации, который может иметь только одну автономную систему или ISP.
  2. Для отправки пакетов используется Multicast IP 224.0.0.5
  3. Можно разделить на несколько областей.
  4. Прежде чем обмениваться информацией, маршрутизатор сначала устанавливает связанные отношения.
  5. Этапы подключения при обмене OSPF данными между маршрутизаторами:
  • Down
  • Init
  • Attempt
  • 2Way
  • ExStart
  • ExChange
  • Full

Каждый маршрутизатор имеет идентификатор Router-id на основе IP-loopback или ручной конфигурации.

Используя OSPF, нам проще настроить сеть, которая требует настройки множества правил маршрутизации. Или существует много разных сетей, нам просто нужно ввести IP-сеть или сеть в каждом маршрутизаторе в конфигурацию OSPF, затем OSPF будет напрямую распространять ее на другие маршрутизаторы.

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

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