Маршрутизация в компьютерных сетях. Маршрутизация

Виды маршрутизации. Группы протоколов.

Реализуется на сетевом уровне сети. За нее отвечает протокол маршрутизации. При выборе стратегии маршрутизации могут быть поставлены разные цели, например:

Минимизация времени доставки пакетов;

Минимизации стоимости доставки пакетов;

Обеспечение максимальной пропускной способности сети и т.д.

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

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

Статическими или динамическими;

Одномаршрутными или многомаршрутными;

Одноуровневыми или иерархическими;

Внутридоменными или междоменными;

Одноадресными или групповыми.

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

В динамических протоколах таблица маршрутизации обновляется автоматически при изменении топологии сети или графика в ней.

Одномаршрутные протоколы предлагают только один маршрут для передачи пакета (который не всегда является оптимальным).

Многомаршрутные алгоритмы предлагают несколько маршрутов. Это позволяет передавать информацию получателю по нескольким маршрутам одновременно.

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

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

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

Выделяют три основные группы протоколов маршрутизации в зависимости от используемого типа алгоритма определения оптимального маршрута:

Протоколы вектора расстояния;

Протоколы состояния канала;

Протоколы политики маршрутизации.

Протоколывектора расстояния – самые простые и распространенные. Это, например, RIP, RTMP, IGRP.

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

Протоколысостояния канала были впервые предложены в 1970 году Эдсгером Дейкстрой. Здесь вместо рассылки содержимого таблиц маршрутизации, каждый маршрутизатор производит широковещательную рассылку списка маршрутизаторов, с которыми он имеет непосредственную связь, и списка напрямую подключенных к нему локальных сетей. Такая рассылка может производиться либо при изменении состояния каналов, либо периодически. Примеры протоколов: OSPF, IS-IS, Novell NLSP.

Протоколыполитики (правил)маршрутизации наиболее часто используются в сети Интернет. Они опираются на алгоритмы вектора расстояния. Информация о маршрутизации получается от соседних операторов на основании специальных критериев. На основе такого обмена вырабатывается список разрешенных маршрутов. Примеры: протоколы BGP и EGP.

Маршрутизаторы. Автономные системы.

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

При их создании используются 3 основные архитектуры.

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

Однако даже мощные RISC-процессоры не справляются с обработкой при большой загрузке.

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

3)Симметричная многопроцессорная архитектура. Здесь происходит равномерное распределение нагрузки на все процессорные модули. Каждый из модулей выполняет все задачи маршрутизации и имеет свою собственную копию таблицы маршрутизации. Это наиболее прогрессивная для маршрутизаторов архитектура.

IP-маршрутизаторы

IP (Internet Protocol) является в настоящее время наиболее распространенным (в сети Интернет). Протокол работает на сетевом уровне и именно на этом уровне принимается решение о маршрутизации.

Существует 2 подхода к выбору маршрута:

Одношаговый подход;

Маршрутизация от источника.

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

Алгоритмы построения таблиц при одношаговой маршрутизации могут быть следующими:

Фиксированная маршрутизация (таблица составляется «вручную» администратором);

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

Лавинная маршрутизация (дейтаграмма передается во все направления, кроме исходного);

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

Протоколы адаптивной маршрутизации получили наибольшее распространение в IP-сетях. Это протоколы: RIP, OSPF, IS-IS, EGP, BGP и т.д. Примаршрутизации от источника выбор маршрута производится конечным узлом или первым маршрутизатором на пути следования дейтаграммы. В IP-сетях этот метод не нашел распространения, зато широко применяется в АТМ-сетях (например, протокол PNNI).

Автономные системы

В связи с ростом сети Интернет производительность маршрутизаторов значительно снизилась. Неимоверно возрос объем трафика для поддержания маршрутизации и выросли в объеме маршрутные таблицы. В связи с этим Интернет была разделена на ряд Автономных систем (AC) (Autonomous System) (рис.7.1.). Каждая такая система представляет собой группу сетей и маршрутизаторов, управляемую уполномоченным. Это позволяет маршрутизатору внутри каждой АС использовать различные протоколы маршрутизации. Здесь используются динамические протоколы маршрутизации, определяемые как класс ЮР-протоколов (IGP – Interior Gateway Protocol – внутренний шлюзовой протокол). К этому классу относятся протоколы RIP, IS-IS и т.д.

