Маршрутизация (англ. Routing) — процесс определения маршрута следования информации в сетях связи.
Маршруты могут задаваться административно (статические маршруты), либо вычисляться с помощью алгоритмов маршрутизации, базируясь на информации о топологии и состоянии сети, полученной с помощью протоколов маршрутизации (динамические маршруты).
Статическими маршрутами могут быть:
· маршруты, не изменяющиеся во времени;
· маршруты, изменяющиеся по расписанию;
Маршрутизация в компьютерных сетях типично выполняется специальными программно-аппаратными средствами — маршрутизаторами; в простых конфигурациях может выполняться и компьютерами общего назначения, соответственно настроенными.
Маршрутизируемые протоколы
Протокол маршрутизации может работать только с пакетами, принадлежащими к одному из маршрутизируемых протоколов, например, IP, IPX или Xerox Network System, AppleTalk. Маршрутизируемые протоколы определяют формат пакетов (заголовков), важнейшей информацией из которых для маршрутизации является адрес назначения. Протоколы, не поддерживающие маршрутизацию, могут передаваться между сетями с помощью туннелей. Подобные возможности обычно предоставляют программные маршрутизаторы и некоторые модели аппаратных маршрутизаторов.
Программная и аппаратная маршрутизация
Первые маршрутизаторы представляли собой специализированное ПО, обрабатывающее приходящие IP-пакеты специфичным образом. Это ПО работало на компьютерах, у которых было несколько сетевых интерфейсов, входящих в состав различных сетей (между которыми осуществляется маршрутизация). В дальнейшем появились маршрутизаторы в форме специализированных устройств. Компьютеры с маршрутизирующим ПО называют программные маршрутизаторы, оборудование - аппаратные маршрутизаторы.
В современных аппаратных маршрутизаторах для построения таблиц маршрутизации используется специализированное ПО ("прошивка"), для обработки же IP-пакетов используетсякоммутационная матрица (или другая технология аппаратной коммутации), расширенная фильтрами адресов в заголовке IP-пакета.
Аппаратная маршрутизация
Выделяют два типа аппаратной маршрутизации: со статическими шаблонами потоков и с динамически адаптируемыми таблицами.
Основная статья: коммутация IP-пакетов
Статические шаблоны потоков подразумевают разделение всех входящих в маршрутизатор IP-пакетов на виртуальные потоки; каждый поток характеризуется набором признаков для пакета такие как: IP-адресами отправителя/получателя, TCP/UDP-порт отправителя/получателя (в случае поддержки маршрутизации на основании информации 4 уровня), порт, через который пришёл пакет. Оптимизация маршрутизации при этом строится на идее, что все пакеты с одинаковыми признаками должны обрабатываться одинаково (по одинаковым правилам), при этом правила проверяются только для первого пакета в потоке (при появлении пакета с набором признаков, не укладывающимся в существующие потоки, создаётся новый поток), по результатам анализа этого пакета формируется статический шаблон, который и используется для определения правил коммутации приходящих пакетов (внутри потока). Обычно время хранения неиспользующегося шаблона ограничено (для освобождения ресурсов маршрутизатора). Ключевым недостатком подобной схемы является инерционность по отношению к изменению таблицы маршрутизации (в случае существующего потока изменение правил маршрутизации пакетов не будет "замечено" до момента удаления шаблона).
Динамически адаптируемые таблицы используют правила маршрутизации "напрямую", используя маску и номер сети из таблицы маршрутизации для проверки пакета и определения порта, на который нужно передать пакет. При этом изменения в таблице маршрутизации (в результате работы, например, протоколов маршрутизации/резервирования) сразу же влияют на обработку всех новопришедших пакетов. Динамически адаптируемые таблицы также позволяют легко реализовывать быструю (аппаратную) проверку списков доступа.
Программная маршрутизация
Программная маршрутизация выполняется либо специализированным ПО маршрутизаторов (в случае, когда аппаратные методы не могут быть использованы, например, в случае организации туннелей), либо программным обеспечением на компьютере. В общем случае, любой компьютер осуществляет маршрутизацию своих собственных исходящих пакетов (как минимум, для разделения пакетов, отправляемых на шлюз по умолчанию и пакетов, предназначенных узлам в локальном сегменте сети). Для маршрутизации чужих IP-пакетов, а также построения таблиц маршрутизации используется различное ПО:
· Сервис RRAS (англ. routing and remote access service) в Windows Server
· Демоны routed, gated, quagga в Unix-подобных операционных системах (Linux, FreeBSD и т.д..)
Динамическая маршрутизация
Динамическая маршрутизация — вид маршрутизации, при котором таблица маршрутизации редактируется программно.
Протоколы динамической маршрутизации:
§ RIP
§ OSPF
§ EIGRP
§ BGP
§ IS-IS
протоколы динамической маршрутизации можно классифицировать по нескольким критериям.
По алгоритмам:
§ Дистанционно-векторные протоколы (Distance-vector Routing Protocols);
§ RIP
§ Протоколы состояния каналов связи (Link-state Routing Protocols).
§ OSPF
§ IS-IS
§ Иногда выделяют третий класс, усовершенствованные дистанционно-векторные протоколы (advanced distance-vector), для того чтобы подчеркнуть существенные отличия протоколов от классических дистанционно-векторных.
§ EIGRP
По области применения:
§ Междоменной маршрутизации;
§ BGP
§ Внутридоменной маршрутизации.
§ OSPF
§ RIP
§ EIGRP
§ IS-IS
Метрика – величина, используемая для поиска оптимального маршрута и сравнения маршрутов (своя для каждого протокола, напр.: при поиске оптимальных маршрутов протокол OSPF по умолчанию использует метрику, учитывающую пропускную способность каналов связи. Кроме того, допускается применение двух других метрик, учитывающих задержки и надежность передачи пакетов каналами связи).
Административное расстояние — это функция, используемая маршрутизаторами для выбора оптимального маршрута при наличии двух и более различных маршрутов до одной цели по различным протоколам маршрутизации. Административное расстояние определяет надежность протокола маршрутизации. Каждому протоколу маршрутизации назначается приоритет надежности (достоверности), от максимального до минимального, указанный с помощью значения административного расстояния.
Таблица значений административных расстояний по умолчанию для протоколов, поддерживаемых Cisco
Источник маршрута |
Значения расстояний по умолчанию |
Подключенный интерфейс |
0 |
Статический маршрут |
1 |
Объединенный маршрут по протоколу EIGRP |
5 |
Протокол BGP |
20 |
Внутренний протокол EIGRP |
90 |
Протокол IGRP |
100 |
Протокол OSPF |
110 |
Протокол IS-IS |
115 |
Протокол RIP |
120 |
Протокол EGP |
140 |
Протокол ODR |
160 |
Внешний протокол EIGRP |
170 |
Внутренний протокол BGP |
200 |
Таблица маршрутизации — электронная таблица (файл) или база данных, которая хранится на маршрутизаторе или сетевом компьютере, которая описывает соответствие между адресами назначения и интерфейсами, через которые следует отправить пакет данных до следующего маршрутизатора. Является простейшей формой правил маршрутизации.
Таблица маршрутизации обычно содержит:
· адрес сети или узла назначения, либо указание, что маршрут является маршрутом по умолчанию
· маску сети назначения (для IPv4-сетей маска /32 (255.255.255.255) позволяет указать единичный узел сети)
· шлюз, обозначающий адрес маршрутизатора в сети, на который необходимо отправить пакет, следующий до указанного адреса назначения
· интерфейс (в зависимости от системы это может быть порядковый номер, GUID или символьное имя устройства)
· метрику — числовой показатель, задающий предпочтительность маршрута. Чем меньше число, тем более предпочтителен маршрут (интуитивно представляется как расстояние).
В таблице может быть один, а в некоторых операционных системах и несколько шлюзов по умолчанию. Такой шлюз используется для сетей для которых нет более конкретных маршрутов в таблице маршрутизации.
Алгоритмы маршрутизации должны быстро сходиться. Сходимость - это процесс соглашения между всеми роутерами по оптимальным маршрутам. Когда какое-нибудь событие в сети приводит к тому, что маршруты или отвергаются, или ставновятся доступными, роутеры рассылают сообщения об обновлении маршрутизации. Сообщения об обновлении маршрутизации пронизывают сети, стимулируя пересчет оптимальных маршрутов и, в конечном итоге, вынуждая все роутеры придти к соглашению по этим маршрутам. Алгоритмы мааршрутизации, которые сходятся медленно, могут привести к образованию петель маршрутизации или выходам из строя сети.