Таблица маршрутизации маршрутизатора. Сетевая маршрутизация

Электроника 15.06.2019
Электроника

В данный момент (вспомним ) у нас в Москве использованы адреса 172.16.0.0-172.16.6.255. Предположим, что сеть может ещё увеличиться здесь, допустим, появится офис на Воробьёвых горах и зарезервируем ещё подсети до 172.16.15.0/24 включительно.
Все эти адреса: 172.16.0.0-172.16.15.255 - можно описать так: 172.16.0.0/20. Эта сеть (с префиксом /20) будет так называемой суперсетью , а операция объединения подсетей в суперсети называется суммированием подсетей (суммированием маршрутов, если быть точным, route summarization)

Приносим извинения за гигантские простыни, видео тоже с каждым разом становится всё длиннее и невыносимее. Постараемся в следующий раз быть более компактными.

Все заинтересованные, но незарегистрированные приглашаются на беседу в ЖЖ .
За подготовку статьи большое спасибо моему соавтору и моей жене за львиное терпение.

Для очень недовольных: эта статья не абсолют, она не раскрывает теоретические аспекты в полной мере и, потому не претендует на роль полноценной документации. С точки зрения авторов это вспомогательной средство для новичков, волшебный стимул, если желаете. На хабре у вас есть возможность поставить минус, а не доказывать нашу неправоту. Прошу вас, поступите именно так, потому что ваши недовольства встретят лишь вышеприведённые аргументы.

  • intervlan routing
  • router on a stick
  • Добавить метки

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

    Таблица маршрутизации обычно содержит:

    · адрес сети или узла назначения, либо указание, что маршрут является маршрутом по умолчанию;

    · маску сети назначения (для IPv4-сетей маска /32 (255.255.255.255) позволяет указать единичный узел сети);

    · шлюз, обозначающий адрес маршрутизатора в сети, на который необходимо отправить пакет, следующий до указанного адреса назначения;

    · интерфейс (в зависимости от системы это может быть порядковый номер, GUID или символьное имя устройства);

    · метрику - числовой показатель, задающий предпочтительность маршрута. Чем меньше число, тем более предпочтителен маршрут (интуитивно представляется как расстояние);

    Сеть предприятия N приведена на рис.1.1.

    Рис.1.1

    В таблице 1.9 нет стандартного столбца "Маска" так в сети используется одна и та же маска. Таблица 1.9 упрощена, в ней нет признаков состояния маршрута, временем, в течение которого действительны записи данной таблицы. Вместо номера сети назначения может быть указан полный сетевой адрес отдельного узла назначения. Здесь указаны адреса сетей условного формата, не соответствующие какому-либо определенному сетевому протоколу.

    Таблица 1.9 Таблица маршрутизации сети предприятия N для маршрутизатора M1.

    Первый столбец таблицы содержит адреса назначения пакетов.

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

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

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

    Когда пакет поступает на маршрутизатор, модуль IP извлекает из поступившего заголовка кадра номер сети назначения и последовательно сравнивает его с номерами сетей из каждой строки таблицы. Строка с совпавшим номером сети указывает ближайший маршрутизатор, на который следует направить пакет.

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

    Поскольку пакет может быть адресован в любую сеть составной сети, может показаться, что каждая таблица маршрутизации должна иметь записи обо всех сетях, входящих в составную сеть. Но при таком подходе в случае крупной сети объем таблиц маршрутизации может оказаться очень большим, что повлияет на время ее просмотра, потребует много места для хранения и т.п. Поэтому на практике широко известен прием уменьшения количества записей в таблице маршрутизации, основанный на введении маршрута по умолчанию (default route). В этом приеме используются особенности топологии сети. Рассмотрим, например, маршрутизаторы, находящиеся на периферии составной сети. В их таблицах достаточно записать номера только тех сетей, которые непосредственно подсоединены к данному маршрутизатору или расположены поблизости, на тупиковых маршрутах. Обо всех же остальных сетях можно сделать в таблице единственную запись, указывающую на маршрутизатор, через который пролегает путь ко всем этим сетям. Такой маршрутизатор называется маршрутизатором по умолчанию (default router).

    Задачу маршрутизации решают не только промежуточные (маршрутизаторы), но и конечные узлы - компьютеры. Решение этой задачи начинается с того, что протокол IP, установленный на конечном узле, определяет, направляется ли пакет в другую сеть или адресован какому-нибудь узлу данной сети. Если номер сети назначения совпадает с номером данной сети, это означает, что пакет маршрутизировать не требуется. В противном случае маршрутизация нужна.

    Структуры таблиц маршрутизации конечных узлов и транзитных маршрутизаторов аналогичны.

    Конечные узлы в еще большей степени, чем маршрутизаторы, пользуются приемом маршрутизации по умолчанию. Хотя они также в общем случае имеют в своем распоряжении таблицу маршрутизации, ее объем обычно незначителен, что объясняется периферийным расположением всех конечных узлов. Конечный узел часто вообще работает без таблицы маршрутизации, имея только сведения об адресе маршрутизатора по умолчанию. При наличии одного маршрутизатора в локальной сети этот вариант - единственно возможный для всех конечных узлов. Но даже при наличии нескольких маршрутизаторов в локальной сети, когда перед конечным узлом стоит проблема их выбора, часто в компьютерах для повышения производительности прибегают к заданию маршрута по умолчанию.

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

    Маршрутизация – это процесс определения пути следования информации в сетях связи. Маршрутизация служит для приема пакета от одного устройства и передаче его другому устройству через другие сети. Маршрутизатором или шлюзом называется узел сети с несколькими интерфейсами, каждый из которых имеет свой MAC-адрес и IP адрес.

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

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

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

    И третий способ подразумевает автоматическое размещение записей с помощью протоколов маршрутизации. Данным способ называется динамической маршрутизацией. Протоколы динамической маршрутизации могут автоматически отслеживать изменения в топологии сети. Успешное функционирование динамической маршрутизации зависит от выполнения маршрутизатором двух основных функций:

    1. Поддержка своих таблиц маршрутизации в актуальном состоянии
    2. Своевременное распространение информации об известных им сетях и маршрутах среди остальных маршрутизаторов

    В качестве параметров для расчет метрик могут выступать:

    1. Ширина полосы пропускания
    2. Задержка (время для перемещения пакета от источника к получателю)
    3. Загрузка (загруженность канала в ед. времени)
    4. Надежность (относительное количество ошибок в канале)
    5. Количество хопов (переходов между маршрутизаторами)

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

    Существует достаточно много протоколов маршрутизации – все они делятся по следующим признакам:

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

    Протокол состояния каналов основан на алгоритме Дейкстры, про него я уже . Про дистанционно-векторный алгоритм расскажу вкратце.

    Итак, в дистанционно-векторных протоколах маршрутизаторы:

    • Определяют направление (вектор) и расстояние до нужного узла сети
    • Периодически пересылают таблицы маршрутизации друг другу
    • В регулярных обновлениях маршрутизаторы узнают об изменениях топологии сети

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

    • Точное понимание топологии сети. Протоколы маршрутизации состояния канала создают дерево кратчайших путей в сети. Таким образом, каждый маршрутизатор точно знает, где находится его “собрат”. В дистанционно-векторных протоколах такой топологии нет.
    • Быстрая сходимость. Получая пакет состояния канала LSP, маршрутизаторы сразу же лавиннообразно рассылают этот паке дальше. В дистанционно-векторных протоколах маршрутизатор должен сначала обновить свою таблицу маршрутизации, прежде чем разослать его лавинно на другие интерфейсы.
    • Управляемые событиями обновления. LSP отправляются только тогда, когда происходят изменения в топологии и только информацию, касающуюся этого изменения.
    • Разделение на зоны. Протоколы состояния канала используют понятие зона – область в пределах который распространяется маршрутная информация. Это разделение помогает снизить нагрузку на ЦП маршрутизатора и структурировать сеть.

    Примеры протоколов состояния канала: OSPF , IS-IS .

    Примеры дистанционно-векторных протоколов: RIP , IGRP .

    Другое глобальное разделение протоколов по области применения: для внутредоменной маршрутизации IGP, для междоменной маршрутизации EGP. Пройдемся по определениям.

    IGP (Interior Gateway Protocol) – протокол внутреннего шлюза. К ним относят любые протоколы маршрутизации, используемые внутри автономной системы (RIP, OSPF, IGRP, EIGRP, IS-IS). Каждый IGP-протокол представляет один домен маршрутизации внутри автономной системы.

    EGP (Exterior Gateway Protocol) – протокол внутреннего шлюза. Обеспечивает маршрутизацию между различными автономными системами. Протоколы EGP обеспечивают соединение отдельных автономных систем и транзит передаваемых данных между этими автономными системами. Пример протокола: BGP .

    Поясним также понятие автономной системы.

    Автономная система (authonomous system, AS) – это набор сетей, которые находятся под единым административным управлением и в которых используется единая стратегия и правила маршрутизации.

    Автономная система для внешних сетей выступает как единый объект.

    Домен маршрутизации – это совокупность сетей и маршрутизаторов, использующих один и тот же протокол маршрутизации.

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


    Подписывайтесь на нашу

    Структура реальных таблиц маршрутизации стека TCP/IP в целом соответствует упрощенной структуре рассмотренных ранее таблиц. Отметим, однако, что вид таблицы IP-маршрутизации зависит от конкретной реализации стека TCP/IP. Приведем пример нескольких вариантов таблицы маршрутизации, с которыми мог бы работать маршрутизатор R1 в сети, представленной на рис. 1.

    Начнем с «придуманного» предельно упрощенного варианта таблицы маршрутизации (табл. 1). Здесь имеются три маршрута к сетям (записи 56.0.0.0,116.0.0.0 и 129.13.0.0), две записи о непосредственно подсоединенных сетях (198.21.17.0 и 213.34.12.0), а также запись о маршруте по умолчанию.

    Таблица 1. Упрощенная таблица маршрутизации маршрутизатора R1

    Адрес сети назначения Адрес следующего маршрутизатора Адрес выходного интерфейса Расстояние до сети назначения
    15
    13
    2
    1 (подсоединена)
    1
    56.0.0.0 213.34.12.4 213.34.12.3 15
    116.0.0.0 213.34.12.4 213.34.12.3 13
    129.13.0.0 198.21.17.6 198.21.17.5 2
    198.21.17.0 198.21.17.5 198.21.17.5 1(подсоединена)
    213.34.12.0 213.34.12.3 213.34.12.3 1(подсоединена)
    Маршрут по умолчанию 198.21.17.7 198.21.17.5 -

    Более сложный вид имеют таблицы, которые генерируются в промышленно выпускаемом сетевом оборудовании.

    Если представить, что в качестве маршрутизатора R1 в данной сети работает штатный программный маршрутизатор операционной системы Microsoft Windows ХР, то его таблица маршрутизации могла бы выглядеть так, как табл. 2.

    Рис. 1 Пример маршрутизируемой сети

    Таблица 2. Таблица программного маршрутизатора ОС Windows ХР

    Сетевой адрес Маска Адрес шлюза Интерфейс Метрика
    127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
    0.0.0.0 0.0.0.0 198.21.17.7 198.21.17.5 1
    56.0.0.0 255.0.0.0 213.34.12.4 213.34.12.3 15
    116.0.0.0 255.0.0.0 213.34.12.4 213.34.12.3 13
    129.13.0.0 255.255.0.0 198.21.17.6 198.21.17.5 2
    198.21.17.0 255.255.255.0 198.21.17.5 198.21.17.5 1
    198.21.17.5 255.255.255.255 127.0.0.1 127.0.0.1 1
    198.21.17.255 255.255.255.255 198.21.17.5 198.21.17.5 1
    213.34.12.0 255.255.255.0 213.34.12.3 213.34.12.3 1
    213.34.12.3 255.255.255.255 127.0.0.1 127.0.0.1 1
    213.34.12.255 255.255.255.255 213.34.12.3 213.34.12.3 1
    224.0.0.0 224.0.0.0 198.21.17.6 198.21.17.6 1
    224.0.0.0 224.0.0.0 213.34.12.3 213.34.12.3 1
    255.255.255.255 255.255.255.255 198.21.17.6 198.21.17.6 1

    Если на месте маршрутизатора R1 установить один из популярных аппаратных маршрутизаторов, то его таблица маршрутизации для этой же сети может выглядеть совсем иначе (табл. 3).

    Таблица 3. Таблица маршрутизации аппаратного маршрутизатора

    И наконец табл. 4 представляет собой таблицу маршрутизации для того же маршрутизатора R1, реализованного в виде программного маршрутизатора одной из версий операционной системы Unix.

    Таблица 4. Таблица маршрутизации Unix-маршрутизатора

    Адрес назначения Шлюз Флаги Интерфейс
    127.0.0.0 127.0.0.1 UH 1 154 1о0
    Маршрут по умолчанию 198.21.17.7 UG 5 43270 1е0
    198.21.17.0 198.21.17.5 U 35 246876 1е0
    213.34.12.0 213.34.12.3 U 44 132435 le1
    129.13.0.0 198.21.1.7.6 UG 6 16450 1е0
    56.0.0.0 213.34.12.4 UG 12 5764 le1
    116.0.0.0 213.34.12.4 UG 21 23544 le1

    ПРИМЕЧАНИЕ
    Заметим, что поскольку между структурой сети и таблицей маршрутизации нет однозначного соответствия, для каждого из приведенных вариантов таблицы можно предложить свои «подварианты», отличающиеся выбранным маршрутом к той или иной сети. В данном случае внимание концентрируется на существенных различиях в форме представления маршрутной информации разными реализациями маршрутизаторов.

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

    К таким данным, во-первых, относятся адреса сети назначения (столбцы «Адрес назначения» в аппаратном маршрутизаторе и маршрутизаторе Unix или столбец «Сетевой адрес» в маршрутизаторе ОС Windows ХР).

    Вторым обязательным полем таблицы маршрутизации является адрес следующего маршрутизатора (столбцы «Шлюз» в аппаратном маршрутизаторе и маршрутизаторе Unix или столбец «Адрес шлюза» в маршрутизаторе ОС Windows ХР).

    Третий ключевой параметр - адрес порта, на который нужно направить пакет, в некоторых таблицах указывается прямо (столбец «Интерфейс» в таблице маршрутизатора ОС Windows ХР), а в некоторых - косвенно. Так, в таблице маршрутизатора Unix вместо адреса порта задается его условное наименование - 1е0 для порта с адресом 198.21.17.5, lei для порта с адресом 213.34.12.3 и 1о0 для внутреннего порта с адресом 127.0.0.1. В адпаратном маршрутизаторе поле, обозначающее выходной порт в какой-либо форме, вообще отсутствует. Это объясняется тем, что адрес выходного порта всегда можно косвенно определить по адресу следующего маршрутизатора. Например, определим по табл. 3 адрес выходного порта для сети 56.0.0.0. Из таблицы следует, что следующим маршрутизатором для этой сети будет маршрутизатор с адресом 213.34.12.4. Адрес следующего маршрутизатора должен принадлежать одной из непосредственно присоединенных к маршрутизатору сетей, и в данном случае это сеть 213.34.12.0. Маршрутизатор имеет порт, присоединенный к этой сети, и адрес этого порта 213.34.12.3 мы находим в столбце «Шлюз» второй строки таблицы маршрутизации, которая описывает непосредственно присоединенную сеть 213.34.12.0. Для непосредственно присоединенных сетей адресом следующего маршрутизатора всегда является адрес собственного порта маршрутизатора. Таким образом, для сети 56.0.0 адресом выходного порта является 213.34.12.3.

    Стандартным решением сегодня является использование поля маски в каждой записи таблицы, как это сделано в таблицах маршрутизатора ОС Windows ХР и аппаратного маршрутизатора (столбцы «Маска»). Механизм обработки масок при принятии решения маршрутизаторами рассматривается далее. Отсутствие поля маски говорит о том, что либо маршрутизатор рассчитан на работу только с тремя стандартными классами адресов, либо для всех записей используется одна и та же маска, что снижает гибкость маршрутизации.
    Поскольку в таблице маршрутизации маршрутизатора Unix каждая сеть назначения упомянута только один раз, а значит, возможность выбора маршрута отсутствует, то поле метрики является необязательным параметром. В остальных двух таблицах поле метрики используется только для указания на то, что сеть подключена непосредственно. Метрика 0 для аппаратного маршрутизатора или 1 для маршрутизатора ОС Windows ХР говорит маршрутизатору, что эта сеть непосредственно подключена к его порту, а другое значение метрики соответствует удаленной сети. Выбор метрики для непосредственно подключенной сети (1 или 0) является произвольным, главное, чтобы метрика удаленной сети отсчитывалась с учетом этого выбранного начального значения. В маршрутизаторе Unix используется поле признаков, где флаг G (Gateway - шлюз) отмечает удаленную сеть, а его отсутствие - непосредственно подключенную.

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

    Однако существуют ситуации, когда маршрутизатор Должен обязательно хранить значение метрики для записи о каждой удаленной сети. Эти ситуации возникают, когда записи в таблице маршрутизации являются результатом работы некоторых протоколов маршрутизации, например протокола RIP. В таких протоколах новая информация о какой-либо удаленной сети сравнивается с информацией, содержащейся в таблице в данный момент, и если значение новой метрики лучше текущей, то новая запись вытесняет имеющуюся. В таблице маршрутизатора Unix поле метрики отсутствует, и это значит, что он не использует протокол RIP.

    Флаги записей присутствуют только в таблице маршрутизатора Unix.

    • U - маршрут активен и работоспособен. Аналогичный смысл имеет поле статуса в аппаратном маршрутизаторе.
    • Н - признак специфического маршрута к определенному хосту.
    • G - означает, что маршрут пакета проходит через промежуточный маршрутизатор (шлюз). Отсутствие этого флага отмечает непосредственно подключенную сеть.
    • D - означает, что маршрут получен из перенаправленного сообщения протокола ICMP. Этот признак может присутствовать только в таблице маршрутизации конечного узла. Признак означает, что конечный узел при какой-то предыдущей передаче пакета выбрал не самый рациональный следующий маршрутизатор на пути к данной сети, и этот маршрутизатор с помощью протокола ICMP сообщил конечному узлу, что все последующие пакеты к данной сети нужно отправлять через другой маршрутизатор.

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

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



    Рекомендуем почитать

    Наверх