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

Введение

С момента рождения интернета десятки лет назад существовала необходимость маршрутизации трафика с одного компьютера на другой и с одной сети в другую. По мере развития интернета возрастала и сложность этого процесса. Сегодня существует множество протоколов для пересылки трафика, включая протоколы Border Gateway Protocol и Open Shortest Path First. Одним из протоколов, с которым пользователи интернета не работают непосредственно, является протокол Border Gateway Protocol (протокол пограничного шлюза), но этот протокол является неотъемлемым для работы интернета и важной частью избыточности интернета. В этой статье я буду использовать протокол Border Gateway Protocol, чтобы раскрыть некоторые сложные вопросы, о которых большинство не знает, или, по крайней мере, не задумывается.

Предыстория BGP

Интернет состоит из тысяч отдельных сетей. Эти сети сгруппированы вместе в совокупности, называемые автономными системами (Autonomous Systems - ASes), которых существуют десятки тысяч. Когда компьютеру в одной из этих ASes необходимо отправить пакеты на компьютер в другой AS, пакету нужно найти путь через все эти "совокупности" к нужной AS. Этот процесс перемещения пакетов через ASes называется маршрутизацией. Протокол, обеспечивающий эту маршрутизацию, называется Border Gateway Protocol (BGP), на рисунке 1 ниже показана графическая схема маршрутизации между логическими ASes. Этот протокол отличается от других протоколов маршрутизации, таких как Open Shortest Path First (OSPF), который очень распространен в средних и больших корпоративных сетях. Протокол OSPF, однако, не подходит для работы в таких масштабах, для которых был разработан BGP. Но BGP не ограничен маршрутизацией пакетов между ASes и часто может использоваться для очень больших корпоративных сетей.

Рисунок 1: BGP маршрутизация между автономными системами, предоставлено https://www.cisco.com Рисунок 1: BGP маршрутизация между автономными системами, предоставлено https://www.cisco.com

BGP часто называется External BGP (EBGP), когда используется для маршрутизации пакетов между ASes и Internal BGP (IBGP), когда используется в одной AS. Как я уже говорил, IBGP может зачастую использоваться в очень больших производственных сетях. Одна из причин, по которым администраторы могут выбрать применение IBGP в своих сетях, может заключаться в использовании технологии BGPмножественной адресации (multi-homing), которая может улучшать избыточность сети для множественных точек доступа.

Вопросы производительности

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

Одной из проблем, с которой интернету приходилось справляться несколько лет назад, был значительный рост таблиц маршрутизации. Эта проблема была "решена" (они все еще довольно большие) с введением Classless Inter-Domain Routing (CIDR) (бесклассовая междоменная маршрутизация). Чем больше таблица маршрутизации, тем больше времени требуется роутеру на обновление этой таблицы, что может приводить к значительным задержкам в сетевой производительности. Это также может повышать потребление ресурсов ЦП, что в свою очередь ведет к задержкам маршрутизации.

Одной из методик, которую разработчики сети могут использовать, называется конфедерациями (confederations). Благодаря конфедерациям большие сети предприятия могут быть разделены на логические ASes, при этом в каждой AS реализуются подключения с полным зацеплением и дополнительной маршрутизацией между ASes. По сути, это означает, что сеть предприятия будет отображать зеркально то, как выглядит интернет с точки зрения архитектуры.

Сетевая реализация IBGP может также применять Router Reflecting (RR) архитектуру. В такой архитектуре несколько роутеров могут взаимодействовать с центральной точкой, действующей в качестве сервера рефлектора роутеров (router reflector server), а другие роутеры выступают в роли клиентов рефлектора роутеров. Это может значительно снижать количество сеансов, которые роутер должен обслуживать, и значительно снижать нагрузку роутера. Однако такая архитектура может привести к менее оптимальной маршрутизации. Как всегда здесь есть компромисс.

Еще одной характеристикой производительности, которую разработчики сети должны учитывать, называется колебание маршрута. Чтобы наглядно увидеть колебание маршрута, посмотрите на рисунок 2. В больших сетях довольно распространенным для таблиц маршрутизации BGP является частое обновление, поскольку подключения то возникают, то пропадают. Однако для любого конкретного роутера такой тип активности должен быть относительно частым. Иногда, все же, роутеры настраиваются некорректно; это часто ведет к повторяющимся и избыточным циклам отключения и подключения. Затем это может приводить к чрезмерной активности всех этих участников маршрутизации. Когда роутер подключается к сети, будь то первое подключение или повторное подключение после непродолжительного перерыва, об этом направляется информация на всех участников маршрутизации. Это может приводить к довольно большой нагрузке на ЦП в течение короткого периода времени (несколько секунд). Такая активность называется колебание маршрута. Чтобы решить эту проблему многие архитектуры BGP применения включают успокоение колебаний маршрута.

Успокоение колебаний маршрута (Route flap damping) представляет собой процесс, который пытается ограничить распространяющиеся негативные воздействия колебаний маршрута. Когда процесс успокоения колебаний маршрута применяется, принцип его работы заключается в игнорировании повторяющихся анонсирований (когда роутер становится вновь доступным) на более длительные периоды. Ранее процесс успокоения колебаний маршрута воспринимался как эффективный способ снижения колебаний. Однако по мере того, как производительность роутеров и их способность обновлять таблицы маршрутизации значительно повысилась, наряду со скоростью соединений между роутерами-участниками, процесс успокоения колебаний маршрута зачастую становится помехой оптимальной работе сети. Многие сетевые специалисты теперь возражают против использования этого процесса. Во избежание неприятностей, если вы работаете сетевым администратором, вам в первую очередь нужно более эффективно управлять роутерами!

Рисунок 2: Повышенная активность колебаний маршрута, представлено www.inetdevgrp.org Рисунок 2: Повышенная активность колебаний маршрута, представлено www.inetdevgrp.org

Архитектура роутеров

Что же заставило эти роутеры работать так хорошо, что больше не требуется успокоение колебаний маршрута? На то есть масса очевидных причин. С одной стороны, центральные процессоры роутеров теперь имеют более высокую производительность подобно тому, как была повышена производительность ЦП компьютеров. Во-вторых, скорость шины также значительно увеличилась. Еще одним основным изменением, внесшим свой вклад в повышение производительности роутеров, являются их архитектурные изменения, которые имели место в течение нескольких последних лет. Если говорить точнее, я имею в виду изменение, в результате которого обновления таблиц маршрутизации стали выполнятся процессорами сетевых карт. Эти процессоры сетевых карт также отвечают за пересылку. ЦП обеспечивает работу операционной системы, а все задачи управления выполняются администратором. Такая децентрализация значительно повысила общую производительность сетевой маршрутизации.

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

Автор: Рассел Хичкок (Russel Hitchcock)

Рассел Хичкок (Russel Hitchcock)Рассел Хичкок (Russell Hitchcock) работает консультантом, в его обязанности входит сетевое аппаратное обеспечение (networked hardware), контрольные системы и антенны. Рассел также пишет технические статьи на различные темы.

Источник: https://www.Redline-Software.com

Возникли вопросы?

Обращайтесь на форум!