Для взаимодействия маршрутизаторов, принадлежащих к разным АС, используется дополнительный протокол, называемый EGP–внешний шлюзовой протокол).

Протокол RIP

Протокол RIP относится к классу IGP. Появился протокол в 1982 году как часть стека протоколов TCP/IP. Стал стандартным протоколом маршрутизации внутри автономной системы. Ограничение – протокол не поддерживает длинные пути, содержащие более15 переходов.

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

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

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

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

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

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


Протокол OSPF

Протокол OSPF (Open Shortest Path First) принят в 1991 году. Он ориентирован на применение в больших распределенных сетях. Основан на алгоритме состояния канала. Суть этог1 алгоритма состоит в том, что он должен вычислить кратчайший путь. Под «кратчайшим» имеется в виду не физическая длина, а время передачи информации. Маршрутизатор отправляет запросы своим соседям, находящимся в одном мене маршрутизации, для выявления состояния каналов до них и далее от них. Состояние канала при этом характеризуется несколькими параметрами, называемыми «метрикой». Это может быть:

Пропускная способность канала;

Задержка информации при прохождении по этому каналу и т.д. Обобщив полученные сведения, маршрутизатор сообщает их всем соседям. после этого им строится ориентированный граф топологии домена маршрутизации. Каждому ребру графа назначается оценочный параметр (метрика)(рис.7.3.).

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

Протокол OSPF относится к классу ЮР-протоколов и заменяет протокол RIР в больших и сложных сетях. Рассылка информации о состоянии каналов производится каждые 30 минут. На основе этих сообщений на каждом из маршрутизаторов создается база данных состояния каналов (Link-State 1 Datadase). Эта база одинакова на всех маршрутизаторах домена.

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

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

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

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

Различают два вида маршрутизации:

  • Статическая маршрутизация
  • Динамическая маршрутизация

Деление происходит в зависимости от способа записи в таблицу маршрутизации.

Выполняют маршрутизацию, специальные устройства – маршрутизатороры или обычные компьютеры с несколькими сетевыми картами.

Маршрутизация в сетях на основе служб без установления соединения

Рассматривать процесс маршрутизации будем на условном примере.

По условию примера, Хосту 1 нужно передать сообщение Хосту 2 (рис. 1).

При этом длина сообщения в 4 раза длиннее допустимого к передаче. Из-за этого сообщение нужно разбить на 4 части (пакета) и последовательно отослать на маршрутизатор А.

Маршрутизатор А соединен только с маршрутизаторами В и С. Соответственно, все пакеты с Хоста А могут передаваться только на маршрутизаторы В и С.

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

Итак, через маршрутизатор А нужно передается 4 пакета. Согласно таблицы маршрутизации, действующей на данный момент времени, пакеты 1-3 передаются на маршрутизатор С. Далее согласно таблицы маршрутизации маршрутизатора С, пакеты передаются на Е — маршрутизатор, который связан непосредственно с хостингом В. Все пакеты 1-3 доставлены.

На следующий момент времени на маршрутизаторе А сменилась таблица маршрутизации, предположим из-за «пробки» на участке пути А-С-Е. Согласно новой таблицы маршрутизации, маршрутизатор А передает пакет 4 по пути маршрутизации А-В-Д, далее Е и на Хост В.

Отмечу, что таблицы маршрутизации оформляются по алгоритмам маршрутизации.

Это пример был для сетей с неустановленным соединением. А как осуществляется маршрутизация при уже установленном соединении.

Маршрутизация в сетях на основе служб с установлением соединения

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

Задача, передать информацию от Хоста 1 на Хост 2.

В данный момент (вспомним нулевой выпуск) у нас в Москве использованы адреса 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)

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

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

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

Добавить метки

Маршрутизация в сетях TCP/IP имеет 2 значения:

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

    Процесс построения такой таблицы

Маршрутизация существует как перенаправление IP-пакетов и маршрутизация как управление таблицами маршрутизации.

Хосты посылают пакеты только тем шлюзам, которые физически подключены к той же сети.

Локальные хосты могут перемещать пакеты только на 1 шаг в направлении узла назначения.

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

