1.5. Routing Instances

1. Protocol-Independent Routing

1.5. Routing Instances

В статье рассматриваются следующие темы:

  • Обзор Routing Instances
  • Master Routing Instance
  • User-Defined Routing Instances
  • Обмен маршрутами между таблицами маршрутизации
  • Маршрутизация между Routing Instances

Junos OS логически группирует таблицы маршрутизации, интерфейсы и параметры протоколов маршрутизации чтобы сформировать уникальные Routing Instances (Экземпляры маршрутизации). Маршрутная информация в одной Routing Instance хранится отдельно от маршрутной информации в другой Routing Instance. Использование Routing Instances предоставляе большую гибкость, т.к. одно физическое устройство (маршрутизатор например) можно представить как несколько логических.

Что-то это напоминает… Точно! VRF в оборудовании Cisco :-)
1-5-1

Итак Routing Instances бывают:

  • Master Routing Instance
  • User-Defined Routing Instances

Рассмотрим каждую более подробно.


Master Routing Instance

Этот дефолтный Unicast Routing Instance, который JunOS создаёт автоматически, включает в себя таблицу маршрутизации inet.0, которую маршрутизатор использует для unicast-маршрутизации IPv4.

JunOS создаёт и другие таблицы маршрутизации, такие как inet6.0, добавляет их в соответствующие Routing Instances и отображает их когда требуется конфигурацией.

JunOS создаёт ещё приватные (private) Routing Instances, которые устройство использует для внутренних соединений между hardware-компонентами устройства.

Просмотреть Routing Instances на маршрутизаторе можно командой:

user@R1> show route instance

1-5-2

Посмотреть отдельный Routing Instance можно добавив к вышеуказанной команде имя нужного Routing Instance:

user@R1> show route instance master

1-5-3


User-Defined Routing Instances

Эти Routing Instances создаются вручную на маршрутизаторе в «секции» конфигурации [edit routing-instances]. User-Defined Routing Instances бывают разных типов. Тип User-Defined Routing Instance задаётся при её создании. Наиболее часто используемые типы User-Defined Routing Instances:

  • forwarding: используется для  filter-based forwarding (FBF);
  • l2vpn: используется при реализации Layer 2 VPN;
  • no-forwarding: используется для разделения больших сетей на более маленькие;
  • virtual-router: используется для систем виртуализации;
  • vpls: используется при реализации point-to-multipoint LAN между несколькими сайтами в VPN;
  • vrf: используется при реализации Layer 3 VPN.

Следует учесть, что набор типов User-Defined Routing Instances зависит от используемого оборудования.


Пример настройки Routing Instances:

1-5-4

Проверка:

1-5-5

Первой командой просматриваем интерфейсы, принадлежащие Routing Instance с именем new-instance. Вторая команда «пингует» адрес 172.26.25.1, используя в качестве source для пакетов Routing Instance с именем new-instance. Ну и третья команда отображает содержимое таблицы маршрутизации, ассоциированной с Routing Instance new-instance.

Как только мы создали Routing Instance, и маршрутизатор изучил маршрутную информацию для этой Routing Instance, JunOS автоматически создаст таблицу маршрутизации. Если используется IPv4 маршрутизация, то создастся IPv4 unicast routing table. Имя созданной таблицы маршрутизации использует формат instance-name.inet.0, где instance-name — это имя созданного нами Routing Instance.

При использовании IPv6 в Routing Instance, JunOS создаст IPv6 unicast routing table, и присвоит ей имя в формате instance-name.inet6.0.


Обмен маршрутами между таблицами маршрутизации.

Для записи маршрутной информации в несколько таблиц маршрутизации одновременно используется routing information base (RIB) group. RIB group создаётся в «секции» конфигурации [edit routing-options] и в дальнейшем может быть использована в других «секциях» конфигурации.

В VPN’ах, multicast networks и FBF (filter-based forwarding) может потребоваться, чтобы маршрутизатор знал множественные топологии маршрутизации. По-этому необходимы раздельные таблицы маршрутизации на одном устройстве.

Помимо создания и использования RIB group для обмена маршрутной информацией между таблицами маршрутизации разных Routing Instances, можно использовать instance-import, instance-export и auto-export.

