Маршрутизация в Cisco

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Автор: Наташа Самойленко

На этой странице описываются настройки различных механизмов работы с протоколами динамической маршрутизации и др. на маршрутизаторах Cisco.

Тут описана краткая настройка специфических функций (не базовые настройки протоколов) для сравнения их настройки в различных протоколах. Рассматриваются отличия работы одинаковых функций в различных протоколах маршрутизации.

Описаны полезные команды для просмотра информации, касающейся маршрутизации. Полезные для поиска неисправностей и для понимания внутренней работы протоколов.

Более подробная информация о настройке конкретных протоколов маршрутизации описана на соответствующих страницах:

Содержание

[править] Отношения соседства

[править] Отношения соседства в RIP

[править] Отношения соседства в OSPF

Для того чтобы маршрутизаторы установили отношения соседства (adjacency), в hello-пакетах должны совпадать значения таких полей:

  • HelloInterval;
  • RouterDeadInterval;
  • Area ID;
  • Authentication — пароль использующийся для аутентификации. Маршрутизаторы не обязательно должны использовать аутентификацию, но если она используется, то пароли должны совпадать;
  • Stub area flag — необязательный флаг, который устанавливается на всех маршрутизаторах, которые принадлежат тупиковой зоне (stub area).

[править] Отношения соседства в EIGRP

Для того чтобы маршрутизаторы стали соседями должны выполняться такие условия:

  • маршрутизаторы должны пройти аутентификацию,
  • маршрутизаторы должны быть в одной AS,
  • отношения соседства должны устанавливаться на primary-адресах (когда приходит hello-пакет, маршрутизатор проверяет принадлежит ли адрес отправителя сети на primary-адресе интерфейса),
  • должны совпадать значения K-коэффициентов.

Для того чтобы маршрутизаторы стали EIGRP-соседями у них не обязательно должны совпадать Hello и Hold time.

Если на одном из маршрутизаторов изменены Hello или Hold time, то соседи этого маршрутизатора будут использовать эти значения. Для того чтобы сам маршрутизатор использовал другие значения, необходимо изменить таймер на соответствующем интерфейсе соседа.

[править] Отношения соседства в IS-IS

Условия формирования соседства.

  1. наличие L2(data-link)-транспорта (clns-резолвинг на NBMA-интерфейсах - FR, ATM);
  2. уровень соседства должен совпадать (L1, L2).
  3. в случае соседства на уровне L1, значение зоны в NET-адресе должно совпадать.
  4. Network Types на связующих интерфейсах должны совпадать.
    1. brodcast (выбирается DIS)
    2. point-to-point (не выбирается DIS).
  5. MTU на соседствующих интерфейсах
    1. совпадают;
    2. размер >= 1492 байт. Здесь понимается кусок кадра, относящийся к IS-IS (без data-link-заголовка). Это нужно, чтобы LSA, содержащие информацию о топологии, гарантированно проходили.

В целом, формирование соседства в IS-IS гораздо проще, чем в OSPF.
Оно осуществляется с помощью PDU, которые инкапсулируются в кадры канального уровня модели OSI. Поэтому протоколу не нужны даже ip-адреса, он может работать просто на L2-линках.
Значения hello и dead таймеров у соседей могут не совпадать.
Важной особенностью являются hello-PDU, поскольку их целью является не только поиск соседей и установление соседства, но и проверка MTU линка на достаточный размер. Эталонным L2-MTU считается значение 1518 байт. Заголовок L2 IEEE 802.3 SNAP составляет 26 байт. 1518-26=1492.
Чтобы гарантировать доступность MTU в 1492 байта, hello-сообщения содержат поле Padding, в котором с помощью добавления нулей достигается нужная длина. Чтобы сберечь пропускную способность линка, функцию padding в hello можно оставить только для первых hello, а для остальных отключить.

[править] Отношения соседства в BGP

Для того чтобы установить отношения соседства, в BGP надо настроить вручную каждого соседа.

BGP выполняет такие проверки, когда формирует отношения соседства:

  1. Маршрутизатор должен получить запрос на TCP-соединение с адресом отправителя, который маршрутизатор найдет указанным в списке соседей (команда neighbor).
  2. Номер автономной системы локального маршрутизатора должен совпадать с номером автономной системы, который указан на соседнем маршрутизаторе командой neighbor remote-as (это требование не соблюдается при настройках конфедераций).
  3. Идентификаторы маршрутизаторов (Router ID) не должны совпадать.
  4. Если настроена аутентификация, то соседи должны пройти её.