Таблицы маршрутизации ведутся статическим, динамическим и комбинированным способом.

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

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

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

Комбинированная маршрутизация . Для простых маршрутизаторов – статическая маршрутизация, для сложных – динамическая маршрутизация.

Существует 4 уровня сложности характеризующие процесс управления маршрутизацией в сети:

    0 уровень. Отсутствие маршрутизации как таковой

    Только статическая маршрутизация

    Преимущественно статическая маршрутизация с периодическими обновлениями маршрутов, которые изменяют статические таблицы маршрутизации (осуществляется с помощью протокола RIP)

    Динамическая маршрутизация

Фиксированная маршрутизация

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

Алгоритм простой маршрутизации

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

    Лавинная маршрутизация – пакеты передаются во всех направлениях кроме исходного

    Маршрутизация по предыдущему опыту. Этот метод динамической маршрутизации работает на основе пакетов проходивших через этот маршрут.

Адаптивная маршрутизация

Основана на??????????7

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

    Дистанционно-векторные алгоритмы

    Алгоритмы состояния связи

Дистанционно-векторные алгоритмы

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

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

Коммутации в сетях

В процессе развития сетевых компьютерных технологий выделилось 3 основных метода:

1. Коммутация каналов

2. Коммутация сообщений

3. Коммутация пакетов

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

Коммутация сообщений

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

Коммутация пакетов

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

Коммутация пакетов в компьютерных сетях – это основной способ передачи данных.

Преобладание коммутации пакетов как основного метода при реализации компьютерных сетей обусловлено следующими обстаятельствами:

    Коммутация пакетов приводит к малым задержкам при передаче данных.

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

    Представление данных пакетами создает условия для мультиплексирования потоков данных (разделение времени работы канала для одновременной нескольких потоков данных).

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

Методы коммутации пакетов

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

    Код начала и окончания пакета;

    Адреса отправителя и получателя;

    Номер пакетов сообщений;

    Информация для контроля достоверности в промежуточных узлах и в узле назначения.

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

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

При пакетной коммутации выдвигаются 2 противоречивых требования:

    Уменьшение задержки пакетов в сети за счет небольшой длины пакетов;

    Повышение эффективности передачи информации за счет увеличения длины пакета.

Для решения этих задач максимальный размер пакета устанавливается на основе 3 факторов:

    Распределение длин пакетов;

    Характеристика среды передачи

    Стоимость передачи.

Процесс передачи данных в сети с коммутацией пакетов представляется в виде следующей последовательности операций:

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

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

    Если тот узел также является промежуточным, то в нем также повторяется та же операция.

    Если канал связи с соседним узлом занят, то пакет может какое-то время хранится в ОЗУ коммутатора до освобождения канала.

    Сохраненные пакеты помещаются в очередь по направлению передачи. Как правило длина очереди не превышает 3-4 пакета, если длина очереди превышается – пакеты стираются.

Существует 2 метода пакетной коммутации:

    Датаграммный.

    Способ виртуальных соединений.

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

Все узлы, окружающие узел коммутации ранжируется по степени приближенности к коммутатору. Сначала пакет посылается узлам первого ранга, при неудаче – узлам второго ранга и т. д.

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

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

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

Этот пакет как бы прокладывает весь маршрут по которому пойдут все пакеты относящиеся к этому вызову.

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

Преимущество виртуального метода перед датанраммой – упорядоченность пакетов. Недостаток – как только что-то случается с промежуточным узлом – сообщение не доставляется.

  • Хост - конечное устройство, которое выступает отправителем или получателем данных. Но не следует путать конечного получателя с промежуточными устройствами, которые тоже принимают данные для дальнейшей их транспортировки.
  • Маска сети - последовательность бит, показывающая часть адреса, являющегося адресом сети. Единицы в маске сети должны идти подряд и начинаться со старшего бита.
  • Метрика - качество маршрута. Меньшее значение является лучшим.
  • Административная дистанция - степень доверия источнику маршрута. Понятие используется компанией Cisco Systems.
  • Internetwork - объединение двух и более сетей с общими принципами маршрутизации. Самый яркий пример - Internet.
  • Автономная система (AS) - это сеть, под управлением одного оператора, обычно это провайдер вместе с принадлежащими ему сетями или сеть крупной компании. Каждая AS имеет уникальный номер.