Создание RIB group:

1-5-6

RIB groups используются для записи маршрутной информации в несколько таблиц маршрутизации одновременно. import-rib в конфигурации может содержать несколько таблиц маршрутизации, в которые необходимо записать маршрутную информацию, причём первой в списке должна быть главная таблица маршрутизации, т.е. та таблица, в которую помещается маршрутная информация при отсутствии RIB groups. export-rib может содержать только одну таблицу маршрутизации, из которой маршруты должны быть заимствованы, и этой таблицей должна быть primary RIB. По-этому export-rib часто не пишут в конфигурировании RIB group.

После создания RIB group, можно применить её в других «секциях» конфигурации. Потенциально RIB group используется в interface routes, static routes, OSPF, IS-IS, RIP, BGP, Protocol Independent Multicast (PIM), and Multicast Source Discovery Protocol (MSDP).

Рассмотрим пример, в котором происходит обмен OSPF-маршрутами из таблицы маршрутизации inet.0 в таблицу маршрутизации test.inet.0:

[edit routing-options]
user@R1# show
rib-groups {
     TEST {
          import-rib [inet.0  test.inet.0];
     }
}
[edit protocols ospf]
user@R1# show
rib-group TEST;
area 0.0.0.0 {
     interface ge-0/0/1.0;
     interface lo0.0;
}

Проверить результат импорта OSPF-маршрутов из inet.0 в test.inet.0 можно просмотрев каждую из этих таблиц на предмет наличия в них OSPF-маршрутов:

1-5-7

Из результатов вывода 2-ух команд видно (подчёркнуто зелёным), что сеть 172.20.101.0/24 присутствует в таблице маршрутизации inet.0 в течение 30-ти секунд, а в таблице test.inet.0 — в течение 27-ми секунд, что говорит о том, что данная сеть была сначала установлена в inet.0, а потом импортирована в test.inet.0. Аналогичная ситуация с остальными сетями, полученными через OSPF.


Маршрутизация между Routing Instances.

1-5-8

Помимо обмена маршрутами между Routing Instances, можно настроить соединение между различными Routing Instances и маршрутизировать трафик между ними.

Соединение между различными Routing Instances может быть:

  • логическое
  • физическое

Для соединения 2-ух Routing Instances с помощью логического соединения необходимо создать логический туннельный интерфейс для каждого Routing Instance. Далее настраиваются отношения соседства между логическими туннельными интерфейсами чтобы получилось point-to-poin соединение.

Пример настройки логического туннельного интерфейса с 2-мя юнитами (каждый для отдельного Routing Instance):

[edit interfaces lt-0/0/0]
user@R1# show
unit 0 {
     encapsulation ethernet;
     peer-unit 1;
     family inet {
     }
}
unit 1 {
     encapsulation ethernet;
     peer-unit 0;
     family inet;
}

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

При конфигурировании туннельного интерфейса важно помнить, что:

  • инкапсуляция бывает следующих типов: Ethernet, Ethernet circuit cross-connect (CCC), Ethernet VPLS, Frame Relay, Frame Relay CCC, VLAN, VLAN CCC, or VLAN VPLS
  • protocol family может быть IP, IPv6, International Organizationfor Standardization (ISO), или MPLS
  • логические интерфейсы, между которыми настроены отношения соседства, должны принадлежать к тому же логическому туннельному интерфейсу, который получен из Tunnel Services PIC или Adaptive Services Module (не совсем понятно)
  • только один соседствующий unit может существовать у каждого логического интерфейса, т.е. unit 0 не может одновременно соседствовать и с unit 1 и с unit 2
  • чтобы задействовать логический туннельный интерфейс, необходимо настроить хотя бы один физический интерфейс.

Помимо логического туннельного интерфейса для соединения Routing Instances и маршрутизации между ними можно использовать физические интерфейсы. Для этой реализации необходимо 2 физических интерфейса (по одному на каждый Routing Instance). Физические интерфейсы настраиваются стандартным способом и каждый из них ассоциируется с соответствующим Routing Instance в иерархической «секции» конфигурации [edit routing-instance instance-name].

К оглавлению

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