BGP выполняет проверку таймеров keepalive и hold, однако несовпадение этих параметров не влияет на установку отношений соседства. Если таймеры не совпадают, то каждый маршрутизатор будет использовать меньшее значение таймера hold.

[править] Выбор лучшего маршрута

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

Если необходимо сделать выбор между различными протоколами маршрутизации, то сравниваются значения administrative distance, которые присвоены соответствующим протоколам.

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

[править] Выбор лучшего маршрута в пределах одного протокола

[править] Выбор лучшего маршрута в RIP

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

RIP использует метрику hop. Максимально возможная метрика — 15, маршрут с метрикой 16 считается недостижимым. Из вышесказанного следует, что RIP не следует использовать в сетях с возможным количеством переходов более 15.

[править] Выбор лучшего маршрута в OSPF

OSPF, при выборе лучшего маршрута, учитывает два критерия — тип маршрута и стоимость маршрута.

OSPF использует метрику, которая называется стоимость (cost). Стоимость сравнивается у маршрутов одного типа.

Если маршрутизатору известны маршруты к одной и той же сети, но эти маршруты разных типов, то маршрутизатор выбирает наиболее приоритетный тип маршрута и не учитывает стоимость маршрута.

Различные типы маршрутов, в порядке убывания приоритета:

  • Внутренние маршруты зоны (intra-area)
  • Маршруты между зонами (interarea)
  • Внешние маршруты типа 1 (E1)
  • Внешние маршруты типа 2 (E2)

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

Стоимость присваивается интерфейсам маршрутизатора. Стоимость интерфейса высчитывается по формуле:

cost = reference bandwidth / link bandwidth
  • reference bandwidth — 108

Суммарная стоимость маршрута считается суммированием стоимости исходящих интерфейсов по пути передачи LSA.

Для того чтобы обозначить недоступную сеть, OSPF использует метрику равную 16777215 (224 —1), которая считается недостижимой метрикой для OSPF.

[править] Выбор лучшего маршрута в EIGRP

EIGRP, при выборе лучшего маршрута, учитывает два критерия — тип маршрута и метрику маршрута.

В первую очередь сравнивается тип маршрута, без учёта метрики. Внутренние маршруты EIGRP более приоритетные чем внешние (external).

Если известны разные маршруты одного типа, то сравнивается метрика маршрутов и выбирается маршрут у которого метрика меньше.

Метрика EIGRP основана на таких 5 компонентах (по умолчанию используются только два):

  • Bandwidth
  • Delay
  • Reliability
  • Loading
  • MTU

Формула вычисления метрики по умолчанию (более подробно об использовании других коэффициентов на странице EIGRP):

Metric = 256(107)/bandwidth + 256 (delay)

[править] Выбор лучшего маршрута в IS-IS

IS-IS, при выборе лучшего маршрута, учитывает два критерия — тип маршрута и метрику маршрута.

Если маршрутизатору известны маршруты к одной и той же сети, но эти маршруты разных типов, то маршрутизатор выбирает наиболее приоритетный тип маршрута и не учитывает метрику маршрута.

Различные типы маршрутов, в порядке убывания приоритета:

  • L1
  • L2
  • Внешние маршруты (external)

По умолчанию метрика на интерфейсах равна 10.

[править] Выбор лучшего маршрута в BGP

Характеристики процедуры выбора пути протоколом BGP:

  • В таблице BGP хранятся все известные пути, а в таблице маршрутизации — лучшие.
  • Пути выбираются на основании политик.
  • Пути не выбираются на основании пропускной способности.

На маршрутизаторе Cisco, если не настроены никакие политики выбора пути, выбор пути происходит таким образом (на каждый следующий шаг маршрутизатор переходит только при совпадении значений на предыдущем):

  1. Максимальное значение weight (локально для маршрутизатора).
  2. Максимальное значение local preference (для всей AS).
  3. Предпочесть локальный маршрут маршрутизатора (next hop = 0.0.0.0).
  4. Кратчайший путь через автономные системы.
  5. Минимальное значение origin code (IGP < EGP < incomplete).
  6. Минимальное значение MED (распространяется между автономными системами).
  7. Путь EBGP лучше чем путь IBGP.
  8. Выбрать путь через ближайшего IGP-соседа.
  9. Выбрать самый старый маршрут для EBGP-пути.
  10. Выбрать путь через соседа с наименьшим BGP router ID.
  11. Выбрать путь через соседа с наименьшим IP-адресом.

