Inter-domain Routing Loops

    Редистрибуция маршрутов (route redistribution) – особая и горячо любимая экзаменационная тема Cisco. Свойства технологий таковы, что помимо хорошо известных нам петель маршрутизации (routing loops) в пределах одного домена/зоны существуют также петли между несколькими зонами в случае использования OSPF, а также петли между доменами в случае редистрибуции маршрутов из домена с одним протоколом маршрутизации в домен с другим.



    Я не нашел определения им ни в одном стандарте, потому буду называть их inter-domain routing loops. До недавнего времени эта особенность была обязательным элементом CCIE Lab Exam, но после обновления CCNP стала частью курса Route.

    Суть вопроса в том, что на границе двух доменов, во избежание образования single point of failure, может и должно существовать минимум два роутера. Но тогда маршрут, инжектированный в OSPF домен одним Autonomous System Boarder Router (ASBR), добирается до второго, и он инжектирует его обратно, в EIGRP домен, образуя в лучшем случае «длинный маршрут», а в худшем – петлю маршрутизации.

    Существует три способа предотвратить образование такой петли:
    1. С помощью большей метрики
    2. С помощью Administrative Distance
    3. С помощью фильтрации маршрутов
    Предлагаю поговорить о каждом из них, не вдаваясь очень глубоко в конфигурирование. Традиционно, понимание технологии – залог успешной конфигурации.

    Метод большей метрики


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

    Недостаток метода заключается в том, что эту самую «заведомо большую метрику» мы выбираем самостоятельно. И если по какой-то причине в домене появится маршрут с большей внутренней метрикой, возникнет та самая петля, от которой мы пытаемся избавиться.

    На иллюстрации показан пример использование этого метода, при котором EIGRP маршруты анонсируются в OFPS домен с метрикой 41026560, в то время как маршруты OSPF домена анонсируются в домен EIGRP с метрикой 500.



    До тех пор, пока в OSPF домене не будет внутренних метрик выше 500, а в EIGRP домене – выше 41026560, метод будет работать. После – нет. Самое сложное, конечно, заметить этот момент.

    Метрику при редистрибуции маршрутов можно устанавливать при помощи default metric:

    router eigrp 1
     default-metric 1500 10 255 1 1500
     redistribute ospf 1

    После этого все маршруты, которые инжектируются в EIGRP из OSPF домена, получают метрику, исходя из значений четырех из пяти заданных параметров:
    Bandwidth: 1500
    Delay: 10
    Reliability: 255
    Load: 1
    MTU: 1500

    Если же мы ходим разрешить редистрибуцию только части маршрутов, нужно использовать route map:

    ip prefix-list match-ospf seq 5 permit 172.16.102.0/23 ge 25 le 26
    ip prefix-list match-ospf seq 10 permit 172.16.106.0/23 ge 29 le 30
    !
    route-map set-metric permit 10
     match ip address prefix-list match-ospf
     set metric 100 4444 255 1 1500
    !
    router eigrp 1
     redistribute ospf 1 route-map set-metric

    Метод Administrative Distance


    Administrative Distance (AD) – значение, которое определяет, какой источник информации о маршруте имеет приоритет, если маршрут анонсирован из нескольких таких источников. При получении маршрута, перед тем, как сравнивать метрики, роутер смотрит значение AD. Если оно меньше – маршрут будет установлен в таблицу маршрутизации, даже если его метрика больше.

    Наша цель – заставить роутер выбирать внутренний маршрут. Помимо ненадежной метрики, это можно делать и манипулируя значениями AD.



    Так выглядит таблица AD для разных источников информации о маршрутах:
    Connected 0
    Static 1
    EIGRP summary route 5
    eBGP 20
    EIGRP (internal) 90
    IGRP 100
    OSPF 110
    IS-IS 115
    RIP 120
    On-Demand Routing (ODR) 160
    EIGRP (external) 170
    iBGP 200
    Unreachable 255
    Обратите внимание на различные AD для внешних и внутренних маршрутов EIGRP. Этот протокол прекрасен! Проектируя его, Cisco уже позаботилась о защите от образования таких петель, и по умолчанию внешние EIGRP маршруты имеют AD равную 170.

    В этом случае поведение роутеров в EIGRP домене будет таковым:



    Потому инженеры, обслуживающие EIGRP домен, могут и вовсе забыть об этой проблеме – она уже решена за них.

    В случае соседства с EIGRP инженерам OSPF домена тоже не о чем беспокоиться – механизм AD защищает и их сеть. Когда маршрут OSPF пройдет сквозь зону EIGRP и вернется ко второму ASBR, он будет инжектирован (фу-ты, слово-то какое, но уж извините – ничего лучше в голову не приходит) в OSPF домен как External EIGRP маршрут с AD равной 170. Об этой же маршруте ASBR знает по OSPF протоколу (он входит в обе зоны одновременно), а AD для OSPF равна 110. Потому в таблицу маршрутизации будет установлен внутренний OSPF маршрут, и петля образовываться не будет.

    Если же нужно указать AD императивно (соседство с RIP доменом, например), в OSPF это можно сделать так:

    router ospf 1
     distance ospf external 150
     redistribute rip

    Теперь все внешние маршруты, которые инжектируются в OSPF домен из RIP, будут иметь AD равную 150, что больше, чем внутренняя AD для OSPF. Образование петли предотвращено.

    Метод фильтрации маршрутов


    Суть метода сводится к тому, чтобы отфильтровывать на втором ASBR маршруты, которые инжектирует в домен первый ASBR, и не анонсировать их в домен-источник.



    Это можно сделать при помощи «тэгирования» маршрутов. При инжектировании в домен, первый ASBR присваивает маршруту метку. Второй ASBR, при инжектировании маршрутов в домен-источник, отфильтровывает «помеченные» маршруты и не анонсирует их.

    Конфигурирование решения выглядит так:

    Конфигурация ASBR 1:

    route-map set-tag-100 permit 10
     set tag 100
    !
    router ospf 1
     redistribute eigrp 1 subnets route-map set-tag-100

    Конфигурация ASBR 2:

    route-map stop-tag-100 deny 10
     match tag 100
    route-map stop-tag-100 permit 20
    !
    router eigrp 1
     redistribute ospf 2 metric 1000 200 255 1 1500 route-map stop-tag-100 
     no auto-summary

    По завершению конфигурации, маршруты с меткой 100, будут отфильтровываться ASBR 2 при редистрибуции в домен OSPF. И снова, inter-domain routing loops побеждены.
    Share post

    Similar posts

    Comments 17

      +1
      А вы сами часто встречали в реальной жизни, сети с 2-я этими протоколами?
        +2
        Редистрибуцию встречал в основном в MPLS VPN — там повсеместно. Ну, и BGP, конечно.
          0
          Не много видел mpls сетей, да и вообще слабо знаком с mpls, но почему то у меня было мнение, что в mpls сетях, используют один протокол по всей сети, и думалось мне, что такой протокол, как правило bgp. Или вы подразумеваете редистрибьюцию на стыке CE — C.
            0
            В Control Plane чистой MPLS сети никаким BGP и не пахнет. Там необходим любой из протоколов IGP для обмена маршрутами и LDP или RSVP для обмена метками.
            А вот если мы говорим об MPLS VPN, тогда да. На сцене появляется BGP. И то не везде, а только между парами PE-PE.
              0
              Я и подразумевал mpls vpn (см. предыдущий комментарий ). Но в любом случае я вас понял.
              0
              На отрезке CE-PE используется, как правило, какой-то IGP. После этого маршруты этого IGP инжектируются в BGP, чтобы передать их второму PE. Потом — из BGP снова в какой-то IGP, чтобы передать их второму CE.
            0
            на пост-советском пространстве в корпоративных сетях, как правило, все сводится к интервлан-роутингу на L3 свиче…
              0
              Это у каких же неучей такие «корпоративные сети»? Не путайте корпоративную сеть и набор проводов и железок с лампочками, администрируемый студентом 1го курса, прочитавшим первые две главы Олифера.
                0
                у меня в компании работает порядка 70 человек. Пока ограничиваемся именно интервлан-роутингом на 3560, удаленных офисов нет, все на одном сайте. Прочитал практически всего Одома, готовлюсь сдать ццна. Я неуч или нет? :)
                  0
                  гм, коллега, простите, а как вы натите? а если ipsec? а сколь-нибудь приличный кос? Вы не неуч, но это не корпоративная сеть, это поделка.
                    0
                    наружу у меня выглядывает 837-я кошка, организация небольшая и избыточность линков наверх не требуется.

                    ipsec тоже не используется — удаленных офисов/сотрудников нет.

                    собственно, даже виланы у меня используются исключительно для попиления бродкастов.
                  0
                  Мне кажется, тут имелось в виду все-таки не L3 коммутатор, а маршрутизатор на палочке (router on a stick). Такие схемы реально много где работают. И работают неплохо. Все зависит от задач. Зачем IGP, если нечего роутить, зачем QoS если нечего приоритезировать, etc.
              –1
              принцип KISS — «Keep It Simple Stupid» важнее высокоинтеллектуальной маструбации. В жизни такие схемы возможны, но в виде времянок. Например произошло слияние двух компаний. Важно на этих времянках долго не задерживаться — troubleshooting будет доставлять сверх меры ;)
                0
                схема реально возможна, как только сеть у вас перерастает размеры компании. Автору спасибо за наглядную переработку материала.
                  0
                  и кстати, данная схема всегда была частью курса BSCI, ныне Route
                    0
                    да, конечно, схема повсеместна (ну почти). большое спасибо автору за перевод Route, немного хотелось бы собственных изысканий, а так, я думаю будет очень полезно для многих.

                    а кто-нибудь может подскажет мне в следующем вопросе. Есть карта и access-list:

                    access-list 1 permit 192.168.1.0 0.0.0.255

                    route-map test permit 10
                    match ip address 1
                    set ip next-hop 10.1.1.1
                    route-map test permit 20

                    //далее вешаем карту на интерфейс:

                    ip policy route-map test

                    Суть проблемы заключается в том, ( сразу скажу, что не пробовал это на реально железе), а в gns3 почему-то все сети, не смотря на access-list 1 перенаправляются на next-hop 10.1.1.1, неужели недостаточно в конце карты permit 20 без подпараметров? или это баг gns3?

                      0
                      Если надо работать с разными сетями то работайте с префикс-листами

                      ip prefix-list 1 permit 192.168.1.0/24

                      route-map test permit 10
                      match ip address prefix-list 1
                      set ip next-hop 10.1.1.1

                      route-map test permit 20

                      кстати я видел редко 2 пермита так, в основном делают:

                      ip prefix-list 1 permit 192.168.1.0/24

                      route-map test deny 10 — не пропускать
                      match ip address prefix-list 1
                      set ip next-hop 10.1.1.1

                      route-map test permit 20 — пропускать все

                    Only users with full accounts can post comments. Log in, please.