Pull to refresh

Учебный пример просмотра таблицы маршрутизации при работе протокола 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.

Замечания, уточнения, добавления, вопросы — с благодарностью принимаются.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.