Связь сетей с помощью маршрутизаторов

Маршрутизаторы являются устройствами, работающими на сетевом уровне, которые позволяют связывать сети с широко распространенными маршрутизируемыми сетевыми протоколами. Если у вас есть удаленный доступ к Internet, то вы уже имеете некоторое представление о том, как пакеты перемещаются в маршрутизируемую сеть. Если для этого используется какая-либо версия Windows, то при конфигурировании удаленного доступа вам потребовалось указать шлюз, используемый по умолчанию. Этот шлюз фактически и является маршрутизатором. Он не посылает пакеты напрямую по их адресу, но выполняет широковещательную передачу в вашу локальную сеть. Как это будет вкратце описано далее в разделе "Шлюзы для мэйнфреймов", шлюз решает, адресован пакет узлу локальной сети, или нет. Если это так, то маршрутизатор игнорирует его. Если не так, направляет его в следующую сеть, где происходит то же самое. Так будет до тех пор, пока пакет не достигнет конечного места назначения.

Примечание:
Поскольку маршрутизаторы соединяют различные сети, соответствующая терминология немного усложняется. Все сети, связанные маршрутизаторами, имеют собирательное название интерсеть (internetwork), под которым можно понимать Internet в качестве наиболее известного примера.

Но вначале выясним некоторые детали. Во-первых, в данном разделе внимание сфокусировано на маршрутизации в сетях TCP/IP, поскольку это наиболее широко используемый протокол. Во-вторых, термин "маршрутизатор" относится к устройству, .выполняющему задачи, описанные далее. Этим устройством может быть черный ящик с мигающими индикаторами (аппаратный маршрутизатор), или компьютер с множеством установленных сетевых плат, работающий под управлением операционной системы типа Windows NT, поддерживающей маршрутизацию (программный маршрутизатор). В обоих случаях основные функции маршрутизатора остаются теми же.

КАК работает маршрутизатор

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

Рассмотрим простой пример, в котором узел Argus в сегменте 1 хочет послать, данные узлу Cameron в сегменте 3. Соответствующий процесс выполняется примерно так.

1. Узел Argus выполняет широковещательную передачу данных в свой локальный сегмент, где его "слышат" все другие узлы сегмента. Его также "слышит" маршрутизатор 1, являющийся шлюзом по умолчанию для данного сегмента.

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