Icon-caution.gif

Только лучший путь помещается в таблицу маршрутизации и анонсируется BGP-соседям.

[править] Выбор лучшего маршрута между разными источниками

[править] Administrative distance

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

Administrative distance (AD) — это число присвоенное каждому из возможных источников маршрутов, которое является некой степенью доверия к источнику. В таблицу маршрутизации попадет маршрут от того источника у которого меньше значение AD. AD имеет только локальное значение и никак не влияет на принятие решения на других маршрутизаторах.

Значения administrative distance по умолчанию:

Источник маршрута Administrative Distance
Connected interface 0
Статический маршрут 1
Суммарный маршрут EIGRP 5
External BGP 20
EIGRP 90
IGRP 100
OSPF 110
IS-IS 115
RIP 120
EGP 140
External EIGRP 170
Internal BGP 200
Unknown 255

Изменение AD для протоколов RIP, OSPF, IS-IS:

dyn3(config-router)# distance <administrative distance> [address wildcard-mask [access-list-number | name]]

Параметры команды distance:

  • <administrative distance> — значение administrative distance. Значения по умолчанию в таблице
  • address wildcard-mask:
    • для RIP, EIGRP, IS-IS — IP-адрес интерфейса соседа, который анонсирует этот маршрут
    • для OSPF — RID маршрутизатора, который создал LSA для маршрута
  • [access-list-number | name] — новое значение AD будет установлено при совпадении с permit правилом в ACL

Изменение AD для протокола EIGRP:

dyn3(config-router)# distance eigrp <internal-distance> <external-distance>


[править] Суммирование маршрутов

Различают два варианта суммирования маршрутов:

  • автоматическое суммирование,
  • административное суммирование.

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

Cisco рекомендует использовать административное суммирование маршрутов, когда количество маршрутов в таблице маршрутизации достигает количество 300-500 маршрутов. Адресация в сети должна быть заранее спланирована таким образом, чтобы суммирование маршрутов можно было выполнить.

[править] Автоматическое суммирование сетей

Особенности работы классовых протоколов маршрутизации, касающиеся суммирования сетей:

  • Автоматическое суммирование сетей -- если маршрутизатор пересылает обновление о подсети, которая находится в разных классовых сетях с передающим интерфейсом, то пересылается классовая сеть. Маршрутизатор считает, что удаленный маршрутизатор использует маску по умолчанию для данного класса. Поэтому в пересылаемом обновлении не передается маска. Это процесс также называется автоматическое суммирование сетей на границе сети (имеется ввиду на границе классовой сети);
  • Классовые протоколы маршрутизации не позволяют суммировать сети в других точках сети в пределах адресного пространства классовой сети;
  • При использовании классового протокола маршрутизации необходимо чтобы маска всех подсетей из одной классовой сети была одинаковая:
    • Если маршрутизатор пересылает обновление о подсети, которая находится в той же классовой сети, что и передающий интерфейс, то пересылается подсеть. Маршрутизатор считает, что у интерфейса и пересылаемой сети одинаковая маска.
    • Маршрутизатор, который получает такое обновление также считает, что маска одинаковая. Если на самом деле маска была другой, то у маршрутизаторов будет некорректная информация о сети.

Протоколы RIPv2 и EIGRP по умолчанию работают как классовые протоколы маршрутизации. Однако это поведение можно изменить, отключив автоматическое суммирование сетей.

Отключение автоматического суммирования сетей:

router(config-router)# no auto-summary

[править] Правила административного суммирования маршрутов

Для RIP, EIGRP и OSPF работают такие общие правила при суммировании маршрутов:

  • Метрика суммарного маршрута — минимальная метрика (лучшая метрика) из всех маршрутов, которые суммируются;
  • Маршрутизатор не анонсирует маршруты входящие в суммарный;
  • Когда последний специфический маршрут, который был объединен в суммарный, пропадет из таблицы маршрутизации (на маршрутизаторе на котором выполняется суммирование), пропадет и суммарный маршрут;
  • При создании суммарного маршрута, маршрутизатор автоматически добавляет в таблицу маршрутизации этот суммарный маршрут с next-hop указывающим на null0.

[править] Суммирование маршрутов в RIP

Настройка суммарного маршрута:

router(config-if)# ip summary-address rip 10.1.1.0 255.255.255.0

RIP не позволяет настраивать суммарный маршрут с маской, которая меньше классовой (supernet). Например, нельзя настроить суммарный маршрут 10.0.0.0/6:

router(config-if)# ip summary-address rip 10.0.0.0 252.0.0.0
Summary mask must be greater or equal to major net

OSPF и EIGRP такое сделать позволяют.

У каждого суммарного маршрута настроенного на интерфейсе маршрутизатора должна быть уникальная классовая сеть. RIP не позволяет настраивать несколько суммарных подсетей из одной классовой сети на одном интерфейсе. Например, такие суммарные маршруты не разрешены:

interface FastEthernet 0/0
  ip summary-address rip 10.1.0.0 255.255.0.0
  ip summary-address rip 10.2.0.0 255.255.0.0 

[править] Суммирование маршрутов в OSPF

Суммарный маршрут для зоны (настраивается на ABR):

dyn3(config-router)# area <area-id> range <address> <mask> [advertise | not-advertise] [cost <cost>]

Суммарный внешний маршрут (настраивается на ASBR):

dyn3(config-router)# summary-address <ip-address> <mask> [not-advertise] [tag <tag>]

[править] Суммирование маршрутов в EIGRP

Отключение автоматического суммирования маршрутов:

dyn3(config-router)#no auto-summary

Суммарный маршрут настраивается на интерфейсе:

dyn3(config-if)#ip summary-address eigrp <AS-number> <address> <mask> [admin-distance]

По умолчанию у суммарного маршрута EIGRP administrative distance — 5. AD суммарного маршрута используется для того чтобы определить помещать ли null route для суммарного маршрута в таблицу маршрутизации.

[править] Суммирование маршрутов в BGP

Создание суммарного маршрута:

dyn3(config-router)# aggregate-address address mask [as-set] [summary-only]
[suppress-map map-name] [advertise-map map-name] [attribute-map map-name] 

[править] Маршрут по умолчанию

Способ создания маршрута по умолчанию RIP OSPF EIGRP
Перераспределение маршрута по умолчанию из другого протокола Поддерживает Поддерживает Поддерживает
Статический маршрут по умолчанию (0.0.0.0) и перераспределение его командой redistribute static Поддерживает Не поддерживает Поддерживает
Команда default-information originate Поддерживает Поддерживает Не поддерживает
Команда ip default-network Поддерживает Не поддерживает Поддерживает
Использование суммарных маршрутов Не поддерживает Не поддерживает Поддерживает


[править] Команда default-information originate

Синтаксис команды:

dyn3(config-router)# default-information originate [always] [metric <metric-value>] 
[metric-type <type-value>] [route-map <map-name>]

Характеристики команды для OSPF:

  • Информация распространяется только если маршрут по умолчанию присутствует в таблице маршрутизации (это можно обойти с помощью параметра always);
  • Перераспределяет любой маршрут по умолчанию найденный в таблице маршрутизации (статический или полученный по другому протоколу маршрутизации);
  • По умолчанию метрика маршрута будет 1, а тип маршрута — E2;
  • С параметром always OSPF может анонсировать маршрут по умолчанию независимо от того есть он в таблице маршрутизации или нет.

Характеристики команды для RIP:

  • RIP будет анонсировать маршрут по умолчанию, если маршрута по умолчанию нет в таблице маршрутизации

[править] Команда ip default-network

используется, когда роутинг на маршрутизатоге включен. Когда Вы конфигурируете ip default-network, маршрутизатор рассматривает маршрут к этой сети как шлюз, назначенный для роутинга по умолчанию. Обратите внимание, что так назначается classfull routing.

[править] Объекты для работы с маршрутами

Маршрут это комбинация сеть/маска, а также атрибуты маршрута, такие как метрика. Не все объекты умеют работать со всеми частями маршрута.

Для работы с маршрутами есть несколько объектов:

  • access-list (ACL)
  • prefix-list
  • route-map
  • distribute list

Объекты могут использоваться для:

  • перераспределения маршрутов
    • фильтрация
    • изменение атрибутов маршрутов
  • маршрутизации на основе политик (PBR)
  • политики BGP
    • фильтрация
    • изменение атрибутов маршрутов

Ниже описано какие объекты могут использоваться, для каких функций.

Note-icon.gif

PBR рассматривается отдельно, так как фактически это не работа с маршрутами, а перенаправление самого трафика.

[править] Access-list

ACL могут использоваться для:

  • фильтрации маршрутов при перераспределении
  • в PBR для перенаправления трафика по заданным правилам

