□ Политика. Среди автономных систем политические вопросы доминируют. Может быть важным, чтобы трафик, сгенерированный в некоторой автономной системе, не мог проходить через другую конкретную автономную систему. Аналогично, конкретная автономная система может пожелать контролировать транзитный трафик, переносимый между другими автономными системами. Мы видели, что протокол BGP передает атрибуты маршрутов и предоставляет возможность контролируемого распределения информации о маршрутах, что позволяет принимать политические решения о выборе маршрутов.
□ Масштабирование. Способность алгоритма маршрутизации и его структур данных к масштабированию в целях поддержания большого количества сетей является ключевой для внешней маршрутизации. В пределах одной автономной системы значимость масштабирования не так велика, поскольку, если какой-либо административный домен становится слишком большим, его всегда можно разбить на две автономные системы поменьше и соединить их с помощью механизмов внешней маршрутизации. (Вспомним также, что протокол OSPF позволяет разделять автономную систему на отдельные области, создавая таким образом иерархическую структуру.)
□ Производительность. Поскольку политические вопросы играют во внешней маршрутизации столь важную роль, качество обслуживания в используемых маршрутах (например, производительность) часто оказывается на втором плане (то есть более длинному или более дорогому маршруту, удовлетворяющему определенным политическим критериям, может быть оказано предпочтение по сравнению с более коротким маршрутом, который не удовлетворяет этим критериям). Действительно, мы видели, что при маршрутизации между автономными системами стоимость даже не упоминается (не считая количества ретрансляционных участков). Однако в пределах одной автономной системы подобные политические соображения не столь важны, что позволяет при выборе маршрута больше внимания уделить производительности.
До сих пор в нашем обсуждении мы уделяли внимание вопросам использования протокола BGP для выбора маршрута между маршрутизаторами разных автономных систем, то есть так называемому протоколу E-BGP (External BGP — внешний протокол BGP).
Однако существует и другая версия протокола BGP, называемая протоколом I-BGP (Internal BGP — внутренний протокол BGP). Протокол I-BGP применяется для доставки находящимся в той же автономной системе маршрутизаторам информации о маршрутах, касающейся адресатов, расположенных за пределами автономной системы. Чтобы понять, зачем нужен протокол I-BGP, вернемся к рис. 11.4. Как может маршрутизатор R5 получить информацию о маршрутах к удаленным автономным системам, например, AS2 и AS3? Как уже было показано, протокол внутренней маршрутизации, например RIP, позволяет указать маршрут по умолчанию. По этому маршруту отправляются дейтаграммы, адресат которых не указан явно в таблице продвижения данных. Другая возможность состоит в использовании протокола I-BGP для распределения внутри автономной системы информации о маршрутах, касающейся адресатов, расположенных за пределами автономной системы. В протоколах I-BGP и E-BGP применяются одинаковые форматы сообщений и форматы атрибутов путей, но между этими двумя протоколами имеется несколько существенных различий. Все I-BGP-маршрутизаторы в пределах одной автономной системы логически связаны друг с другом. То есть все I-BGP-маршрутизаторы в пределах одной автономной системы считаются соседями друг друга. Кроме того, I-BGP-маршрутизаторы ограничены в способах информирования о маршрутах, о которых они узнают от других I-BGP-маршрути-заторов (в отличие от E-BGP-маршрутизаторов).
Как уже отмечалось, протокол BGP является стандартом де-факто для маршрутизации внутри автономных систем в Интернете. Например, протокол BGP используется в основных точках доступа в сеть (Network Access Point, NAP), через которые крупнейшие Интернет-провайдеры связываются друг с другом и обмениваются трафиком.
3. Устройство маршрутизатора
Условная схема маршрутизатора показана на рис. 11.6. Маршрутизатор состоит из четырех компонентов.

