DCN - Маршрутизация на сетевом уровне
Когда у устройства есть несколько путей для достижения пункта назначения, оно всегда выбирает один путь, предпочитая его другим. Этот процесс выбора называется маршрутизацией. Маршрутизация выполняется с помощью специальных сетевых устройств, называемых маршрутизаторами, или с помощью программных процессов. Программные маршрутизаторы имеют ограниченную функциональность и ограниченный объем.
Маршрутизатор всегда настроен с некоторым маршрутом по умолчанию. Маршрут по умолчанию сообщает маршрутизатору, куда пересылать пакет, если маршрут для определенного пункта назначения не найден. Если существует несколько путей для достижения одного и того же пункта назначения, маршрутизатор может принять решение на основе следующей информации:
Количество хмеля
Bandwidth
Metric
Prefix-length
Delay
Маршруты можно настраивать статически или динамически изучать. Один маршрут можно настроить так, чтобы он был предпочтительнее других.
Одноадресная маршрутизация
Большая часть трафика в Интернете и интрасетях, известном как одноадресные данные или одноадресный трафик, отправляется по указанному назначению. Маршрутизация одноадресных данных через Интернет называется одноадресной маршрутизацией. Это простейшая форма маршрутизации, поскольку пункт назначения уже известен. Следовательно, маршрутизатору просто нужно найти таблицу маршрутизации и переслать пакет на следующий переход.
Маршрутизация вещания
По умолчанию широковещательные пакеты не маршрутизируются и не пересылаются маршрутизаторами в какой-либо сети. Маршрутизаторы создают широковещательные домены. Но в некоторых особых случаях его можно настроить для пересылки трансляций. Широковещательное сообщение предназначено для всех сетевых устройств.
Маршрутизация широковещательной передачи может осуществляться двумя способами (алгоритмом):
Маршрутизатор создает пакет данных и затем отправляет его каждому хосту один за другим. В этом случае маршрутизатор создает несколько копий одного пакета данных с разными адресами назначения. Все пакеты отправляются как одноадресные, но поскольку они отправляются всем, это имитирует широковещательную рассылку маршрутизатора.
Этот метод потребляет большую полосу пропускания, и маршрутизатор должен иметь адрес назначения каждого узла.
Во-вторых, когда маршрутизатор получает пакет, который должен быть передан, он просто перенаправляет эти пакеты со всех интерфейсов. Все роутеры настраиваются одинаково.
Этот метод прост для ЦП маршрутизатора, но может вызвать проблему дублирования пакетов, полученных от одноранговых маршрутизаторов.
Пересылка по обратному пути - это метод, при котором маршрутизатор заранее знает о своем предшественнике, откуда он должен принимать широковещательные сообщения. Этот метод используется для обнаружения и удаления дубликатов.
Многоадресная маршрутизация
Многоадресная маршрутизация - это частный случай широковещательной маршрутизации со значительными различиями и проблемами. При широковещательной маршрутизации пакеты отправляются всем узлам, даже если они этого не хотят. Но при многоадресной маршрутизации данные отправляются только тем узлам, которые хотят получать пакеты.
Маршрутизатор должен знать, что есть узлы, которые хотят получать многоадресные пакеты (или поток), тогда только он должен пересылать. Многоадресная маршрутизация работает по протоколу связующего дерева, чтобы избежать зацикливания.
В многоадресной маршрутизации также используется метод пересылки обратного пути для обнаружения и удаления дубликатов и петель.
Маршрутизация Anycast
Пересылка пакетов Anycast - это механизм, при котором несколько хостов могут иметь один и тот же логический адрес. Когда получен пакет, предназначенный для этого логического адреса, он отправляется на ближайший по топологии маршрутизации хост.
Маршрутизация Anycast выполняется с помощью DNS-сервера. Каждый раз, когда получен пакет Anycast, он запрашивает у DNS, куда его отправить. DNS предоставляет IP-адрес, который является ближайшим IP-адресом, настроенным на нем.
Протоколы одноадресной маршрутизации
Для маршрутизации одноадресных пакетов доступны два типа протоколов маршрутизации:
Протокол дистанционной векторной маршрутизации
Distance Vector - это простой протокол маршрутизации, который принимает решение о маршрутизации в зависимости от количества переходов между источником и пунктом назначения. Маршрут с меньшим количеством прыжков считается лучшим. Каждый маршрутизатор объявляет свои лучшие маршруты другим маршрутизаторам. В конечном итоге все маршрутизаторы строят свою топологию сети на основе объявлений своих одноранговых маршрутизаторов,
Например, протокол информации о маршрутизации (RIP).
Протокол маршрутизации состояния канала
Протокол состояния канала немного сложнее, чем протокол Distance Vector. Он учитывает состояния каналов всех маршрутизаторов в сети. Этот метод помогает маршрутам построить общий график всей сети. Затем все маршрутизаторы вычисляют свой лучший путь для целей маршрутизации, например, сначала откройте кратчайший путь (OSPF) и от промежуточной системы к промежуточной системе (ISIS).
Протоколы многоадресной маршрутизации
Протоколы одноадресной маршрутизации используют графы, тогда как протоколы многоадресной маршрутизации используют деревья, то есть связующее дерево, чтобы избежать петель. Оптимальное дерево называется остовным деревом кратчайшего пути.
DVMRP - Протокол многоадресной маршрутизации с вектором расстояния
MOSPF - Многоадресная рассылка сначала открывает кратчайший путь
CBT - Дерево на основе ядра
PIM - Независимая от протокола многоадресная передача
В настоящее время широко используется независимая от протокола многоадресная передача. Имеет два вкуса:
PIM Dense Mode
В этом режиме используются деревья на основе исходного кода. Он используется в плотной среде, такой как LAN.
PIM Sparse Mode
В этом режиме используются общие деревья. Он используется в разреженной среде, такой как WAN.
Алгоритмы маршрутизации
Алгоритмы маршрутизации следующие:
Наводнение
Флуд - это простейший метод пересылки пакетов. Когда пакет получен, маршрутизаторы отправляют его на все интерфейсы, кроме того, на котором он был получен. Это создает слишком большую нагрузку на сеть и множество дублирующих пакетов блуждают по сети.
Время жизни (TTL) можно использовать, чтобы избежать бесконечного зацикливания пакетов. Существует другой подход к лавинной рассылке, который называется выборочной лавинной рассылкой для уменьшения накладных расходов в сети. В этом методе роутер лавинит не на всех интерфейсах, а на выборочных.
Кратчайший путь
Решение о маршрутизации в сетях в основном принимается на основе стоимости между источником и местом назначения. Подсчет хмеля играет здесь большую роль. Кратчайший путь - это метод, в котором используются различные алгоритмы для определения пути с минимальным количеством переходов.
Распространенные алгоритмы кратчайшего пути:
Алгоритм Дейкстры
Алгоритм Беллмана Форда
Алгоритм Флойда Уоршалла