При использовании ACL важно помнить, что они работают только с сетью в маршруте. То есть, они не умеют работать со значением маски, а также не могут работать с атрибутами маршрута. В некоторых случаях это свойство может быть существенным недостатком.

Для работы с сетью и маской, используется объект prefix-list.

[править] Prefix list

Prefix-list позволяет работать с сетью и маской в маршруте. Поэтому, с его помощью можно более точно указывать маршруты, к которым применяются правила.

Prefix-list может использоваться для:

  • фильтрации маршрутов при перераспределении
  • в политиках BGP для фильтрации маршрутов
  • в route-map для политик BGP, где prefix-list позволяет указать с какими маршрутами работает route-map


В каждом prefix list может быть несколько команд prefix-list, каждой из которых присвоен порядковый номер. Когда маршрутизатор обрабатывает prefix list, он просматривает все команды в соответствии с порядковыми номерами команд. Каждой команде соответствует действие permit или deny.

Синтаксис команды:

ip prefix-list <list-name> [seq <value>] <deny|permit> <network/length> [ge <value>] [le <value>]

Объяснение логики команды prefix-list на примере сети 10.0.0.0/8:

  • ip prefix-list 1 permit 10.0.0.0/8 — только сеть 10.0.0.0/8,
  • ip prefix-list 1 permit 10.0.0.0/8 le 11 — маршруты у которых первый октет 10, и префикс от 8 до 11,
  • ip prefix-list 1 permit 10.0.0.0/8 ge 11 — маршруты у которых первый октет 10, и префикс от 11 до 32,
  • ip prefix-list 1 permit 10.0.0.0/8 ge 11 le 13 — маршруты у которых первый октет 10, и префикс от 11 до 13.

[править] Distribute list

Distribute list не являются самостоятельными объектами как ACL, prefix-list, route-map. Фактически, distribute list это команда для применения других объектов (как access-list команда для создания ACL, а access-group команда для применения).

Distribute list могут использоваться для фильтрации и для перераспределения маршрутов. В это разделе рассматривается использование distribute list для фильтрации маршрутов.

Для перераспределения маршрутов удобнее использовать другие объекты.

[править] Distribute list для RIP, EIGRP

Distribute list во входящем направлении (in) используется для фильтрации сетей полученных в обновлениях:

router(config-router)# distribute-list <access-list-number | route-map map-tag | 
prefix prefix-list-name> in [interface-type interface-number] 

Если не указывать к какому интерфейсу применить distribute list, то он будет применён ко всем интерфейсам.

Distribute list в исходящем направлении (out) используется для фильтрации сетей, которые будут отправлены в обновлениях этого маршрутизатора:

router(config-router)# distribute-list <access-list-number | route-map map-tag | 
prefix prefix-list-name> out [interface-name | routing-process | as-number] 

[править] Distribute list для OSPF

Для OSPF использование distribute list отличается от остальных протоколов, так как OSPF не анонсирует маршруты в сети, а анонсирует информацию о топологии. Фильтрация LSA будет означать, что у маршрутизаторов в зоне будут отличаться LSDB и это приведет к сбоям в маршрутизации трафика.

Правила использования distribute list для OSPF:

  • Distribute list может использоваться только во входящем направлении, потому что в исходящем направлении будут фильтроваться LSA, а не маршруты.
  • Distribute list во входящем направлении не фильтрует входящие LSA. Он фильтрует маршруты, которые OSPF помещает в таблицу маршрутизации.
  • Если distribute list указывает входящий интерфейс, то входящий интерфейс проверяется таким образом, как-будто он исходящий интерфейс для маршрута.
router(config-router)# distribute-list <access-list-number | route-map map-tag | 
prefix prefix-list-name> in [interface-type interface-number] 

[править] Route maps

Route-map это более сложные объект, чем все предыдущие. Route map может использовать ACL и prefix list, а также может менять атрибуты маршрутов.

Route-map может использоваться для:

  • фильтрации маршрутов при перераспределении и изменения атрибутов маршрута
  • в политиках BGP для фильтрации маршрутов и изменения их атрибутов
  • в PBR для перенаправления трафика по заданным правилам


В каждой route map может быть несколько команд route-map, каждой из которых присвоен порядковый номер. Когда маршрутизатор обрабатывает route map, он просматривает все команды в соответствии с порядковыми номерами команд.

В каждой команде route-map указано действие permit или deny. Кроме того, с помощью команды match указываются параметры которые должны быть у маршрута для того чтобы он совпал с правилом. Для того чтобы указать весь трафик, в команде route-map просто не надо указывать команду match.