2. Маршрутизатор 1 проверяет адрес места назначения пакета и сравнивает его с содержимым таблицы маршрутизации (routing table), содержащей список адресов, расположенных в локальном сегменте. Он спрашивает себя: "Предназначен ли этот пакет кому-либо здесь?". Если ответом будет "Нет", то маршрутизатор 1 повторно упаковывает пакет и передает его в сегмент 2 — следующий сегмент, обрабатывающий пакет типа SEP (Somebody Else's Problem - чьи-то чужие проблемы).
3. При широковещательной передаче пакета в сегмент 2, маршрутизатор 2 слышит широковещательную передачу и проверяет адрес места назначения пакета. Опять-таки, поскольку место назначения расположено не в сегменте 2, маршрутизатор 2 повторно упаковывает пакет и посылает его в сегмент 3.
4. В сегменте 3 происходит то же самое, но теперь маршрутизатор 3, являющийся шлюзом по умолчанию сегмента 3, находит адрес места назначения в таблице маршрутизации. С этого момента маршрутизатор 3 более не несет ответственности за судьбу пакета. Теперь выполняется широковещательная передача пакета в сегмент. Узел Cameron слышит его и забирает себе. Все счастливо завершается.

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

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

Читайте дальше, если хотите узнать, как маршрутизаторы решают эти проблемы.

Поиск наилучшего пути

Одним из важных моментов работы маршрутизированной сети является управление трафиком. Ясно, что широковещательную передачу пакетов и какие-либо сегменты, не содержащие конечного места назначения, .следует выполнять с минимизацией сетевого трафика. Не будем забывать, что в каждый момент времени передавать данные в сети будут сразу несколько узлов. Лучше всего было бы найти как можно более короткий (или самый быстрый) путь, чтобы освободить сеть так скоро, как это возможно. Поэтому при выборе пути с наименьшим числом транзитных участков итоговый путь пикета может отклоняться от некоей средней линии, для того, чтобы скомпенсировать изменения в трафике или работоспособности сети. Этим маршрутизированные сети отличаются от сетей с мостами, в которых путь предопределяется в начале передачи данных и предназначается для использования в процессе всей передачи, независимо от того, сколько задержек в работе сети при этом возникнет. Маршрутизация является более гибким средством.
Например, пусть узел Argus пытается связаться с узлом Diana, расположенным в сети 5 (рис. 5.21). Для перехода из сети 1 в сеть 5 пакет должен пройти через маршрутизаторы 1—4.
Однако когда пакет достигает маршрутизатора 2, этот маршрутизатор может оценить ситуацию и сделать вывод: "Хорошо, я могу передавать пакет на маршрутизатор 3, но в данный момент он перегружен. Почему бы мне вместо этого не передать его прямиком на маршрутизатор 5 в надежде, что этот путь сработает?". Такой альтернативный путь (рис. 5.22) фактически включает большее число транзитных участков, но он более эффективен, чем исходный путь, поскольку пакеты не посылаются на занятый в данный момент маршрутизатор.

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

Кто позаботится о хранимой информации

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

Примечание:
Сети TCP/IP поддерживают узловую маршрутизацию. Сети IPX/SPX ее не поддерживают.

Узловая маршрутизация. Для передачи пакета в сеть с помощью узловой маршрутизации, узел сначала должен установить соответствие имени узла (например, Argus) интерсетевому адресу (например, 12.45.2.15), используя таблицу, получаемую с сервера, хранящего список соответствия имя/адрес. В сетях TCP/IP эту таблицу предоставляет сервер DNS, (Domain Name Service - служба имен домена). Интерсетевой адрес идентифицирует сеть, в которой расположен узел места назначения, а также предоставляет индивидуальный локатор самого узла, используемый после того, как будет найдена сеть.
После того, как интерсетевой адрес будет определен, или разрешен (resolved), хосткомпьютер (host) сравнивает адреса, принадлежащие части сети, с адресом места назначения. При этом (в случае сети TCP/IP) хост-компьютер просматривает адрес места назначения через собственную маску подсети (см. гл. 3). Если источник и место назначения находятся в одной и той же сети, то источник может послать пакет в место назначения напрямую.
Если же они находятся в разных сетях, то у узла имеются две возможности.

● Послать пакет маршрутизатору сети и позволить ему действовать с данной отправной точки самому.
● Самому определить полный путь к сети места назначения.

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

Таблица 5.1. Как хост-компьютеры выбирают маршрутизаторы

Метод

Описание

Дополнительная информация

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

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

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

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

Объект сетей TCP/IP, включающий протокол, позволяет маршрутизаторам периодически обновлять таблицы маршрутизации хост-компьютера с помощью своих собственных таблиц

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

Подслушивание

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

Сети Windows NT используют для этого протокол Silent RIP

Шлюз по умолчанию

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

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

Сетевой запрос

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

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

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

Примечание:
Метод организации работы мостов с маршрутизацией по источнику (SR) и метод узловой маршрутизации по источнику - различные методы, поскольку маршрутизация по источнику базируется на МАС-адресах канального уровня, а маршрутизация, описанная в этом разделе, основывается на IP- и IPX-адресах сетевого уровня.

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

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

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

Таблица маршрутизации может содержать путевую информацию, используемую для достижения как определенной сети, входящей в интерсеть, так и определенного узла интерсети. Таблица маршрутизации потенциально может также содержать информацию о маршрутизаторе по умолчанию, используемую тогда, когда недоступны другие пути. Это избавляет маршрутизаторы и хост-компьютеры от необходимости хранить точные инструкции для достижения каждого возможного места назначения в сети. Если путь не указан, используется путь, заданный по умолчанию.
Табл. 5.2. содержит информацию, которую обычно можно найти в таблице маршрутизации. Названия полей могут не соответствовать указанным в вашей таблице маршрутизации, но информация останется той же.
Если вы работаете на компьютере с установленной операционной системой Windows в сети TCP/IP, то вы сможете проверить свою таблицу маршрутизации компьютера, введя в командную строку фразу route print (табл. 5.3).

Таблица 5.2. Содержимое таблицы маршрутизации

Запись

Описание

Network ID (ID-сети)

Если запись относится к сети, она содержит сетевой адрес; если – к отдельному узлу, - интерсетевой адрес этого узла

Subnet mask (Маска подсети)

В IP-сети поле содержит 32-битовый номер, используемый для идентификации подсети и отделения её от остальной части сети.

Forwarding address (Адрес направления)

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

Interface (Интерфейс)

Идентифицирует порт, который используется для направления пакетов либо с применением номера (аппаратного) устройства, либо адреса сетевого уровня

Metric (Метрика)

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

Lifetime (Время жизни)

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

Таблица 5.3. Информация, выводимая по команде route print

Построение таблицы маршрутизации

Ранее уже описывалось, как хост-компьютеры строят свои таблицы маршрутизации, и установленные для хост-компьютеров требования к маршрутизации достаточно просты. В основном, все, что требуется от хост-компьютера — это знать, где можно найти маршрутизатор, подключенный к интерсети. Чтобы маршрутизация была эффективной, маршрутизаторы должны знать друг о друге. Некоторые из них дают о себе знать всей остальной глобальной сети с помощью так называемого оповещения.
Каждый раз, когда маршрутизатор "входит" в сеть, он сообщает другим маршрутизаторам свой адрес и сети, к которым подсоединен. При этом он, по сути, говорит следующее: "Привет! Я, — Маршрутизатор А. Если вы пытаетесь получить доступ в сети 1, 2 или 3, то я могу вам помочь". После того как данный маршрутизатор выполнит широковещательную передачу этой информации другим маршрутизаторам, они добавляют эту информацию в свои таблицы. Чем больше маршрутизаторов будет включено в сеть, тем обширнее у каждого из них должна быть таблица маршрутизации (рис. 5.23).

Маршрутизаторы будут продолжать оповещать о своем присутствии через определённые интервалы времени после своего первого появления на сетевой «арене». Если возникнут какие-либо изменения в состоянии сети (например, отказ портов), то другие маршрутизаторы отредактируют свои таблицы маршрутизации, отображая изменения в логической структуре интерсети. В противном случае повторы ранее сделанных оповещений типа: «Я всё ещё Маршрутизатор А и я всё ещё могу предоставить вам доступ в сети 1, 2 или 3» - игнорируются.
Формат и содержимое таблицы маршрутизации задаются с помощью протокола маршрутизации определённого типа, который определяет, как именно будут генерироваться таблицы маршрутизации. Протокол так же позволяет отслеживать такие «мелочи», как способ конструирования таблицы, тип хранимой в ней информации, способ взаимодействия каждого отдельного маршрутизатора с остальными. Имеется несколько алгоритмов маршрутизации, но здесь их рассмотрение ограничивается двумя примерами протоколов, наиболее часто встречающихся в глобальных сетях: RIP и OSPF.
Протокол обмена данными между маршрутизаторами (RIP – Routing Information Protocol). Это старейший протокол маршрутизации, всё ещё находящийся в употреблении. Хотя в некоторых документах он называется устаревшим, его всё ещё широко используют в маленьких сетях. Компьютеры Windows NT, сконфигурированные для маршрутизации по протоколу IP, поддерживают и RIP.
По умолчанию поддерживающие RIP-протокол маршрутизаторы каждые 30 секунд Оповещают остальную часть сети о своём текущем статусе. Маршруты данной сети (идентифицированной сетевым номером и маской подсети) при условии, что они не обновляются каким-либо другим способом, считаются действующими на период времени ожидания (тайм-аута) 180 секунд. Если время ожидания будет исчерпано, то маршрут не удаляется немедленно из таблицы маршрутизации. Должно произойти шесть обновлений перед тем как маршрут будет окончательно удалён из таблицы маршрутизации. Когда же появляется новый маршрут, он не замещает немедленно аналогичные маршруты, уже существующие в таблице маршрутизации. Если такой маршрут ещё не был определён, он будет немедленно добавлен в таблицу маршрутизации. Если в таблице маршрутизации такой маршрут уже существует, то его замена на новый задерживается на определённый интервал времени (для его подтверждения). Длительность этого интервала зависит от того, исчерпал ли этот маршрут время ожидания, или он всё ещё действующий. Обычно маршруты с одинаковой метрикой, но определяющие другой путь, не замещают существующий маршрут, пока он не исчерпает своё время ожидания.
Следовательно, маршрутизаторы не всегда оперируют новейшей информацией. Хотя это ещё не обязательно конец света, но в принципе такая ситуация далека от идеала. Задержка на подтверждение информации может быть особенно существенна при потере маршрута или при его перегруженности.
Итак, в таблице маршрутизации должны быть отражены два изменения сразу после того, как они происходят: удаление маршрута и возрастание его метрики, т.е. рост стоимости маршрута. Когда случается одно из этих событий, рассматриваемый маршрутизатор выполняет запускаемое обновление (triggered update). Запускаемые обновления содержат всю информацию, которая была изменена за время, прошедшее после последнего регулярного обновления, но, в целях экономии полосы пропускания, не содержат не изменившуюся информацию. Этим они отличаются от регулярных плановых обновлений, при которых выполняется полная широковещательная передача всей информации о маршрутизации, независимо от того, изменилась она или нет.
Все эти широковещательные передачи, обновления, запускаемые обновления приводят к возрастанию трафика. Поэтому, в современной реализации протокола RIP не выполняется широковещательная передача информации более чем одному соседнему маршрутизатору (Рис 5.24). После её выполнения обновляющие пакеты исчезают. Это не мешает маршрутизаторам, отстоящим друг от друга на расстоянии в несколько транзитных участков, выполнить взаимное обновление таблиц, поэтому они продолжают совместно использовать свои полные таблицы маршрутизации. Однако для маршрутизатора 5 потребуется время для обновления данных в соответствии с информацией о состоянии маршрутизатора 10, поскольку обновляющая информация будет течь от маршрутизатора 10 по сети «тонкой струйкой».

Маршрутизация с предпочтением кратчайшего пути (OSPF – Open Shortest Path First). При использовании алгоритма OSPF каждый маршрутизатор в интерсети сразу после запуска объявляет о себе с помощью пакета Hello, впоследствии регулярно повторяемого. Маршрутизаторы, отдалённые на один транзитный участок, «слышат» этот пакет Hello и получают требуемые данные. Подобным образом маршрутизатор через некоторые интервалы времени объявляет свое состояние всем маршрутизаторам в интерсети, что позволяет им определить функционирующие маршрутизаторы и их загруженность.
Все остальные маршрутизаторы получают данные, характеризующие статус данного маршрутизатора и информацию о его таблице маршрутизации, после чего с помощью определенных алгоритмов, определяют свои кратчайший путь, или, точнее, путь с наименьшей стоимостью, к отдельной сети, идентифицированной сетевым номером и маской подсети. Идентификация кратчайшего пути не обязательно подразумевает детализацию всего пути. Вместо этого в ходе ее выполнения определяется указатель на маршрутизатор, который и должен обеспечить путь с наименьшей стоимостью. Если для использования доступно несколько действующих путей с одинаковой метрикой, маршрутизатор будет применять все эти пути, распределяя по ним свой трафик с целью равномерной загрузки сети. Такой способ отличается от применяемого в алгоритме RIP, при котором устанавливается только один путь от каждого источника к каждому месту назначения.
Несмотря на то, что маршрутизаторы совместно используют таблицы маршрутизации только с соседними (с ними) маршрутизаторами, свои состояния они изменяют применительно к состоянию всей сети. Для уменьшения трафика маршрутизаторы, использующие алгоритм OSPF, могут быть подразделены на группы, называемые областями (area). При этом в сети выполняется лавинообразная маршрутизация только в пределах данной области с помощью магистральных маршрутизаторов, предназначенных для пересылки таблиц маршрутизации между областями, как показано на рис, 5.25. Вторичные маршрутизаторы области подключают каждую область к магистрали, поддерживая структуру связей в виде логического дерева.

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

Смотрите также

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

Появление новых преимуществ
Wi-Fi-интерфейсы следующего поколения будут еще меньше, чем те, что используются в адаптерах CompactFlash сегодня. SyChip, дочерняя компания Bell Labs, представила прототип миниатюрног ...

Wireless Tools
Wireless Tools (Инструменты беспроводной сети) представляют собой набор программ, управляющих беспроводными расширениями. Они доступны для загрузки на http://www.hpl.hp.com/personal/ ...