Как стать автором
Обновить

Учебный пример просмотра таблицы маршрутизации при работе протокола EIGRP

Мы рассмотрим, как маршрутизатор обработает пакет в зависимости от того, classful- или classless-поведение маршрутизатора настроено, а также в зависимости от того, включено ли автоматическое суммирование маршрутов в EIGRP.

Вопрос возник при чтении курса CCNA.

Рассмотрим часть таблицы маршрутизации:
S	0.0.0.0/0	Serial0/0/0
	192.168.10.0/24 is variably subnetted, 3 subnets, 2 masks
D	192.168.10.0/24	Null0
C	192.168.10.4/30	Serial0/0/1
D	192.168.10.8/30	Serial0/0/1


В ней есть статический (метка S) маршрут по умолчанию через интерфейс Serial0/0/0, а также по EIGRP (метка D) узнан маршрут в сеть 192.168.10.8/30 через непосредственно присоединённую сеть (метка С) 192.168.10.4/30 с выходным интерфейсом Serial0/0/1.

Особенность EIGRP, например, по сравнению с RIP, в том, что если на маршрутизаторе включена в работу EIGRP какая-то сеть (в нашем примере 192.168.10.0/24), то он добавляет в таблицу маршрутизации маршрут в classful-сеть, соответствующую добавленной сети, который помечен, как узнанный по EIGRP, т.е. меткой D, и который имеет выходной интерфейс Null0, т.е. все пакеты, которые пойдут по этому маршруту попадут в «чёрную дыру» и будут отброшены.
Этот маршрут в classful-сеть является суммирующим маршрутом для маршрутов в подсети (в нашем примере 192.168.10.4/30 и 192.168.10.8/30).
Он добавляется в таблицу, т.к. по умолчанию EIGRP автоматически суммирует маршруты (в конфигурации будет команда auto-summary).
Автоматическое суммирование маршрутов можно отключить командой:
(config-router)#no auto-summary

Вспомним, что classful-сеть — это сеть, маска которой определяется по первому октету ip-адреса в соответствии с правилами:

Первый октет ip-адреса		Маска сети
0-127				/8 = 255.0.0.0
128-191				/16 = 255.255.0.0
192-223				/24 = 255.255.255.0
224-239				multicast
240-255				зарезервированы

Т.е. никаких масок с длиной, отличной от 8, 16 и 24, быть не может, и маршрутизатор не поймёт в логике работы, что у сети 192.168.0.0 может быть маска 16 — только 24.

Логика просмотра таблицы маршрутизации зависит от того, какое поведение маршрутизатора реализуется — classful или classless (эти названия похожи на типы сетей, но никакой связи с ними нет).
Из примера ниже станет понятно, в чём разница в поведении.

Допустим, реализуется classful-поведение маршрутизатора (выполнена команда:
(config)#no ip classless
или используется старая версия IOS) и нет маршрута через интерфейс Null0, а все остальные представленные маршруты в таблице есть.
Допустим, на маршрутизатор приходит пакет на адрес 192.168.10.13.
Логика просмотра таблицы маршрутизации такова.
Сначала смотрятся маршруты 1-го уровня (это те, у которых маска меньше или равна маске соответствующей classful-сети).
В нашем случае таких два:
S	0.0.0.0/0	Serial0/0/0
	192.168.10.0/24 is variably subnetted, 3 subnets, 2 masks

Из них выбирается тот, который больше всего совпадает с ip-адресом, это 192.168.10.0/24.
Дальше смотрится — это т.н. ultimate route или нет? (ultimate значит, что для маршрута указан выходной физический интерфейс. Первый из двух рассмотренных ultimate, а второй нет).
Если да, то по этому маршруту посылается пакет.
Если нет, то это значит, что маршрут является т.н. parent route и смотрятся его child routes — маршруты 2-го уровня (т.е. маршруты, у которых маска больше маски соответствующей classful-сети).
В нашем случае так и будет, и таких маршрутов два (предполагаем, что нет маршрута через Null0):
C	192.168.10.4/30	Serial0/0/1
D	192.168.10.8/30	Serial0/0/1

Из них выбирается тот, который подходит под ip-адрес пакета. Такого нет.
Тогда при classful-поведении маршрутизатора пакет отбрасывается.

При classless-поведении маршрутизатора до сего момента логика просмотра таблицы маршрутизации та же. Но если не найден подходящий child route на 2-м уровне, маршрутизатор возвращается к маршрутам 1-го уровня и ищет другой подходящий (обычно это суммирующий маршрут или шлюз по умолчанию).
В нашем случае маршрутизатор найдёт шлюз по умолчанию, который является ultimate-маршрутом и отправит по нему пакет:
S	0.0.0.0/0	Serial0/0/0
	192.168.10.0/24 is variably subnetted, 3 subnets, 2 masks


Что же будет, если в таблице маршрутизации будет маршрут через интерфейс Null0, добавленный EIGRP?
Тогда таблица имеет вид:
S	0.0.0.0/0	Serial0/0/0
	192.168.10.0/24 is variably subnetted, 3 subnets, 2 masks
D	192.168.10.0/24	Null0
C	192.168.10.4/30	Serial0/0/1
D	192.168.10.8/30	Serial0/0/1

Сначала будет найден parent route в 192.168.10.0/24, а в его child routes будет найден маршрут в 192.168.10.0/24 через Null0 как подходящий. Тут уже независимо от classful- или classless-поведения маршрутизатора, по этому маршруту в Null0 будет отправлен пакет, т.е. пакет будет отброшен.

Если же в EIGRP отключить автоматическое суммирование маршрутов командой:
(config-router)# no auto-summary
То суммирующий маршрут с выходным интерфейсом Null0 в таблицу маршрутизации добавлен не будет.
В нашем примере таблица маршрутизации примет вид:
S	0.0.0.0/0	Serial0/0/0
	192.168.10.0/30 is subnetted,  2 subnets
C	192.168.10.4	Serial0/0/1
D	192.168.10.8	Serial0/0/1

Внимательный читатель заметит, что теперь у child routes нет маски в таблице. Дело в том, что для parent route 192.168.10.0 все child routes имеют одинаковую маску, поэтому она записывается один раз для parent route.
Тогда пакет на адрес 192.168.10.13 подойдёт под маршрут 1-го уровня 192.168.10.0/24. Хоть в таблице и отображается маска /30, для маршрутов 1-го уровня маска должна быть не меньше маски соответствующей classful-сети, т.е. сравниваться будет не маршрут с маской /30, а маршрут с маской /24.
Дальше у этого parent route будут просматриваться child routes и будет пакет доставлен или отброшен зависит от classless- или classful-поведения маршрутизатора, соответственно.

Мы рассмотрели учебный пример, как маршрутизатор просматривает таблицу маршрутизации в зависимости от classful- или classless-поведения, а также в зависимости от того, включено или нет автоматическое суммирование маршрутов в протоколе EIGRP — и показали, что в некоторых ситуациях от этих настроек зависит, будут ли пакеты доставлены получателю или отброшены.

Описанное поведение проверено в симуляторе GNS3.

Замечания, уточнения, добавления, вопросы — с благодарностью принимаются.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.