Если после параметра match идет несколько опций, то к ним применяется логика или, то есть должен совпасть один из перечисленных параметров. Если задано несколько параметров match в отдельных строках, то к ним применяется логика и, то есть должны совпасть все параметры.

В каждой команде route-map может быть одна или более команд set, которые используются для изменения каких-либо параметров проходящих маршрутов.

[править] Использование route map для перераспределения маршрутов

Когда route map используется для перераспределения маршрутов, то команда route-map с параметром permit указывает на маршруты, которые будут перераспределены, а route-map с deny на маршруты, которые не будут перераспределяться.

Для перераспределения маршрутов используются такие параметры команды match:

  • match interface — проверяется исходящий интерфейс маршрутов,
  • match ip address — с помощью ACL или prefix-list указывается какой префикс должен быть у маршрута,
  • match ip next-hop — проверяется next-hop адрес маршрута,
  • match ip route-source — проверяется IP-адрес маршрутизатора, который анонсирует маршрут,
  • match metric — проверяется метрика маршрута,
  • match route-type — проверяется тип маршрута (external, internal, level-1, level-2, local, nssa-external),
  • match tag — проверяется тег установленный для маршрута ранее.

Для перераспределения маршрутов используются такие параметры команды set:

  • set level — указывает в какую базу данных будет перераспределен маршрут (level-1, level-2, level-1-2, stub-area, backbone)
  • set metric — устанавливает метрику маршрута,
  • set metric-type — устанавливает тип маршрута для OSPF и IS-IS (external, internal, type-1, type-2),
  • set tag — устанавливает тег для маршрута.

[править] Маршрутизация на основе политик (policy based routing)

Маршрутизация на основе политик (policy based routing, PBR) позволяет маршрутизировать трафик на основании заданных политик, тогда как в обычной маршрутизации, только IP-адрес получателя определяет каким образом будет передан пакет.

Основная страница: Cisco PBR

[править] Перераспределение маршрутов (route redistribution)

Перераспределение маршрутов (route redistribution) — передача маршрутов, выученных с помощью одного протокола маршрутизации, в другой протокол маршрутизации. Кроме того, статические маршруты или непосредственно присоединенные сети, также могут быть перераспределены и, после этого, будут передаваться с помощью соответствующего протокола маршрутизации.

Перераспределение маршрутов возможно только между протоколами которые поддерживают один и тот же стек протоколов.

Для того чтобы перераспределить маршруты из одного источника в другой, должна быть как минимум одна точка где они перераспределяются. То есть, должен быть маршрутизатор, который это выполняет. Например, если перераспределяются маршруты протокола OSPF в маршруты EIGRP, то на таком маршрутизаторе должны быть настроены оба протокола, а затем правила перераспределения маршрутов из одного протокола в другой.

Если настроено перераспределение маршрутов из определенного протокола маршрутизации, то маршрутизатор перераспределит:

  • маршруты в таблице маршрутизации, которые были выучены по это протоколу,
  • все connected маршруты, которые указаны в команде network этого протокола.

Для разных протоколов перераспределение маршрутов настраивается по-разному. Например, для одних протоколов указание метрики маршрута обязательно, а для других нет (детали настройки для разных протоколов описаны ниже).

[править] Начальная метрика (seed metric)

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

Варианты задания начальной метрики в порядке убывания приоритета (если метрика указана несколькими методами, то будет использоваться метрика с более высоким приоритетом):

  1. В route map указать метрику командой set metric
  2. Задать metric в команде redistribution
  3. Настройка default-metric в режиме настройки протокола маршрутизации

Значения по умолчанию начальной метрики для перераспределенных маршрутов в различных протоколах:

Протокол Начальная метрика по умолчанию
OSPF 20 для всех кроме BGP, для BGP 1
BGP IGP metric
RIP 0 (Infinity)
EIGRP 0 (Infinity)
IS-IS 0

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

Note-icon.gif

Исключение из правила увеличения метрики — маршруты OSPF E2, метрика которых сохраняется неизменной во всей автономной системе.

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

[править] Default-metric

Задание начальной метрики с помощью default-metric для всех перераспределенных маршрутов:

dyn3(config-router)# default-metric <metric-value>

[править] Перераспределение непосредственно присоединенных маршрутов (redistribute connected)

Когда настроено перераспределение маршрутов из какого-то протокола маршрутизации, то перераспределяются:

  • маршруты в таблице маршрутизации, которые были выучены по этому протоколу,
  • все connected маршруты, которые указаны в команде network этого протокола