Вступление

Для чтения статьи необходимо иметь представление о сетевой модели OSI. Для этого рекомендуется ознакомиться со статьей "Сетевые модели OSI и TCP/IP" .

Те из вас, кто не первый день находится в сети, наверное, уже знаете понятие "основной шлюз". А может даже слышали об маршрутах, которые часто упоминаются жаргоном "роуты" (от англ. route). И если уже на то пошло, то более правильное произношение слова "рут" или "раут". Эти понятия стали неотъемлемой частью нашего прибывания в Internet. А ведь Internet играет огромную роль в современном мире. А что на самом деле он собой представляет? Internet - это сеть мирового масштаба. Более примитивные его аналоги можно встретить в любой уважающей себя крупной компании, которые создают свои сети с множеством серверов, а они в свою очередь предоставляют пользователям доступ к разнообразным ресурсам. Таким образом создано огромное множество сетей.

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

Начальные и поверхностные сведения

Итак, что же такое маршрутизация? Маршрутизация - это процесс выбора маршрута следования пакета. Устройство, совершающее этот выбор, называется маршрутизатором. Маршрутизаторы работают на третьем уровне модели OSI. Используя для выбора маршрута лишь адрес сети, а адрес хоста отбрасывает. Чтобы выделить из IP адреса адрес сети, применяется маска сети. Но одними лишь формальными формулировками сыт не будешь. Поэтому будем смотреть более глубже.

Для начала разберем, что же такое маршрут. Маршрут - это направление. Хотя многие привыкли представлять себе сразу весь пройденный путь пакетом, изображая его как последовательность ребер графа (представляющего сеть логически), но с точки зрения отдельного маршрутизатора это немного не так. Каждый маршрутизатор может сказать на какой интерфейс или какому следующему маршрутизатору отправить пакет, таким образом задав направление движение. Собрав последовательно эти направления, мы получим весь путь следования.

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

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

Во-первых, как клиентская машина отправляет пакеты маршрутизатору и как тот понимает что пакет предназначен для маршрутизации? Для этого пакеты отправляются с физическим адресом маршрутизатора (точнее говоря, на втором уровне они предназначены для маршрутизатора), но сетевым адресом получателя. Таким образом сетевой кадр предназначается маршрутизатору, потому он принимается и декапсулируется до пакета. Но на сетевом уровне, пакет не предназначается ему. На этом этапе и начинается маршрутизация. Как было упомянуто выше, она проходит на сетевом уровне и не выходит за его рамки.

Следующее действие, которое нас интересует - это процесс сравнения адреса сети. Итак, имея таблицу маршрутизации, нам нужно выбрать наилучший маршрут. Для этого существует от двух до трех этапов. Сначала сравнивается адрес сети на наибольшее сходство. Если таких маршрутов несколько, то выбираются маршруты с наименьшей административной дистанцией. И наконец, среди оставшихся выбирается маршрут с наименьшей метрикой. Административная дистанция - это степень доверия источнику. Это понятие используется компанией Cisco Systems и о нем мы вспомним при рассмотрении динамической маршрутизации. Маршрутизаторы, имеющие один источник динамических маршрутов или производящие лишь статическую маршрутизацию, сравнивают только адреса сетей и метрики. К слову, на каждом компьютере тоже имеется таблица маршрутизации и когда вы хотите запросить страницу из Internet, компьютер совершает аналогичные действия по выбору маршрута.

Может случиться такая ситуация, что лучших маршрутов оказалось несколько в таблице маршрутизации. В таком случае нету четких указаний что делать. Аппаратные маршрутизаторы Cisco производят распределение нагрузки между этими маршрутами, чередуя пакеты.

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

Пусть у нас имеется три маршрута на сети 10.0.1.0/24, 10.0.2.0/24 и 10.0.3.0/24. При чем маршруты на первую и третью сети одинаковы. В этом случае можно уменьшить количество записей таблицы маршрутизации, ускорив этим процесс поиска наилучшего маршрута. Для этого мы объединим первый и третий маршруты, после чего остаются только два маршрута. При чем объединить мы можем любой покрывающей сетью, например, 10.0.0.0/8. Маршрутизация будет продолжать правильно работать, так как для сети 10.0.2.0/24 будет выбран маршрут с наибольшим совпадением (точнее полным) адреса сети, а для остальных адресов из 10.0.0.0/8 будет выбран обобщенный маршрут. Как вы уже заметили, что маршрутизатор начинает отправлять пакеты на несуществующие сети (из-за сети 10.0.0.0/8) и хотя такие пакеты выбросятся дальше, это займет ресурсы маршрутизатора, поэтому может является плохим подходом. Объединение маршрутов называется префиксной агрегацией или суммаризацией маршрутов.

