Сегодня мы начнем изучение протокола EIGRP, которое наравне с изучением OSPF является важнейшей темой курса CCNA.
Позже мы вернемся к разделу 2.5, а сейчас сразу после раздела 2.4 перейдем к разделу 2.6 «Настройка, проверка и устранение неполадок EIGRP по протоколу IPv4 (за исключением аутентификации, фильтрации, ручного суммирования, перераспределения и конфигурации stub)».
Сегодня у нас будет вводный урок, на котором я расскажу вам о концепции усовершенствованного внутреннего протокола маршрутизации шлюзов EIGRP, а на двух следующих уроках мы рассмотрим настройку и устранение неполадок роботы данного протокола. Но сначала я хочу сообщить вам следующее.
В течение нескольких последних уроков мы изучали OSPF. Сейчас я хочу, чтобы вы вспомнили, что когда много месяцев назад мы изучали протокол RIP, то говорили о маршрутных петлях Loop и технологиях, предотвращающих зацикливание трафика. Как можно предотвратить возникновение маршрутных петель при использовании OSPF? Можно ли использовать для этого такие методы, как «отравление маршрута» Route Poison или «расщепленный горизонт» Split Horizon? Это вопросы, на которые вы должны ответить самостоятельно. Можете использовать другие тематические ресурсы, но найдите ответы на эти вопросы. Я хочу, чтобы вы научились находить ответы самостоятельно, работая с разными источниками, и попрошу оставлять свои комментарии под этим видео, чтобы я смог увидеть, сколько из моих учеников справились с этой задачей.
Что такое EIGRP? Это гибридный протокол маршрутизации, который объединяет полезные функции как дистанционно-векторного протокола, такого, как RIP, так и протокола отслеживания состояния канала типа OSPF.
EIGRP является проприетарным протоколом Cisco, который был предоставлен для общего пользования в 2013 году. Из протокола отслеживания состояния канала он взял себе алгоритм установления соседства, в отличие от RIP, который не создает соседей. RIP также обменивается таблицами маршрутизации с другими участниками протокола, однако OSPF, прежде чем начать такой обмен, формирует соседство. Таким же образом работает EIGRP.
Протокол RIP каждые 30 секунд выполняет периодические обновления полной таблицы маршрутизации и рассылает информацию обо всех интерфейсах и всех маршрутах всем своим соседям. EIGRP не выполняет периодического полного обновления информации, используя вместо этого концепцию рассылки сообщений Hello, так, как это делает OSPF. Каждые несколько секунд он посылает Hello, чтобы убедиться, что сосед все еще «жив».
В отличие от дистанционно-векторного протокола, который изучает всю топологию сети, прежде чем принять решение о формировании маршрута, EIGRP наподобие RIP создает маршруты на основании слухов. Когда я говорю «слухи», то имею ввиду, что когда сосед сообщает что-то, EIGRP с этим безоговорочно соглашается. Например, если сосед говорит, что знает, как достичь 10.1.1.2, EIGRP верит ему, не спрашивая: «Откуда ты это узнал? Расскажи мне о топологии всей сети!».
До 2013 года, если вы использовали только инфраструктуру Cisco, то могли пользоваться EIGRP, так как этот протокол был создан еще в 1994 году. Однако многие компании, даже используя оборудование Cisco, не желали работать с этим проколом. По моему мнению, на сегодня EIGRP является лучшим протоколом динамической маршрутизации, поскольку намного легче в использовании, однако люди все ещё предпочитают OSPF. Думаю, это связано с тем, что они не хотят «привязывать» себя к продукции Cisco. Но Cisco сделала этот протокол общедоступным потому что он поддерживает сетевое оборудование сторонних производителей, например, Juniper, и если вы объединитесь с компанией, которая не использует оборудование Cisco, у вас не возникнет никаких проблем.
Давайте совершим небольшой экскурс в историю сетевых протоколов.
Протокол RIPv1, появившийся в 1980-х годах, имел ряд ограничений, например, максимальное число хопов, равное 16, в связи с чем не мог обеспечить маршрутизацию в обширных сетях. Чуть позже разработали внутренний протокол маршрутизации шлюза IGRP, который был намного лучше RIP. Однако он больше был дистанционно-векторным протоколом, чем протоколом состояния каналов. В конце 80-х годов появился открытый стандарт – протокол отслеживания состояния каналов OSPFv2 для протокола IPv4.
В начале 90-х Cisco решила, что протокол IGRP необходимо улучшить и выпустила усовершенствованный внутренний протокол маршрутизации шлюза EIGRP. Он был намного эффективнее OSPF, потому что сочетал в себе черты и RIP, и OSPF. Когда мы начнем его изучение, вы убедитесь, что настраивать EIGRP намного легче, чем OSPF. Cisco постаралась сделать протокол, который бы обеспечивал максимально быструю конвергенцию сети.
В конце 90-х годов была выпущена обновленная бесклассовая версия протокола RIPv2. В 2000-х годах появились третья версия OSPF, RIPng и EIGRPv6, которые поддерживали протокол IPv6. Мир постепенно приближается к полному переходу на IPv6, и разработчики протоколов маршрутизации хотят быть к этому готовы.
Если вы помните, мы изучали, что при выборе оптимального маршрута RIP, как дистанционно-векторный протокол, руководствуется только одним критерием — минимальным количеством хопов, или минимальным расстоянием до интерфейса назначения. Так, роутер R1 выберет прямой маршрут к роутеру R3 не смотря на то, что скорость на этом маршруте – 64 кбит/с — в разы меньше скорости на маршруте R1-R2-R3, равной 1544 кбит/с. Протокол RIP посчитает оптимальным медленный маршрут длиной в один хоп, а не быстрый маршрут длиной 2 хопа.
OSPF изучит всю топологию сети и примет решение для связи с роутером R3 использовать маршрут через роутер R2 как более быстрый. В качестве метрики RIP использует число хопов, а метрикой OSPF является стоимость, которая в большинстве случаев пропорциональна пропускной способности канала.
EIGRP также ориентируется на стоимость маршрута, однако его метрика намного сложнее метрики OSPF и опирается на множество факторов, включая пропускную способность Bandwidth, задержку Delay, надежность Reliability, загруженность Loading и максимальный размер пакета MTU. Например, если какой-то узел будет загружен больше остальных, EIGRP проанализирует загруженность всего маршрута и выберет другой узел с меньшей загрузкой.
В курсе CCNA мы будем учитывать только такие факторы формирования метрики, как Bandwidth и Delay, именно их будет использовать формула метрики.
Дистанционно-векторный протокол RIP использует два понятия: расстояние и направление. Если у нас имеется 3 роутера, и один из них соединен с сетью 20.0.0.0, то выбор будет осуществляться по расстоянию – это хопы, в данном случае 1 хоп, и по направлению, то есть по какому пути – верхнему или нижнему – отправлять трафик.
Кроме того, RIP использует периодическое обновление информации, рассылая полную таблицу маршрутизации по всей сети каждые 30 секунд. Это обновление выполняет 2 функции. Первая – собственно обновление таблицы маршрутизации, вторая – проверка жизнеспособности соседа. Если устройство не получает ответное обновление таблицы или новую информацию о маршруте от соседа в течение 30 с, оно понимает, что маршрут к соседу больше нельзя использовать. Роутер отсылает обновление каждые 30 секунд чтобы узнать, «жив» ли ещё сосед и действителен ли еще маршрут.
Как я сказал, для предотвращения маршрутных петель используют технологию Split Horizon. Это означает, что обновление не отсылается обратно тому интерфейсу, с которого пришло. Вторая технология для предотвращения петель – это Route Poison. Если связь с изображенной на картинке сетью 20.0.0.0 прервалась, роутер, к которому она была подсоединена, отсылает соседям «отравленный маршрут», в котором сообщает, что данная сеть теперь доступна в 16 хопов, то есть практически не достижима. Вот таким образом работает протокол RIP.
Как же работает EIGRP? Если вы помните из уроков про OSPF, этот протокол выполняет три функции: устанавливает соседство, при помощи LSA обновляет базу LSDB в соответствии с изменениями топологии сети и строит таблицу маршрутизации. Установление соседства достаточно сложная процедура, использующая множество параметров. Например, проверка и изменение соединения 2WAY – некоторые соединения остаются в состоянии двусторонней связи, некоторые переходят в состояние FULL. В отличие от OSPF, в протоколе EIGRP подобного не происходит – он проверяет всего 4 параметра.
Как и OSPF, этот протокол каждые 10 секунд отсылает сообщение Hello, содержащее 4 параметра. Первый – это критерий аутентификации, если она была предварительно настроена. При этом все устройства, с которыми устанавливается соседство, должны иметь одинаковые параметры аутентификации.
Второй параметр служит для проверки принадлежности устройств к одной автономной системе, то есть для установления соседства по протоколу EIGRP оба устройства должны иметь одинаковый номер автономной системы. Третий параметр служит для проверки того, что сообщения Hello рассылаются с одного IP-адреса источника Source IP.
Четвертый параметр используется для проверки совпадения переменных коэффициентов K-Values. Протокол EIRGP использует 5 таких коэффициентов от К1 до К5. Если вы помните, при значении K=0 параметры игнорируется, если же K=1, то параметры используются в формуле вычисления метрики. Таким образом, значения К1-5 для разных устройств должны совпадать. В курсе CCNA мы будем принимать значения этих коэффициентов по умолчанию: К1 и К3 равны 1, а К2, К4 и К5 равны 0.
Итак, если эти 4 параметра совпадают, EIGRP устанавливает отношения соседства, и устройства заносят друг друга в таблицу соседей. Далее выполняются изменения в таблице топологии.
Все сообщения Hello отсылаются на мультикастовый IP-адрес 224.0.0.10, а обновления в зависимости от настройки отсылаются на юникастовые адреса соседей либо на мультикастовый адрес. Это обновление поступает не по UDP или TCP, а использует другой протокол под названием RTP, Reliable Transport Protocol, или «транспортный протокол надежности». Этот протокол проверяет, получил ли сосед обновление, и как следует из его названия, его ключевой функцией является обеспечение надежности связи. Если обновление не дошло до соседа, передача будет повторяться, пока тот его не получит. В OSPF механизм для проверки устройства-получателя отсутствует, поэтому система не знает, получили соседние устройства обновления или нет.
Если вы помните, RIP каждые 30 секунд рассылает обновление полной топологии сети. EIGRP делает это только в случае, если в сети появилось новое устройство или произошли какие-либо изменения. Если изменилась топология подсети, протокол разошлет обновление, но не полной таблицы топологии, а только записи с этим изменением. Если изменилась какая-то подсеть, будет обновлена только ее топология. Это выглядит как частичное обновление, которое происходит, когда это требуется.
Как вам известно, OSPF рассылает LSA каждые 30 минут независимо от того, произошли ли в сети какие-либо изменения. EIGRP не будет рассылать никаких обновлений на протяжении длительного промежутка времени до тех пор, пока в сети не произойдет каких-либо изменений. Поэтому EIGRP намного эффективнее OSPF.
После того, как роутеры обменялись пакетами обновлений, наступает третий этап –формирование таблицы маршрутизации на основе метрики, которая вычисляется по приведенной на рисунке формуле. Она подсчитывает стоимость и в зависимости от этой стоимости принимает решение.
Предположим, что R1 отослал Hello роутеру R2, а тот прислал Hello роутеру R1. Если все параметры совпадают, роутеры создают таблицу соседей. В эту таблицу R2 заносит запись о роутере R1, а R1 создает запись об R2. После этого роутер R1 отсылает обновление в подключенную к нему сеть 10.1.1.0/24. В таблице маршрутизации это выглядит как информация об IP-адресе сети, интерфейсе роутера, обеспечивающим с ней связь, и стоимости маршрута через этот интерфейс. Если вы помните, стоимость EIGRP равна 90, а дальше указывается значение расстояния Distance value, о котором мы поговорим позже.
Полностью формула метрики выглядит намного сложнее, так как включает в себя значения коэффициентов К и различные преобразования. На сайте Cisco приведен полный вид формулы, однако если вы сделаете подстановку значений коэффициентов по умолчанию, то она преобразуется в более простой вид – метрика будет равняться (bandwidth + Delay) * 256.
Мы будем пользоваться именно таким упрощенным видом формулы для вычисления метрики, где пропускная способность в килобитах равна 107, деленное на наименьшую пропускную способность всех интерфейсов, ведущих к сети назначения least-bandwidth, а задержка cumulative-delay – это суммарная задержка в десятках микросекунд на всех интерфейсах, ведущих к сети назначения.
При изучении EIGRP мы должны усвоить четыре определения: Feasible Distance (возможное расстояние), Reported Distance (объявленное расстояние), Successor (соседний маршрутизатор с наименьшей стоимость пути к сети назначения) и Feasible Successor (резервный соседний маршрутизатор). Чтобы понять, что они означают, рассмотрим следующую топологию сети.
Начнем с создания таблицы маршрутизации R1 с целью выбора наилучшего маршрута к сети 10.1.1.0/24. Возле каждого из устройств показана пропускная способность в кбит/с и задержка в мс. Мы используем интерфейсы GigabitEthernet с пропускной способностью 100 мбит/с, или 1000000 кбит/с, интерфейсы FastEthernet со скоростью 100000 кбит/с, Ethernet со скоростью 10000 кбит/с и серийный интерфейс со скоростью 1544 кбит/с. Эти величины можно узнать, если просмотреть в настройках роутера характеристики соответствующих физических интерфейсов.
Пропускная способность Serial-интерфейсов по умолчанию равна 1544 кбит/с, и даже если у вас имеется линия 64 кбит/с, пропускная способность все равно будет 1544 кбит/с. Поэтому вам как сетевому администратору нужно убедиться, что вы используете правильное значение bandwidth. Для конкретного интерфейса его можно задать с помощью команды bandwidth, а с помощью команды delay вы можете изменить значение задержки по умолчанию. Вы можете не беспокоиться по поводу значений bandwidth по умолчанию для интерфейсов GigabitEthernet или Ethernet, но будьте внимательны при выборе скорости линии, если используете Serial-интерфейс.
Обратите внимание, что на данной схеме задержка обозначена будто бы в миллисекундах ms, но в действительности это микросекунды, просто у меня нет буквы μ для правильного обозначения микросекунд μs.
Внимательно отнеситесь к следующему обстоятельству. Если вы введете команду show interface g0/0, система отобразит задержку в десятках микросекунд, а не просто в микросекундах.
Подробно мы рассмотрим этот вопрос в следующем видео, посвященном настройке EIGRP, пока что запомните, что при подстановке значений задержки в формулу 100 μs со схемы превращается в 10, так как формула использует десятки микросекунд, а не единицы.
На схеме я обозначу красными точками интерфейсы, к которым относятся показанные пропускные способности и задержки.
В первую очередь нам нужно определить возможное расстояние Feasible Distance. Это метрика FD, которая вычисляется по формуле. Для участка от R5 до внешней сети нам нужно разделить 107 на 106, в результате мы получим 10. Далее к этой величине bandwidth нам нужно прибавить задержку, равную 1, потому что у нас имеется 10 микросекунд, то есть один десяток. Полученное значение 11 нужно умножить на 256, то есть значение метрики составит 2816. Таково значение FD для данного участка сети.
Это значение роутер R5 отошлет роутеру R2, причем для R2 оно станет объявленным расстоянием Reported Distance, то есть величиной, которую ему сообщил сосед. Таким образом, объявленное расстояние RD для всех остальных устройств будет равно возможному расстоянию FD устройства, которое вам его сообщило.
Роутер R2 проводит вычисления FD по своим данным, то есть делит 107 на 105 и получает 100. Затем он добавляет к этому значению сумму задержек на маршруте до внешней сети: задержку R5, равную одному десятку микросекунд, и собственную задержку, равную десяти десяткам. Суммарная задержка составит 11 десятков микросекунд. Прибавляем её к полученной сотне и получаем 111, умножаем эту величину на 256 и получаем значение FD=28416. Аналогично поступает роутер R3, получая после проделанных вычислений значение FD=281856. Роутер R4 вычисляет значение FD=3072 и передает его R1 как RD.
Обратите внимание, что роутер R1 при вычислении FD подставляет в формулу не свою пропускную способность 1000000 кбит/с, а меньшую пропускную способность роутера R2, которая равна 100000 кбит/с, потому что в формуле всегда используется минимальная пропускная способность интерфейса, ведущего к сети назначения. В данном случае на пути к сети 10.1.1.0/24 расположены роутеры R2 и R5, но поскольку bandwidth пятого роутера больше, в формулу подставляется наименьшее значение bandwidth роутера R2. Суммарная задержка на пути R1-R2-R5 составляет 1+10+1 (десятков) = 12, приведенная пропускная способность равна 100, и сумма этих чисел, умноженная на 256, даст значение FD=30976.
Итак, все устройства вычислили FD своих интерфейсов, и роутер R1 имеет 3 маршрута, ведущих к сети назначения. Это маршруты R1-R2, R1-R3 и R1-R4. Роутер выбирает минимальное значение возможного расстояния FD, которое равно 30976 – это маршрут к роутеру R2. Этот роутер становится Successor’ом, или «преемником». В таблице маршрутизации указывается также Feasible Successor (резервный преемник) – он означает, что в случае разрыва связи между R1 и Successor, маршрут будет осуществляться через резервный роутер Feasible Successor.
Feasible Successors назначается согласно единственному правилу: объявленное расстояние RD этого маршрутизатора должно быть меньше, чем FD роутера на участке к Successor’у. В нашем случае R1-R2 имеет FD=30976, RD на участке R1-К3 равно 281856, а RD на участке R1-R4 равно 3072. Так как 3072 < 30976, в качестве Feasible Successors выбирается роутер R4.
Это означает, что при нарушении связи на участке сети R1-R2 трафик к сети 10.1.1.0/24 будет направляться по маршруту R1-R4-R5. Переключение маршрута при использовании RIP занимает несколько десятков секунд, при использование OSPF – несколько секунд, а в EIGRP происходит мгновенно. В этом заключается еще одно преимущество EIGRP по сравнению с другими протоколами маршрутизации.
Что произойдет, если одновременно прервется связь с Successor и Feasible Successor? В этом случае EIGRP задействует алгоритм DUAL, который может вычислить резервный маршрут через вероятного преемника. Это может занять несколько секунд, в течение которых EIGRP найдет другого соседа, которого можно использовать для передачи трафика, и поместит его данные в таблицу маршрутизации. После этого протокол продолжит обычную работу по обеспечению маршрутизации.
Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас:
Dell R730xd в 2 раза дешевле? Только у нас
Источник: habr.com