Если вместе с перераспределением из протокола маршрутизации, настроена также перераспределение присоединенных маршрутов с фильтром, то эта команда более приоритетная по отношению к присоединенным маршрутам. И именно она контролирует какие маршруты будут перераспределены.

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

Пример фильтра:

router rip
 redistribute ospf metric 2
 redistribute connected route-map CONNECTED metric 3
!
route-map CONNECTED permit 10
match interface loopback 0

[править] Перераспределение маршрутов в RIP

Перераспределение маршрутов в RIP:

dyn3(config-router)# redistribute <protocol> [process-id] [match <route-type>] 
[metric <metric-value>]  [route-map <map-tag>]

Параметры команды redistribute:

  • <protocol> — протокол, маршруты которого перераспределяются в RIP
  • match <route-type> — команда для перераспределения маршрутов OSPF в другие протоколы. Позволяет указать тип маршрутов OSPF, которые будут перераспределены:
    • external 1
    • external 2
    • internal
    • nssa-external
  • metric <metric-value> — метрика, которая будет использоваться для перераспределенных маршрутов. По умолчанию равна 0, это приводит к тому, что маршрут не перераспределяется
  • route-map <map-tag> — указывает на карту маршрута, которая используется для фильтрации маршрутов, которые будут перераспределены в RIP

На маршрутизаторе, который выполняет перераспределение маршрутов, можно локально посмотреть какие маршруты были перераспределены в RIP:

router# sh ip rip database | i redistributed

[править] Перераспределение маршрутов в OSPF

Перераспределение маршрутов в OSPF:

dyn3(config-router)# redistribute <protocol> [process-id] [metric <metric-value>] 
[metric-type <type-value>] [route-map <map-tag>] [subnets] [tag <tag-value>]

Параметры команды redistribute:

  • <protocol> — протокол, маршруты которого перераспределяются в OSPF
  • metric <metric-value> — метрика, которая будет использоваться для перераспределенных маршрутов. По умолчанию равна 20, для BGP — 1.
  • metric-type <type-value> — позволяет указать в какой тип маршрутов OSPF будут перераспределены маршруты другого протокола:
    • 1 — external type 1
    • 2 — external type 2. Значение по умолчанию
  • route-map <map-tag> — указывает на карту маршрута, которая используется для фильтрации маршрутов, которые будут перераспределены в OSPF
  • subnets — указывает, что маршруты разбитые на подсети также должны перераспределяться. По умолчанию такие маршруты не перераспределяются
  • tag <tag-value> — 32-битное значение, которое присоединяется к каждому внешнему маршруту. OSPF этот параметр не использует, но он может использоваться ASBR при передаче информации между автономными системами

[править] Перераспределение маршрутов в EIGRP

Перераспределение маршрутов в EIGRP:

dyn3(config-router)# redistribute <protocol> [process-id] [match <route-type>]
[metric <metric-value>] [route-map <map-tag>]

Параметры команды redistribute:

  • <protocol> — протокол, маршруты которого перераспределяются в EIGRP
  • match <route-type> — команда для перераспределения маршрутов OSPF в другие протоколы. Позволяет указать тип маршрутов OSPF, которые будут перераспределены:
    • external 1
    • external 2
    • internal
    • nssa-external
  • metric <metric-value> — метрика, которая будет использоваться для перераспределенных маршрутов. По умолчанию равна 0, это приводит к тому, что маршрут не перераспределяется. Исключение — перераспределение из EIGRP
  • route-map <map-tag> — указывает на карту маршрута, которая используется для фильтрации маршрутов, которые будут перераспределены в EIGRP

Note-icon.gif

При распределении из одного процесса EIGRP в другой процесс EIGRP, метрика маршрутов сохраняется. В этом случае можно не задавать начальную метрику.

При распределении из других протоколов метрику задавать обязательно.

[править] Перераспределение маршрутов в IS-IS

Перераспределение маршрутов в IS-IS:

dyn3(config-router)# redistribute <protocol> [process-id] [level <level-1 | level-1-2 | level-2-only>]
[match <route-type>] [metric <metric-value>] [metric-type <type-value>] [route-map <map-tag>]