Рис. 11.6 Архитектура маршрутизатора
□ Входные порты. Входной порт выполняет несколько функций. Он выполняет функции физического уровня (самый левый прямоугольник входного порта и самый правый прямоугольник выходного порта на рис. 4.33), завершая входную физическую линию маршрутизатора. Он также осуществляет функции канального уровня (средние прямоугольники входного и выходного портов), необходимые для взаимодействия с функциями канального уровня на другой стороне линии связи. Еще он выполняет функции поиска и продвижения данных (самый правый прямоугольник входного порта и самый левый прямоугольник выходного порта), так что пакет, переправленный в коммутационный блок маршрутизатора, на выходе из него появляется из того порта, из которого следует. Управляющие пакеты (например, пакеты, содержащие информацию протокола RIP, OSPF или BGP) продвигаются из входного порта в маршрутный процессор. На практике несколько портов часто объединяют на одной канальной карте маршрутизатора.
□ Коммутационный блок. Коммутационный блок соединяет входные порты маршрутизатора с его выходными портами. Коммутационный блок целиком располагается внутри маршрутизатора — сеть внутри сетевого маршрутизатора!
□ Выходные порты. Выходной порт хранит пакеты, переправленные ему через коммутационный блок, а затем передает пакеты по выходной линии. Таким образом, выходной порт осуществляет функции физического и канального уровней, обратные функциям входного порта. В случае двунаправленной линии связи (то есть когда линия передает данные в оба направления) выходной порт линии связи, как правило, составляет пару с входным портом этой линии, располагаясь на той же самой карте канала.
□ Маршрутный процессор. Маршрутный процессор выполняет функции протоколов маршрутизации (например, тех, которые мы изучали в разделе «Маршрутизация в Интернете»), обрабатывает информацию о маршрутах, а также выполняет функции управления сетью в маршрутизаторе.
Входные порты
Более детальная, чем на рис. 11.8, функциональная схема входного порта приведена на рис. 11.7. Как уже упоминалось, блок завершения физической линии входного порта маршрутизатора и блок обработки канального уровня реализуют физический и канальный уровни входной линии маршрутизатора. Блок поиска/ продвижения данных входного порта является центральным для системы коммутации маршрутизатора. Во многих маршрутизаторах именно здесь маршрутизатор определяет выходной порт, которому будет передан принятый пакет через коммутационный блок. Выбор выходного порта осуществляется при помощи информации, содержащейся в таблице продвижения данных. Хотя таблица продвижения данных вычисляется маршрутным процессором, локальнная копия таблицы продвижения данных, как правило, сохраняется на каждом входном порту и, при необходимости обновляется маршрутным процессором. Наличие локальных копий таблицы продвижения данных позволяет принимать решения о коммутации локально на каждом входном порту, не занимая централизованный маршрутный процессор. Подобная централизованная коммутация позволяет избежать заторов на входе в маршрутизатор.

Рис. 11.7 Обработка на входном порту
На маршрутизаторах с ограниченными мощностями процессоров входного порта входной порт может просто переправлять пакет централизованному маршрутному процессору, чтобы тот сам осуществлял поиск в таблице продвижения данных и переправлял пакет в соответствующий выходной порт. Такой подход предпринимается, когда рабочая станция или сервер выполняет функции маршрутизатора.
В данном случае роль маршрутного процессора исполняет центральный процессор рабочей станции, а входной порт представляет собой просто сетевую интерфейсную карту (например, Ethernet-карту).
При наличии таблицы продвижения данных поиск представляет собой относительно простую задачу — мы просто просматриваем таблицу продвижения данных, ища запись, которая лучше всего соответствует сетевому адресу получателя пакета. Если такую запись в таблице найти не удается, для передачи пакета выбирается маршрут по умолчанию. (В подразделе «Адресация в протоколе IPv4» раздела «Интернет-протокол» отмечалось, что лучшим соответствием адресу получателя пакета считается табличная запись с самым длинным сетевым префиксом, совпадающим с адресом получателя пакета.) На практике, однако, все не так просто. Возможно, наиболее важный усложняющий фактор состоит в том, что магистральные маршрутизаторы должны работать на высоких скоростях, выполняя миллионы операций поиска в секунду. В самом деле, желательно, чтобы входной порт мог работать на скорости линии, то есть операция поиска должна выполняться быстрее операции приема пакета во входной порт. В этом случае обработка полученного пакета может быть выполнена прежде, чем завершится операция получения следующего пакета. Чтобы получить представление о необходимой производительности операции поиска, рассмотрим так называемую линию ОС48, передающую данные на скорости 2,5 Гбит/с. При длине пакетов в 256 байт входной порт должен успевать выполнять приблизительно миллион операций поиска в секунду.
Поскольку скорости передачи данных в современных линиях связи очень высокие, линейный поиск в таблице продвижения данных просто невозможен. Более разумный подход заключается в хранении таблицы продвижения данных в виде дерева, каждый уровень которого соответствует одному двоичному разряду адреса получателя. Поиск адреса начинается с вершины дерева. Если первый бит адреса равен нулю, тогда дальнейший поиск ведется по левому поддереву; в противном случае адрес получателя должен находиться в правом поддереве. На каждом шаге просматривается один разряд адреса получателя и выбирается одна ветвь дерева из двух. Таким образом, всю таблицу продвижения данных можно просмотреть за N шагов, где N — количество двоичных разрядов в адресе. (Такой поиск называется двоичным поиском в адресном пространстве размера 2(N).) Однако даже этот метод можно усовершенствовать.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |


