Основы и возможности — различия между версиями
imported>Artem (→4.1.2 Топологическая таблица) |
imported>Artem (→4.1.2 Топологическая таблица) |
||
| Строка 111: | Строка 111: | ||
Перерасчёт происходит когда текущий маршрут к получетелю (т.е. другими словами - соседний маршрутизатор) падает, и у нашего роутера нет FS для destination. Хотя процесс перерасчёта не особо требователен к ресурсам процессора, всё-таки следует его избегать, т.к. он влияет на время конвергенции. <br /> | Перерасчёт происходит когда текущий маршрут к получетелю (т.е. другими словами - соседний маршрутизатор) падает, и у нашего роутера нет FS для destination. Хотя процесс перерасчёта не особо требователен к ресурсам процессора, всё-таки следует его избегать, т.к. он влияет на время конвергенции. <br /> | ||
| − | Маршрутизатор инициирует пересчет отправляя запрос (отправляет query packet) каждому соседнему маршрутизатору. Если у соседа есть маршрут к destination, то он отвечает (отправляет reply packet), если маршрута нет — сосед отправляет запрос своим соседям. В это случае маршрут на соседе переходит в состояние "активный" и маршрутизатор не может обмениваться с другими маршрутизаторами этим маршрутом. | + | Маршрутизатор инициирует пересчет отправляя запрос (отправляет query packet) каждому соседнему маршрутизатору. Если у соседа есть маршрут к destination, то он отвечает (отправляет reply packet), если маршрута нет — сосед отправляет запрос своим соседям. В это случае маршрут на соседе переходит в состояние "активный" и маршрутизатор не может обмениваться с другими маршрутизаторами этим маршрутом. <br /> |
| + | Маршрутизаторы, которые не имеют других соседей и маршрутизаторы, которые знают, что маршрут недоступен (не знаю о нём?) отвечают за запросы сразу, сообщая, что маршрут недоступен. Когда маршрутизатор получает ответы (reply) на все запросы (query), он отвечает на запросы соседа и так далее (один соседа, тот запрашивает своих, те своих и т.д.) | ||
====4.1.3 Таблица маршрутизации==== | ====4.1.3 Таблица маршрутизации==== | ||
Версия 14:04, 8 февраля 2012
EIGRP (Enhanced Interior Gateway Routing Protocol) является собственным протоколом маршрутизации Cisco. Его называют гибридным, т.к. он объединяет в себе лучшее из дистанционно-векторных (distance-vector) протоколов с алгоритмами протоколов состояния канала (link-state).
EIGRP имеет преимущества по сравнению с устаревшими дистанционно-векторными протоколами, такими как RIPv1 и IGRP, предлагая быструю сходимость, низкое использование полосы пропускания, поддержку IP, IPX и AppleTalk, поддержку бесклассовой маршрутизации CIDR и масок подсетей переменной длины VLSM. Для достижения некоторых из этих преимуществ, EIGRP использует особенности link-state протоколов, например частичные обновления (partial update) и обнаружение соседей (neighbor discovery).
Содержание
1. Особенности EIGRP
EIGRP имеет следующие ключевые особенности:
- Быстрая сходимость - Используется DUAL. Маршрутизатор EIGRP сохраняет всех своих соседей в таблице, что позволяет быстро находить альтернативные маршруты в случае пропадания основных. Если соответствующий маршрут не найден в локальной таблице маршрутизации, и нет запасного маршрута, то маршрутизатор опрашивает соседей о наличии альтернативных маршрутов. Запросы будут рассылаться маршрутизатором до тех пор, пока не будет получен маршрут или обнаружится, что маршрута не существует.
- Поддержка VLSM - EIGRP является протоколом бесклассовой маршрутизации. Это означает, что маршрутизатор включает в объявления маску подсети. EIGRP автоматически суммирует маршруты до границы класса, однако предусматривает настройку суммаризации до любой границы на любом интерфейсе.
- Частичные обновления - EIGRP посылает частичные тригерные обновления, а не периодические. Обновления посылаются только при изменениях пути или метрики маршрута и содержат информацию только об этих изменениях линка, а не полные таблицы маршрутизации. Частичные обновления рассылаются только тем маршрутизаторам, которые в них нуждаются.
- Поддержка нескольких протоколов сетевого уровня - EIGRP поддерживает IPv4, IPv6, AppleTalk и Novell NetWare IPX используя PDM (protocol-dependent modules), отвечающие за требования протокола, которые специфичны для сетевого уровня. Быстрая сходимость EIGRP и сложная структура метрик предлагает большую производительность и стабильность при внедрении IP, IPv6 IPX и AppleTalk в сети.
- Независимость от протоколов канального уровня и топологии - EIGRP не нуждается в дополнительной конфигурации для работы через Layer 2 протоколы. Другие протоколы, такие как OSPF, используют различные настройки для различных канальных протоколов (например, Ethernet и Frame Relay). EIGRP эффективно функционирцет как в LAN, так и в WAN окружении, приспосабливается к различным скоростям и средам.
- Сложная метрика - Используется тот же алгоритм для расчёта метрики, что и в IGRP, но представляет значения в 32-битном формате, а не 24-битном. Метрика EIGRP рассчитывается на основе полосы пропускания и задержки. Однако, существует возможность вовлечь в процесс расчета метрики надежность, загрузку и MTU. Для балансировки может использовать маршруты с разными метриками.
- Использование мультикаста и юникаста - Обновления используют многоадресные (multicast) и одноадресные (unicast) пакеты вместо широковещательных. EIGRP multicast-адрес - 224.0.0.10. В результате, EIGRP потребляет значительно меньшую часть полосы пропускания канала по сравнению с IGRP.
Все сообщения EIGRP инкапсулируются в IP-пакеты, номер EIGRP в поле protocol IP-пакета — 88. (TCP - 6, UDP - 17).
2. Процессы и технологии в основе EIGRP
EIGRP содержит четыре модуля, которые отличают его от других протоколов маршрутизации:
- PDM
- RTP
- Обнаружение соседей и восстановление (Neighbor discovery/recovery mechanism)
- DUAL
2.1. PDM. Протокол-зависимые модули
PDM (Protocol-depended modules) удовлетворяют запросы протоколов сетевого уровня. Каждый из поддерживаемых протоколов сетевого уровня (IP, IPX или AppleTalk) имеет свой модуль, функционирующий отдельно от остальных.
IP-EIGRP модуль, например, отвечает за передачу и прием EIGRP-пакетов, в которые инкапсулируется поток IP. IP-EIGRP отвечает также за разбор EIGRP-пакетов и информировании DUAL о полученной информации. IP-EIGRP запрашивает от DUAL принятие решения о маршруте, результаты которого сохраняются в таблице маршрутизации для IP. IP-EIGRP отвечает за распределение маршрутов, изученных через IP-протокол.
2.2. RTP. Надежный транспортный протокол
RTP (Reliable Transport Protocol) отвечает за доставку EIGRP-пакетов всем соседям. RTP поддерживает multicast и unicast адресацию. Для эффективности только некоторые EIGRP-пакеты передаются надежным способом.
Например, в рамках Ethernet сети или другой сети с множественным доступом нет необходимости надежно передавать hello-пакеты каждому соседу в отдельности. Вместо этого, EIGRP посылает один multicast hello-пакет, содержащий индикатор, который информирует получателя, что данный пакет не нуждается в подтверждении. Другие виды пакетов, такие как пакет обновления, помечаются как нуждающиеся в подтверждении о получении.
RTP придерживается мнения, что multicast пакеты рассылаются быстрее, тем более если не нуждаются в подтверждении. Это гарантирует быструю сходимость независимо от скорости соединений.
2.3. Обнаружение соседей и восстановление
Обнаружение соседей и восстановление заставляет EIGRP маршрутизаторы динамически узнавать о других маршрутизаторах в непосредственно поключенных к ним сетях. Маршрутизаторы также должны обнаруживать, когда их соседи становятся недоступными или нерабочими. Это реализовывается периодической рассылкой небольших по размеру hello-пакетов. Пока маршрутизатор получает hello-пакеты от соседа, он считает, что сосед функционирует, и оба могу обмениваться маршрутной информацией. EIGRP должен постоянно поддерживать таблицу маршрутизации, следя за существующими соединениями, обнаруживая новых соседей и пропадание существующих.
2.4. DUAL
Алгоритм DUAL (Diffusing Update Algorithm) отслеживает все маршруты, анонсируемые всеми соседями, и использует информацию о расстоянии маршрута, называемую композитной метрикой или стоимостью, для эффективного выбора беспетлевых маршрутов ко всем получаетлям.
Наименьшая стоимость маршрута рассчитывается сложением AD (advertised distance - объявленное расстояние) - стоимости маршрута между соседним маршрутизатором и местом назначения и стоимости маршрута между локальным маршрутизатором и соседом. Сумма этих стоимостей называется возможным расстоянием FD (feaseible distance).
FD = AD + расстояние до соседа
Преемником (successor), также называемый текущим преемником, является соседний маршрутизатор, маршрут через который имеет наименьшую стоимость до места назначения (наименьший FD). Successor используется для доставки пакетов к данному месту назначения. Каждое место назначения, для которого определены один или более преемников, записан в таблице топологии. Для каждого места назначения в таблице топологии выбирается маршрут с наименьшей метрикой и помещается в таблицу маршрутизации.
Для места назначения может существовать и более одного преемника, если они имеют одинаковый FD. По умолчанию в таблицу маршрутизации могут быть помещены не более четырех перемников. Однако, это число может быть увеличено до шести при помощи настроек.
DUAL сохраняет также резервные маршруты. Соседний маршрутизатор, через который проходит резервный маршрут, называется возможным преемником (feasible successor). Чтобы стать возможным преемником, маршрут через соседний маршрутизатор должен иметь AD меньше чем FD. Другими словами, соседний маршрутизатор должен быть ближе к месту назначения, чем локальный.
При пропадании маршрута, проходящего через преемника, или при изменении его метрики, DUAL проверяет маршруты возможных преемников и выбирает из них наилучший для передачи пакетов. В случае отсутствия возможных преемников, маршрут должен быть заново пересчитан для определения преемника.
3. Терминология EIGRP
- Таблица соседей (neighbor table) - EIGRP-маршрутизаторы используют пакеты hello для обнаружения соседей. Когда роутер обнаруживает и формирует отношение соседства (adjacency) с новым соседом, он включает адрес соседа и интерфейс, через который сосед доступен, в таблицу соседей. Всё это напоминает протоколы, учитывающие состояние канала: цель одна - убедиться в двухсторонней коммуникации между двумя смежными маршрутизаторами. Для каждого сетевого протокола своя таблица соседей!
- Таблица топологии (topology table) — При обнаружении соседа, маршрутизатор отправляет анонс с известными ему маршрутами и получает анонс с маршрутами, известными соседу. Эти обновления и составляют таблицу топологии. Топологическая таблица содержит все сети и подсети, анонсированные соседями. Другими словами, каждый маршрутизатор хранит таблицы маршрутизации соседей в собственной топологической таблице EIGRP. Если сосед сообщает локальному маршрутизатору о маршруте, то сосед должен использовать этот маршрут для передачи трафика. Это правило обязательно должно соблюдаться для всех дистанционно-векторных протоколов.
- Advertised distance and feasible distance - DUAL использует для расчёта наилучшего пути информацию о расстоянии (метрика или стоимость)
- Advertised distance (AD) — стоимость расстояния между соседним маршрутизатором, который анонсирует маршрут и сетью назначения.
- Feasible distance (FD) — стоимость расстояния от локального маршрутизатора до сети назначения = AD, которое анонсирует соседний маршрутизатор + стоимость расстояния между локальным маршрутизатором и соседним маршрутизатором.
- Successor — соседний маршрутизатор (или current successor) с путем без петель и с наименьшей стоимостью пути к сети назначения (FD). Может быть несколько Successor, если они имеют одинаковую FD. Маршуты Successor используются для перенаправления пакетов (?).
- Таблица маршрутизации (routing table) — таблица содержит наилучшие маршруты к всем получателям и используется для перенаправления пакетов. Маршруты EIGRP successor предлагаются в таблицу маршрутизации. По-умолчанию, каждый протокол маршрутизации может добавлять в таблицу маршрутизации до 4 маршрутов к одному получателю с одинаковой метрикой. Для каждого маршрутизируемого протокола своя таблица маршрутизации.
- Feasible Successor (резервный маршрутизатор) — Наряду с хранением путей с наименьшей стоимостью, DUAL так же хранит и резервные маршруты к каждому получателю. Next-hop маршрутизатор с путем без петель (AD feasible successor должно быть меньше чем FD текущего маршрута successor). FS-это сосед, который ближе всего к получателю, но не относится к промежуточным устройствам оптимального, маршрута с наименьшей метрикой, пути, и не используется для передачи трафика. FS - next-hop маршрутизатор должен иметь AD меньше, чем FD маршрута соседнего маршрутизатора (требуется для исключения петель). FD выбираются в одновременно с Successor, но находится в таблице топологии, которая может содержать несколько FS для адресата.
EIGRP использует DUAL для вычисления наилучшего пути к получателю. DUAL выбирает соседних (successor) маршрутизаторов и FS маршруты на основе композитной метрики и цели выбрать маршруты без петель.
4. Работа протокола EIGRP
Объясняются механизмы создания разных таблиц EIGRP и описываются 5 типов пакетов. Также тут объясняется, как EIGRP маршрутизаторы становятся соседями, начальные процессы при поиска маршрутов, как выбираются маршруты. Как работает DUAL.
4.1. заполнение таблицы
Процесс выбора маршрутов в EIGRP наиболее сильно отличается от других протоколов маршрутизации. EIGRP выбирает основные [primary] (successor) и запасные (feasible successor) маршруты. Они помечены в качестве таковых в топологической таблице. Основные маршруты затем перемещаются в таблицу маршрутизации.
- internal -- внутренние маршруты AS (автономной системы) EIGRP. AD -- 90,
- external -- маршруты, перераспределенные в процесс EIGRP из других источников (других протоколов или другой AS EIGRP). AD -- 170,
- summary -- суммарные маршруты EIGRP. AD -- 5 (по умолчанию, может быть любое - задается администратором при написании команды суммирования).
- Таблица соседей - содержит список маршрутизаторов, с которыми установлено соседство.
- Топологическая таблица - содержит все полученные маршруты ко всем адресатам.
- Таблица маршрутизации - содержит лучший маршрут к каждому получателю.
4.1.1 Таблица соседей
Включает адрес каждого соседа и интерфейс, через который он достижим (can be reached). А так же запись (из таблицы) содержит информацию, требуемую протоколу RTP:
- Sequence number - используется для сохранения порядка пакетов;
- Transmission list - содержит очередь пакетов, нуждающихся в повторной пересылки, если не было получено ACK;
- Round trip timer — используется для расчёта оптимального интервала для повторной передачи.
4.1.2 Топологическая таблица
Каждый маршрутизатор пересылает копию таблицы маршрутизации соседям из таблицы соседей. Каждый маршрутизатор затем сохраняет таблицы маршрутов соседей в БД, называемой топологической таблицей. Он содержит метрики, которые соседи анонсируют для каждого получателя (AD) и метрики, которые этот маршрутизатор будет использовать для достижения адресата через этого соседа (FD).
show ip eigrp topology all-links - покажет все IP записи в топологической таблице. show ip eigrp topology - покажет только successor'ов (соседей) и feasible successor'ов для IP-маршрутов.
Таблица топологии обновляется если напрямую подключённый маршрут или интерфейс изменяется, или когда сосед сообщает об изменившемся маршруте.
Запись в топологической таблице может иметь два состояния
- Passive - маршрутизатор не выполняет перерасчёт для маршрута (не ищет нового successor). Стабильное состояние.
- Active - происходит перерасчёт, ищется новый successor).
Если маршрут через successor становится неверным (например, топология изменилась) или если потерялся сосед, или изменилась метрика, DUAL проверяет fisible successor на destination. Если FS находится, DUAL использует его, и перерасчёта не происходит. Как результат - быстрая конвергенция. Если FS всегда доступен, destination никогда не переходил в статус "активный", перерасчёта не происходит.
Перерасчёт происходит когда текущий маршрут к получетелю (т.е. другими словами - соседний маршрутизатор) падает, и у нашего роутера нет FS для destination. Хотя процесс перерасчёта не особо требователен к ресурсам процессора, всё-таки следует его избегать, т.к. он влияет на время конвергенции.
Маршрутизатор инициирует пересчет отправляя запрос (отправляет query packet) каждому соседнему маршрутизатору. Если у соседа есть маршрут к destination, то он отвечает (отправляет reply packet), если маршрута нет — сосед отправляет запрос своим соседям. В это случае маршрут на соседе переходит в состояние "активный" и маршрутизатор не может обмениваться с другими маршрутизаторами этим маршрутом.
Маршрутизаторы, которые не имеют других соседей и маршрутизаторы, которые знают, что маршрут недоступен (не знаю о нём?) отвечают за запросы сразу, сообщая, что маршрут недоступен. Когда маршрутизатор получает ответы (reply) на все запросы (query), он отвечает на запросы соседа и так далее (один соседа, тот запрашивает своих, те своих и т.д.)