Параметры команды redistribute:

  • <protocol> — протокол, маршруты которого перераспределяются в IS-IS
  • level <level-1 | level-1-2 | level-2-only> — уровень присвоенный перераспределенным маршрутам. По умолчанию уровень 2
  • match <route-type> — команда для перераспределения маршрутов OSPF в другие протоколы. Позволяет указать тип маршрутов OSPF, которые будут перераспределены:
    • external 1
    • external 2
    • internal
    • nssa-external
  • metric <metric-value> — метрика, которая будет использоваться для перераспределенных маршрутов. По умолчанию равна 0, но для IS-IS, в отличие от EIGRP и RIP, маршрут перераспределяется
  • metric-type <type-value> — позволяет указать в какой тип маршрутов IS-IS будут перераспределены маршруты другого протокола:
    • internal. Значение по умолчанию
    • external
  • route-map <map-tag> — указывает на карту маршрута, которая используется для фильтрации маршрутов, которые будут перераспределены в IS-IS

[править] Пассивный интерфейс (passive interface)

Контроль обновлений протоколов динамической маршрутизации.

Командой passive-interface задаются интерфейсы на которые не будут отправляться обновления информации о маршрутах.

[править] Общие настройки

[править] Просмотр таблицы маршрутизации

Параметр longer-prefixes позволяет отображать только те маршруты из таблицы маршрутизации, у которых совпадает указанный префикс. Эту опцию удобно использовать в тех случаях, когда таблица маршрутизации большая и всю её неудобно просматривать.

Просмотр маршрутов, которые совпадают с указанным префиксом (в примере 192.168.0.0/16):

dyn5# sh ip route 192.168.0.0 255.255.0.0 longer-prefixes

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet0/0
C    192.168.5.0/24 is directly connected, FastEthernet1/0
C    192.168.100.0/24 is directly connected, Loopback1

Пример для того же маршрутизатора, но с префиксом 192.168.4.0/22:

dyn5# sh ip route 192.168.4.0 255.255.252.0 longer-prefixes 
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.4.0/24 is directly connected, FastEthernet0/0
C    192.168.5.0/24 is directly connected, FastEthernet1/0

Суммарная информация о таблице маршрутизации:

dyn1# sh ip route summary 
IP routing table name is Default-IP-Routing-Table(0)
IP routing table maximum-paths is 16
Route Source    Networks    Subnets     Overhead    Memory (bytes)
connected       5           1           432         816
static          1           1           144         272
ospf 1          2           5           504         952
  Intra-area: 7 Inter-area: 0 External-1: 0 External-2: 0
  NSSA External-1: 0 NSSA External-2: 0
bgp 100         9           3           864         1632
  External: 0 Internal: 12 Local: 0
internal        4                                   4624
Total           21          10          1944        8296

Более подробная информация о маршруте или проверка наличия маршрута в таблице маршрутизации:

dyn1# sh ip route 192.168.10.0
Routing entry for 192.168.10.0/24
  Known via "bgp 100", distance 200, metric 0
  Tag 8, type internal
  Last update from 192.168.7.8 1w5d ago
  Routing Descriptor Blocks:
  * 192.168.7.8, from 199.4.4.4, 1w5d ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 8

[править] Обновление таблицы маршрутизации

Удаление всех маршрутов из таблицы маршрутизации (при удалении маршрутов отношения соседства не затрагиваются):

dyn5# clear ip route *

[править] ip classless

Команда ip classless влияет на то каким образом маршрутизатор будет просматривать таблицу маршрутизации:

  • если команда ip classless выключена:
    • если в таблице маршрутизации нет маршрута к подсети получателя, но есть соответствующая классовая сеть с маршрутами в другие подсети, то пакеты будут отброшены;
  • если команда ip classless включена:
    • если в таблице маршрутизации нет маршрута к подсети получателя, то соответствующая классовая сеть не считается совпадением и пакеты будут отправлены по маршруту по умолчанию.

Включение ip classless:

dyn3(config)# ip classless

[править] IP source routing

IP source routing функция которая позволяет отправителю указать через какие маршрутизаторы должен пройти пакет. Для этого используется поле IP Options.

Для того чтобы маршрутизатор отбрасывал любые входящие пакеты в которых установлена эта опция, необходимо дать команду:

no ip source-route

[править] ip route profile

router(config)# ip route profile
router# show ip route profile

[править] Просмотр настроек и поиск неисправностей

Вопросу поиска неисправностей посвящена отдельная страница. Отдельный раздел (Поиск неисправностей в настройках маршрутизации) на ней выделен вопросу поиска неисправностей в настройках маршрутизации.

Основная страница: Cisco/Troubleshooting

[править] Дополнительная информация