четверг, 20 декабря 2012 г.

Настройка RIB-GROUP на оборудование Juniper Networks.


У многие сетевых специалистов плохо знакомых с операционной системой Junos, возникают вопросы по механизму работы и настройке rob-groups на оборудовании Juniper Networks. В данной статье мы постраемся кратко изложить основы данного механизма.
Как известно, в маршрутизаторах компании Juniper Networks, на платформах  M, T, MX – серий, имеется 8 предопределенных таблиц маршрутизации. Посмотреть данные таблицы можно с помощью команды в cli:
{master}
show route
Существуют следующие таблицы маршрутизации:
- inet.0 для unicast routes
- inet.1 для multicast routes
- inet.2 для MBGP routes c проверкой RPF (reverse path forwarding)
- inet.3 для MPLS routes
- inet.6 для IPv6 routes
- mpls.0 для MPLS next hops
- __juniper_private1__.inet.0
- __juniper_private1__.inet6.0



Для просмотра определенной таблицы маршрутизации можно ввести команду в cli:
{master}
show route table inet.0
По умолчанию таблицы маршрутизации создаются и отображаются, когда они необходимы. Например, если маршрутизатор не имеет IP информации любого типа, то таблицы не отображаются. Как только будет сконфигурирован IP address и активирован протокол маршрутизации, то автоматически появится таблица inet.0. Если будут сконфигурированы такие протоколы как RSVP, LDP,MPLS то создадутся таблицы inet.3 и mpls.0. При создании routing-instance инсталлируется таблица маршрутизации name.inet.0, где name имя routing-instance. Например, для просмотра таблицы маршрутизации VPN-A необходимо ввести команду в cli:
{master}
show route table VPN-A.inet.0
Помимо предопределенных таблиц маршрутизации в маршрутизаторах Juniper могут быть созданы и другие таблицы маршрутизации. Например, при настройки Layer 2 VPN, создается таблица bgp.l2vpn.0, при настройки Layer 3 VPN появляется таблица bgp.l3vpn.0, при настройки протокола маршрутизации ISIS появится таблица iso.0.

Часто у сетевых инженеров возникает задача копирования маршрутов из одной таблицы маршрутизации в другую.  Например, чтобы соединить двух клиентов CE-A и CE-B, подключенных к провайдеру связи PE, не помещая их в один VPN на PE.
Dозможно решить данную задачу несколькими способами. Рассмотрим их более подробно. Для наглядностибудем использовать следующую схему:
 
AUTO-EXPORT.
Команду auto-export необходимо прописать во всех vrf, маршрутами которых необходимо обменяться. Данная команда заставляет маршрутизатор анализировать комбинации политик vrf-import и vrf-export, а также атрибут vrf-target. При совпадении атрибута между разными vrf: vpn-a и vpn-b происходит обмен маршрутами.
[edit routing-instances]
vpn-a {
          instance-type vrf;
          interface ge-0/0/0.0;
          vrf-target target:65500:100;
          routing-option {
                                     auto-export;
            }
            protocols {
                         bgp {
                                  group ce-a {
                                            peer-as 65000;
                                            as-override;
                                            neighbor 1.1.1.2;

[edit routing-instances]
vpn-b {
          instance-type vrf;
          interface ge-0/0/3.0;
          vrf-target target:65500:100;
          routing-option {
                                     auto-export;
            }
            protocols {
                         bgp {
                                  group ce-b {
                                            peer-as 65000;
                                            as-override;
                                            neighbor 1.1.2.2;
RIB-GROUPS
Вторым возможным способом является создание rib-group. Вначале необходимо создать две rib-group. В примере rib-group a-to-b указывает из какой таблицы необходимо взять маршруты ( vpn-a.inet.0 ) и в какую таблицу их вставить (vpn-b.inet.0). Аналогично создается rib-group b-to-a только наоборот. Для фильтрации маршрутов можно использовать команду import-policy rib-policy. Для этого сначала необходимо создать политику rib-policy, в которой необходимо указать нужные префиксы, которые необходимо инсталлировать из одного vrf в другой. Следующим шагом необходимо применить rib-group внутри vpn, при этом rib-group  применяется к каждому протоколу из которого мы хотим передать маршруты. В нашем примере группа применяется на протокол bgp и direct.
routing-options {
        rib-groups  {
                a-to-b {
                import-rib [ vpn-a.inet.0 vpn-b.inet.0 ];
                import-policy rib-policy;
               }
               b-to-a {
               import-rib [ vpn-b.inet.0 vpn-a.inet.0 ];
              }
       }
   autonomous-system 65412;
routing-instances {
    vpn-a {
. . . . . . . . .
              routing-options {
                     interface-routes {
                         rib-group inet a-to-b;
                    }
                }
       protocols {
                   bgp {
                     group external;
                     family inet   {
                     unicast   {
                               rib-group a-to-b;
                           }
INSTANCE-IMPORT
Альтернативой использования rib-group является использование команды instance-import. Данный способ более легок в конфигурировании. Доступен в Junos release 5.4 и старше. В данном способе изначально необходимо создать политику в policy-options:
[ edit ]
user@PE# show policy-options
policy-statement vpn-a-import {
     from instance vpn-b;
     then accept;
}
В данной политике указываем из какого vrf будем брать маршруты, также можно фильтровать по префиксам. Затем применяем данную политику внутри vrf на import.
[ edit ]
user@PE# show routing-instances
vpn-a {
     instance-type forwarding;
     routing-options {
          static   {
              route 0/0 next-hop 1.1.2.2;
            . . . .
             }
           instance-import vpn-a-import;
        }

P.S. Если у Вас возникли вопросы по настройка данного механизма пишите по адресу:  support@ipnet4you.ru

Комментариев нет:

Отправить комментарий