Различается всего два вида маршрутизации: статическая и динамическая.

Статическая маршрутизация

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

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

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

Динамическая маршрутизация

Динамическая маршрутизация совершается за счет динамических протоколов маршрутизации. При их помощи маршрутизатор строит и обновляет свою таблицу маршрутизации.

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

Динамические протоколы маршрутизации делятся на внешние и внутренние. А внутренние в свою очередь на дистанционно-векторные протоколы и протоколы link state (состояния канала).

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

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

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

Среди внешних протоколов маршрутизации можно отметить протокол BGP, на котором держится Internet. Он является протоколом path state (состояния пути). Это значит что он оперирует с лучшими путями, которые задаются списком автономных систем (AS), через которые должен пройти пакет. Как правило, количество AS в пути не велико и лучше считается тот путь, что содержит меньшее количество AS. Для гарантии того, чтобы какой-то маршрут был запасным, придаются хитрости и повторяют несколько раз номер своей AS в пути, увеличивая тем самым длину. Когда же пакет достигает нужной AS, вступает в силу внутренняя маршрутизация.

На одном маршрутизаторе могут одновременно работать множество протоколов маршрутизации. Они также могут анонсировать одинаковые сети. Представим, что есть сеть, в которой каждый маршрутизатор соединен со всеми остальными (такая топология называется full mesh). Таким образом в одну сеть мы можем попасть разными способами. Но давайте запустим в такой сети разные протоколы маршрутизации, например RIP и EIGRP. Выберем для рассмотрения маршрутизатор, на котором работают оба эти протокола. Проблема состоит в том, что метрика в протоколе RIP может принимать значение от 1 до 15, в то время как в EIGRP она принимает довольно таки внушительные значения. Если сверять метрику, то сети анонсированные протоколом RIP, будут считаться более приоритетными. Выходит, что метрики разных протоколов нельзя сравнивать. И как известно, EIGRP строит более качественные маршруты, поэтому нужен какой-то промежуточный шаг в сравнении маршрутов. Компания Cisco использует для этого понятие административной дистанции. Каждому протоколу присвоено уникальное значение, которое задает степень доверия, и чем оно ниже, тем протокол считается предпочтительней. Поэтому перед сравнением метрики, мы выбираем только один протокол для каждой сети. Но значение административной дистанции для протокола можно и менять на маршрутизаторах Cisco, но это изменение остается в силах только в пределах маршрутизатора.

Заключение

Маршрутизаторы являются ключевым звеном любой сети internetwork. Можно заключить об двух основных задачах, которые решают маршрутизаторы:

  1. Нахождение наилучшего маршрута
  2. Отправка пакета по этому маршруту

Маршрутизация сделала возможным объединение отдельных сетей в одну глобальную сеть. Где каждому участнику сети доступны все ресурсы. Можно говорить о трех принципах маршрутизации:

  1. Каждый маршрутизатор принимает решение сам. При этом не оговаривается откуда получена информация о маршрутах.
  2. Если один маршрутизатор имеет полную таблицу маршрутизации, то это не значит, что и у остальных она тоже полная. Можно привести много причин и примеров когда сеть не сходится. В некоторых случаях это может привести к потере данных, а в некоторых и к циклам маршрутизации. Именно поэтому важно правильно и полно настроить статические маршруты на маршрутизаторах и/или правильно подобрать и настроить динамический протокол маршрутизации.
  3. Существование маршрута в одну сторону не гарантирует существование обратного маршрута. Простыми словами, пакет может достигнуть получателя, но обратного пути для ответного пакета может не быть. К этому приводит неполнота таблицы маршрутизации на каком-нибудь маршрутизаторе по пути.

-----
Специально для сайт
Копирование материала только с разрешения автора
(c) 2009 pasis