Где порт в таблице маршрутизации. Использование нескольких интерфейсов и шлюзов. Примеры команды Route

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

Описание

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

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

Определение

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

Основные понятия

Базовая таблица маршрутизации включает следующую информацию:

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

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

Таблицы маршрутизации Windows

Служба маршрутизации и удаленного доступа представляет собой набор сетевых услуг в семействе Windows Server, который позволяет серверу выполнять услуги обычного маршрутизатора. RRAS включает в себя интерфейс прикладного программирования (API), который облегчает разработку приложений и процессов для администрирования целого ряда сетевых сервисов.

Windows Server 2000, 2003 и 2008 интегрированы с различными сетевыми службами и конкретными API-интерфейсами, которые позволяют серверу предоставлять функции передачи данных и сетевой маршрутизации. Служба маршрутизации, которая преобразует Windows Server в виртуальный/программный маршрутизатор, входит в число этих программных интерфейсов. Приложения охватывают широкий спектр услуг, которые могут централизованно управляться контроллером домена сервера.

Схема

Построение таблицы маршрутизации предоставляет удаленному пользователю доступ во внутреннюю сеть через соединение с защищенной виртуальной частной сетью (VPN). Эта возможность подключения может быть развернута с использованием типичного VPN на основе IP через Интернет.

Услуги, входящие в комплект службы маршрутизации и удаленного доступа:

  • удаленный доступ;
  • удаленный сервер удаленного доступа;
  • резервуар удаленного доступа VPN;
  • IP-маршрутизатор для подключения подсетей сетей;
  • услуги перевода сетевых адресов;
  • другие услуги, связанные с маршрутизатором;
  • Dial-up и VPN-маршрутизатор с набором номера по требованию.

Спецификация

Таблица маршрутизации присутствует на всех IP-узлах, хранит информацию о сетях и о том, как они могут быть достигнуты (прямо или косвенно). Поскольку все IP-узлы выполняют некоторую форму маршрутизации, эти данные эксклюзивными для IP-маршрутизаторов не являются. Любой узел, загружающий протокол TCP/IP, имеет свою табличную форму. Существует ряд записей по умолчанию в соответствии с конфигурацией узла, а дополнительные записи могут быть введены вручную через утилиты TCP/IP или динамически через взаимодействие с маршрутизаторами.

Когда IP-пакет должен быть переадресован, таблица используется для определения:

  • IP-адреса пересылки или следующего перехода;
  • интерфейса, который будет использоваться для пересылки.

Типы ввода

Запись в таблице маршрутизации содержит следующую информацию в представленном порядке:

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

Элементы таблицы маршрутизации могут использоваться для хранения следующих типов маршрутов:

  • Непосредственно прикрепленные сетевые идентификаторы — маршруты для сетевых идентификаторов, которые подключены напрямую.
  • Идентификаторы удаленных сетей — маршруты для сетевых идентификаторов, которые не подключены напрямую, но доступны для других маршрутизаторов.
  • Хост-маршруты — маршрут к определенному IP-адресу. Маршруты хоста позволяют выполнять маршрутизацию на основе IP-адреса. Для хост-маршрутов идентификатор сети — это IP-адрес указанного хоста, а сетевая маска — 255.255.255.255.
  • Маршрут по умолчанию предназначен для использования, когда не найден более конкретный сетевой идентификатор или хост-маршрут. Идентификатор сети маршрутизации по умолчанию — 0.0.0.0 с сетевой маской 0.0.0.0.

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

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

  • тип протокола - информацию о протоколе маршрутизации, создавшем запись в таблице маршрутизации;
  • связка получатель/следующий узел сообщает маршрутизатору о том, что определенный получатель либо подключен непосредственно, либо может быть достигнут через другой маршрутизатор, называемый следующим транзитным узлом (next hop), находящийся на пути к пункту назначения. Маршрутизатор анализирует адрес получателя во входящих пакетах и сравнивает его на соответствие с записями в таблице маршрутизации;
  • метрики маршрутизации. Различные протоколы маршрутизации используют разные метрики, которые помогают определить предпочтительность маршрута. Например, протокол RIP использует счетчик транзитных узлов (hop count) в качестве метрики маршрутизации. Протокол IGRP использует пропускную способность, загрузку канала, суммарную задержку передачи и надежность для формирования комплексного значения метрики;
  • выходной интерфейс - интерфейс, через который должны быть отправлены данные, чтобы достичь пункта назначения.

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

Таблица маршрутизации представляет собой ряд записей, каждая из которых задает адрес назначения и следующий участок маршрута для его достижения. Ниже показано содержимое таблицы маршрутизации одного из трех маршрутизаторов, которые служат для создания одной небольшой объединенной сети на основе четырех сетей. Первые две сети имеют префикс класса А, третья сеть имеет префикс класса В, а четвертая сеть имеет префикс класса С. Каждому маршрутизатору присвоено два IP- адреса, по одному для каждого интерфейса.

Упрощенная таблица маршрутизации

  1. адрес получателя берется непосредственно из заголовка пакета;
  2. сетевая маска первой записи в таблице маршрутизации применяется к адресу получателя в пакете;
  3. после того как маска умножается на адрес получателя (логическая операция ‘‘И’’), полученная величина сравнивается с записью в таблице маршрутизации;
  4. если оба значения совпали, пакет пересылается на интерфейс (порт) маршрутизатора, с которым связана данная запись в таблице маршрутизации;
  5. если же совпадений значений нет, описанным выше образом проверяется следующая запись в таблице маршрутизации;
  6. если адрес пакета не соответствует ни одной из записей в таблице маршрутизации, маршрутизатор проверяет, есть ли у него стандартный маршрут;
  7. если в маршрутизаторе сконфигурирован стандартный маршрут, пакет передается на соответствующий ему порт маршрутизатора.

Например:

Предположим, что дейтаграмма с адресом назначения 192.4.10.3 поступила в маршрутизатор, который содержит таблицу маршрутизации, показанную выше. Предположим также, что программное обеспечение выполняет поиск записи в таблице по порядку. Первая запись не подходит, поскольку 255.0.0.0&192.4.10.3 не равно 30.0.0.0. После исключения второй и третьей записи в таблице маршрутизации выбирается следующий участок маршрута с адресом 128.1.0.9, поскольку 255.255.255.0&192.4.10.3 = 192.4.10.0

Источники и типы записей в таблице маршрутизации

Почти для всех маршрутизаторов существует три основных источника появления записи в таблице

  1. Программное обеспечение стека TCP/IP. При инициализации маршрутизатора оно автоматически заносит в таблицу несколько записей, в результате чего создается так называемая минимальная таблица маршрутизации. Программное обеспечение формирует записи о непосредственно подключенных сетях и маршрутах по умолчанию, информация о которых появляется в стеке при ручном конфигурировании интерфейсов компьютера или маршрутизатора. Также оно заносит в таблицу маршрутизации записи об адресах особого назначения.
  2. Еще один источник записей - администратор , непосредственно формирующий записи с помощью некоторой системной утилиты, например программы router, имеющейся в операционных системах Unix Windows 2000. В аппаратных маршрутизаторах также всегда имеется команда для ручного задания запсей таблицы маршруизации. Заданные вручную записи всегда являются статическими, то есть они не имеют срока жизни. Эти записи могут быть как постоянными, то есть сохраняющимися при перезагрузке маршрутизатора, так и и временными, хранящимися в таблице только до выключения устройства.
  3. Третий источник записей - протоколы маршрутизации . Такие записи всегда являются динамическими и имеют ограниченный срок жизни.

Таблица маршрутизации аппаратного маршрутизатора


Программные маршрутизаторы Unix Windows 2000 не показывают источник появления той или иной записи в таблице, а аппаратный маршрутизатор использует для этой цели поле поле сточника. На рисунке первые две записи созданы программным обеспечением стека на основании данных о конфигурации портов маршрутзатора - это показывает признак "подключена". Следующие две записи обозначены как статические - это означает, что их ввел вручную администратор. Последняя запись является следствием работы протокола RIP.

Программные модули протокола IP устанавливаются на всех конечных станциях и маршрутизаторах сети. Для продвижения пакетов они используют таблицы маршрутизации.

Примеры таблиц различных типов маршрутизаторов

Структура таблицы маршрутизации стека TCP/IP соответствует общим принципам построения таблиц маршрутизации. Однако важно отметить, что вид таблицы IP-маршрутизации зависит от конкретной реализации стека TCP/IP. Приведем пример трех вариантов таблицы маршрутизации, с которыми мог бы работать маршрутизатор M1 в сети, представленной на рис. 14.2.

Если представить, что в качестве маршрутизатора M1 в данной сети работает штатный программный маршрутизатор MPR операционной системы Microsoft Windows NT, то его таблица маршрутизации могла бы иметь следующий вид (табл. 14.2).

Таблица 14.1. Таблица программного маршрутизатора MPR Windows NT

Рис. 14.2. Пример маршутизируемой сети

Если на месте маршрутизатора M1 установить аппаратный маршрутизатор NetBuilder II компании 3Com, то его таблица маршрутизации для этой же сети может выглядеть так, как показано в табл 14.2.

Таблица 14.2. Таблица маршрутизации аппаратного маршрутизатора NetBuilder II компании 3Com

Таблица 14.3 представляет собой таблицу маршрутизации для маршрутизатора M1, реализованного в виде программного маршрутизатора одной из версий операционной системы Unix.

Таблица 14.3. Таблица маршрутизации Unix-маршрутизатора

Назначение полей таблицы маршрутизации

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

К таким параметрам, безусловно, относятся адрес сети назначения (столбщ "Destination" в маршрутизаторах NetBuilder и Unix или "Network Address" в маршрутизаторе MPR) и адрес следующего маршрутизатора (столбцы "Gateway" маршрутизаторах NetBuilder и Unix или "Gateway Address" в маршрутизаторе MPR).

Третий ключевой параметр - адрес порта, на который нужно направить пакет, в некоторых таблицах указывается прямо (поле "Interface" в таблице Windows NT), а в некоторых - косвенно. Так, в таблице Unix-маршрутизатора вместо адреса порта задается его условное наименование - le0 для порта с адресом 198.21.17.5, le1 для порта с адресом 213.34.12.3 и lo0 для внутреннего порта с адресом 127.0.0.1.

В маршрутизаторе NetBuilder II поле, обозначающее выходной порт в какой-либо форме, вообще отсутствует. Это объясняется тем, что адрес выходного порта всегда можно косвенно определить по адресу следующего маршрутизатора. Например, попробуем определить по табл. 14.2 адрес выходного порта для сети 56.0.0.0. Из таблицы следует, что следующим маршрутизатором для этой сети будет маршрутизатор с адресом 213.34.12.4. Адрес следующего маршрутизатора должен принадлежать одной из непосредственно присоединенных к маршрутизатору сетей, и в данном случае это сеть 213.34.12.0. Маршрутизатор имеет порт, присоединенный к этой сети, и адрес этого порта 213.34.12.3 мы находим в поле "Gateway" второй строки таблицы маршрутизации, которая описывает непосредственно присоединенную сеть 213.34.12.0. Для непосредственно присоединенных сетей адресом следующего маршрутизатора всегда является адрес собственного порта маршрутизатора. Таким образом, адрес выходного порта для сети 56.0.0 - это адрес 213.34.12.3.

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

Наличие или отсутствие поля маски в таблице говорит о том, насколько современен данный маршрутизатор. Стандартным решением сегодня является использование поля маски в каждой записи таблицы, как это сделано в таблицах маршрутизаторов MPR Windows NT (поле "Netmask") и NetBuilder (поле "Mask"). Обработка масок при принятии решения маршрутизаторами будет рассмотрена ниже. Отсутствие поля маски говорит о том, что либо маршрутизатор рассчитан на работу только с тремя стандартными классами адресов, либо он использует для всех записей одну и ту же маску, что снижает гибкость маршрутизации.

Метрика, как видно из примера таблицы Unix-маршрутизатора, является необязательным параметром. В остальных двух таблицах это поле имеется, однако оно используется только в качестве признака непосредственно подключенной сети. Действительно, если в таблице маршрутизации каждая сеть назначения упомянута только один раз, то поле метрики не будет приниматься во внимание при выборе маршрута, так как выбор отсутствует. А вот признак непосредственно подключенной сети маршрутизатору нужен, поскольку пакет для этой сети обрабатывается особым способом - он не передается следующему маршрутизатору, а отправляется узлу назначения. Поэтому метрика 0 для маршрутизатора NetBuilder или 1 для маршрутизатора MPR просто говорит маршрутизатору, что эта сеть непосредственно подключена к его порту, а другое значение метрики соответствует удаленной сети. Выбор значения метрики для непосредственно подключенной сети является достаточно произвольным, главное, чтобы метрика удаленной сети отсчитывалась с учетом этого выбранного начального значения. В Unix-маршрутизаторе используется поле признаков, где флаг G отмечает удаленную сеть, а его отсутствие - непосредственно подключенную.

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

Флаги записей присутствуют только в таблице Unix-маршрутизатора. Они описывают характеристики записи.

    U - показывает, что маршрут активен и работоспособен. Аналогичный смысл имеет поле "Status" в маршрутизаторе NetBuilder.

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

    G - означает, что маршрут пакета проходит через промежуточный маршрутизатор (gateway). Отсутствие этого флага отмечает непосредственно подключенную сеть.

    D - означает, что маршрут получен из сообщения Redirect (перенаправление) протокола ICMP. Этот признак может присутствовать только в таблице маршрутизации конечного узла. Признак означает, что конечный узел в какой-то предыдущей передаче пакета выбрал не самый рациональный следующий маршрутизатор на пути к данной сети, и этот маршрутизатор с помощью протокола ICMP сообщил, что все последующие пакеты к данной сети нужно отправлять через другой следующий маршрутизатор. Протокол ICMP может посылать сообщения только узлу-отправителю, поэтому у промежуточного маршрутизатора этот признак встретиться не может. Признак никак не влияет на процесс маршрутизации, он только указывает администратору источник появления записи.

В таблице Unix-маршрутизатора используются еще два поля, имеющих справочное значение. Поле "Refcnt" показывает, сколько раз на данный маршрут ссылались при продвижении пакетов. Поле "Use" отражает количество пакетов, переданных по данному маршруту.

В таблице маршрутизатора NetBuilder также имеются два справочных поля. Поле времени жизни "TTL" (Time To Live) имеет смысл для динамических записей, которые имеют ограниченный срок жизни. Текущее значение поля показывает оставшийся срок жизни записи в секундах. Поле "Source" отражает источник появления записи в таблице маршрутизации. Хотя это поле имеется не во всех маршрутизаторах, но практически для всех маршрутизаторов существуют три основных источника появления записи в таблице.

В этой книге описаны принципы действия и область применения многих серверов, выполняющихся в системе Linux. Здесь рассматриваются DHCP-сервер, серверы Samba и NFS, серверы печати, NTP-сервер, средства удаленной регистрации и система X Window. He забыты и средства, традиционно используемые для обеспечения работы Internet-служб: серверы DNS, SMTP, HTTP и FTP. Большое внимание уделено вопросам безопасности сети. В данной книге нашли отражения также средства удаленного администрирования - инструменты Linuxconf, Webmin и SWAT.

Данная книга несомненно окажется полезной как начинающим, так и опытным системным администраторам.

Отзывы о книге

Сетевые средства Linux

Появилась прекрасная книга по Linux, осталось воспользоваться ею. Не упустите свой шанс.

Александр Стенцин, Help Net Security,

www.net-security.org

Если вы стремитесь в полной мере использовать сетевые возможности Linux - эта книга для вас. Я настоятельно рекомендую прочитать ее.

Майкл Дж. Джордан, Linux Online

Выхода подобной книги давно ожидали читатели. Менее чем на 700 страницах автор смог изложить суть самых различных вопросов, связанных с работой Linux. Автор является высококвалифицированным специалистом в своей области и щедро делится своими знаниями с читателями.

Роджер Бертон, West, DiverseBooks.com

Книга:

Разделы на этой странице:

Таблица маршрутизации выполняет две задачи. Во-первых, она сообщает системе, на какой из интерфейсов следует передавать информационные пакеты. На первый взгляд может показаться, что если на компьютере установлен лишь один сетевой интерфейс, то ответ на этот вопрос очевиден. На самом деле это не так. Дело в том, что на каждом из компьютеров, работающих под управлением системы Linux, поддерживается интерфейс обратной петли. Этот интерфейс соответствует сети 127.0.0.0/8, но реально при работе с ним используется лишь один IP-адрес 127.0.0.1. Поскольку этот интерфейс присутствует на всех компьютерах, многие программы используют его для взаимодействия с другими локальными программами. При этом обеспечивается более высокая скорость обмена, чем при использовании традиционных сетевых интерфейсов. Для того чтобы распределять трафик между интерфейсом локальной петли и обычными сетевыми интерфейсами, существуют специальные правила. Вторая задача, которую выполняет таблица маршрутизации, состоит в управлении трафиком, предназначенным для компьютеров в локальной сети. Для маршрутизации в локальной сети используется протокол ARP (Address Resolution Protocol - протокол преобразования адресов). Пакеты, предназначенные узлам локальной сети, непосредственно передаются соответствующим компьютерам, а пакеты, адресованные удаленным узлам, передаются посредством маршрутизатора, или шлюза. В большинстве случаев в таблице маршрутизации Linux указывается лишь один шлюз, но встречаются также более сложные конфигурации с несколькими шлюзами. Для заполнения таблицы маршрутизации используется команда route.

На заметку

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

Структура таблицы маршрутизации

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

Для чтобы лучше понять, как используется таблица маршрутизации, рассмотрим пример такой таблицы. На рис. 2.2 показана таблица маршрутизации, которая отображается в результате выполнения команды route -n (более подробно команда route будет рассмотрена в следующем разделе). Записи таблицы, изображенной на рисунке, упорядочены так, что в начале расположены записи, определяющие наиболее конкретные правила обработки, а в конце таблицы находятся наиболее универсальные правила. В первой записи указан адрес назначения 255.255.255.255, т. е. широковещательный адрес. Широковещательные пакеты передаются через интерфейс eth0 , при этом шлюз не используется. В последующих двух записях содержатся адреса назначения 10.92.68.0 и 192.168.1.0, которые представляют собой адреса локальных сетей; им соответствует маска подсети 255.255.255.0, которая указана в столбце Genmask . Эти две записи направляют трафик соответственно через интерфейсы eth1 и eth0 . Если компьютер содержит только один сетевой интерфейс, в таблице маршрутизации будет указана лишь одна подобная запись. Четвертая запись соответствует интерфейсу обратной петли (в некоторых разновидностях Linux, например в системе Debian, при выводе таблицы маршрутизации этот маршрут не отображается, но он учитывается при обработке пакетов). Обратите внимание, что этот интерфейс имеет имя lo (оно содержится в столбце Ifасе таблицы). Последняя запись, в которой указан адрес назначения 0.0.0.0, определяет маршрут по умолчанию. Этот адрес вместе с маской подсети 0.0.0.0 соответствует любому адресу, при сравнении которого с адресами, указанными в предыдущих правилах, был получен отрицательный результат. В этом случае трафик направляется через интерфейс eth1 . Маршрут по умолчанию - единственный маршрут в таблице, для которого был указан шлюз (в данном случае 10.92.68.1).


Рис. 2.2 . Для того чтобы определить маршрут пакета, надо сравнить его адрес назначения с адресом, указанным в столбце Destination , и учесть при этом маску подсети, значение которой отображается в столбце Genmask

При активизации интерфейса с помощью ifconfig эта утилита автоматически включает в таблицу маршрутизации запись, соответствующую активизированному интерфейсу. Эта запись определяет маршрут к сети, которая подключена через данный интерфейс. Сценарий, выполняющихся при загрузке Linux, добавляет в таблицу запись для интерфейса обратной петли. Запись, соответствующая широковещательному маршруту, не обязательна, но используется некоторыми утилитами. Во многих случаях единственной записью, которую приходится создавать вручную, остается маршрут по умолчанию.

Использование route

Если утилита route вызывается без параметров, она отображает текущее содержимое таблицы маршрутизации. Такой же результат будет получен при указании некоторых опций (например, опции -n , которая указывает на то, что при выводе содержимого таблицы вместо доменных имен должны отображаться числовые IP-адреса). Однако в основном route предназначена для добавления, удаления и изменения записей о маршрутах. Синтаксис route имеет следующий вид:

route add|del [-net|-host] target [ interface ]

Ниже перечислены опции данной утилиты и описано их назначение.

Add|del . Опция add задается тогда, когда необходимо добавить в таблицу запись о новом маршруте, а опция del позволяет удалить существующую запись. При добавлении нового маршрута необходимо задать дополнительную информацию. При удалении можно ограничиться указанием адреса назначения.

[-net|-host] . В качестве адреса назначения вы можете задать либо адрес сети (-net), либо адрес конкретного компьютера (-host). В большинстве случаев route способна самостоятельно отличить адрес сети от адреса узла, но иногда необходимо явно указать тип адреса. Чаще всего данную опцию приходится задавать, определяя маршрут к небольшой сети, подключенной с помощью отдельного шлюза.

адрес_назначения . Адрес назначения принадлежит сети или отдельному компьютеру, которому маршрутизатор должен передать пакет. Для маршрута по умолчанию используется адрес 0.0.0.0 либо эквивалентное ему ключевое слово default . Этот параметр необходимо указывать при добавлении или удалении маршрута.

Если адреса сети, которой должны быть переданы пакеты, соответствуют традиционной схеме распределения адресов, утилита route , пользуясь сетевыми средствами Linux, сама определит значение маски подсети. В противном случае вам необходимо явно задать маску подсети, указав при вызове route параметр netmask nm . (Вместо использования данного параметра вы можете указать число бит, выделяемых для представления адреса сети, в составе адреса назначения.)

Если вы определяете маршрут, который не проходит через шлюз, можете не указывать этот параметр. Если же целевой узел подключен через шлюз, необходимо задать адрес этого шлюза, указав при вызове route gateway gw . В частности, данный параметр используется при определении маршрута по умолчанию.

На рис. 2.2 среди прочих изображен столбец Metric . В нем отображается метрика маршрута, т.е. "стоимость" передачи пакета. Чаще всего за "стоимость" принимается время передачи пакета. Таким образом, маршрутам, на которых встречаются линии с низким быстродействием, соответствуют высокие значения метрики, а "быстрым" маршрутам - низкие значения метрики. Параметр metric m используется только в том случае, если компьютер выполняет роль маршрутизатора. Подробно вопросы настройки маршрутизаторов будут рассмотрены в главе 24.

Параметр mss m задает максимальный размер сегмента (MSS - Maximum Segment Size). Подобно metric m , данный параметр используется в основном в маршрутизаторах.

Размер окна (TCP Window Size) - это объем данных, которые могут быть переданы передающим узлом, не дожидаясь получения подтверждения с принимающего узла. Если задано небольшое значение данного параметра, скорость обмена данными уменьшится, так как передающий компьютер будет простаивать, ожидая подтверждения приема пакета. Если указать слишком большой размер окна, повышается вероятность того, что вследствие возникновения ошибки передающему узлу придется повторять передачу большого объема информации. Поэтому наилучшее решение - использовать размер окна по умолчанию (в системе Linux он составляет 64 Кбайт). Если данные по линии передаются быстро, но с большой задержкой (например, если используется спутниковая связь), то целесообразно увеличить размер окна до 128 Кбайт.

[ имя_интерфейса ] . Как правило, система Linux по IP-адресу самостоятельно определяет используемый интерфейс. Однако в некоторых случаях необходимо указать интерфейс явно, задавая при вызове route параметр имя_интерфейса . (Ключевое слово dev указывать не обязательно, достаточно задать имя интерфейса, например eth0 или tr1 .)

Наиболее часто с помощью утилиты route задается маршрут по умолчанию. Делается это после того, как посредством утилиты ifconfig был активизирован сетевой интерфейс. Пример определения маршрута по умолчанию с помощью route приведен ниже.

# route add 0.0.0.0 gw 10.92.68.1

Адрес 0.0.0.0 можно заменить ключевым словом default ; результат выполнения команды от этого не изменится. Несколько реже при вызове route приходится указывать имя устройства, опцию -net и некоторые другие опции.

Использование нескольких интерфейсов и одного шлюза

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

Вызов ifconfig для каждого из интерфейсов компьютера.

Одиночный вызов route для добавления в таблицу маршрутизации маршрута по умолчанию.

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

# echo "1" > /proc/sys/net/ipv4/ip_forward

На заметку

Если компьютер содержит два сетевых интерфейса (т.е. одновременно принадлежит двум сетям), но не должен выполнять функции маршрутизатора, не следует разрешать перенаправление IP-пакетов.

На заметку

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

Если провайдер выделил для вашего компьютера лишь один IP-адрес, но вы хотите организовать доступ к Internet с нескольких компьютеров, подключенных к локальной сети, вам необходимо использовать специальный тип маршрутизатора, в котором используется технология NAT (Network Address Translation - преобразование сетевых адресов). Эта технология подробно описана в главе 25. Настройка системы NAT выполняется подобно настройке обычного маршрутизатора, кроме того, в этом случае приходится выполнять дополнительные команды, разрешающие преобразование адресов. В результате такого преобразования вся локальная сеть выглядит извне как один компьютер.

Использование нескольких интерфейсов и шлюзов

Если компьютер с несколькими интерфейсами должен передавать пакеты на различные шлюзы, его настройка несколько усложняется. Большинство систем работает с одним шлюзом, через который проходит маршрут по умолчанию. Такой шлюз соединяет локальную сеть с другой сетью, и в большинстве случаев посредством этого же шлюза осуществляется взаимодействие с Internet. Однако возможны и другие варианты конфигурации сети. Рассмотрим локальные сети, представленные на рис. 2.3. Как видно на рисунке, две локальные сети, принадлежащие различным подразделениям одной организации, соединены с помощью маршрутизаторов. Конфигурация обычных компьютеров, принадлежащих этим сетям, очень проста; в маршруте по умолчанию в качестве адреса шлюза указан адрес маршрутизатора, через который локальная сеть подключена к другой сети. Несмотря на то что маршрутизатор сети Office 2 имеет два интерфейса, в маршруте по умолчанию, заданном в его таблице маршрутизации, роль шлюза играет маршрутизатор сети Office Маршрутизатор сети Office 1 имеет более сложную конфигурацию. Его маршрут по умолчанию обеспечивает обмен пакетами с Internet, кроме того, трафик, предназначенный для сети 172.20.0.0/16, должен передаваться на маршрутизатор Office 2. Чтобы такая передача пакетов могла выполняться, необходимо вызвать следующую команду:

# route add -net 172.20.0.0 netmask 255.255.0.0 gw 172.21.1.1


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

На заметку

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

В данном случае предполагается, что маршрутизатор Office 2 использует для соединения с маршрутизатором Office 1 сетевой интерфейс с адресом 172.21.1.1. Заметьте, что этот адрес не принадлежит сети Office 2 (все компьютеры сети Office 2 соединены с маршрутизатором Office 2 через один интерфейс, а маршрутизатор Office 1 подключен к нему через другой интерфейс). Если кроме приведенной выше команды для маршрутизатора Office 1 также задать с помощью утилиты route маршрут по умолчанию, то в результате в таблице маршрутизации будут определены два шлюза: один в качестве маршрута по умолчанию, а другой - для управления трафиком, предназначенным для сети Office 2. Заметьте, что остальные компьютеры в сети Office 1 не обязаны знать об особенностях настройки маршрутизатора, в них должна содержаться лишь информация о маршруте по умолчанию, в котором роль шлюза выполняет маршрутизатор этой сети.

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

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

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

Процесс маршрутизации в компьютерных сетях выполняется специальными программно-аппаратными средствами - маршрутизаторами. В дополнение к маршрутизации маршрутизаторы осуществляют и коммутацию каналов/сообщений/пакетов/ячеек, так же и коммутатор компьютерной сети выполняет маршрутизацию (определение на какой порт отправить пакет на основании таблицы MAC адресов), а называется в честь основной его функции - коммутации. Слово маршрутизация означает передачу информации от источника к приёмнику через объединенную сеть. При этом, хотя бы один раз необходимо преодолеть разветвление сети.

3.1. Составляющие маршрутизации

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

Определение оптимального маршрута

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

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

Алгоритмы маршрутизации заполняют маршрутные таблицы необходимой информацией. Комбинации "Пункт назначения/Следующая пересылка" сообщают маршрутизатору, что пункт назначения может быть достигнут кратчайшим путем при отправке пакета в определенный маршрутизатор, представляющий "следующую пересылку" на пути к конечному пункту назначения. При приеме поступающего пакета маршрутизатор проверяет адрес пункта назначения и пытается ассоциировать этот адрес со следующей пересылкой. Табл. 3.1. – пример таблицы маршрутизации.

C:\>route print =========================================================================== Список интерфейсов 0x1 ........................... MS TCP Loopback interface 0x2 ...00 1c 25 31 9a 32 ...... Marvell Yukon 88E8056 PCI-E Gigabit Etherne t Controller =========================================================================== =========================================================================== Активные маршруты: Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика 0.0.0.0 0.0.0.0 188.243.250.1 188.243.250.65 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 188.243.250.0 255.255.255.0 188.243.250.65 188.243.250.65 20 188.243.250.65 255.255.255.255 127.0.0.1 127.0.0.1 20 188.243.255.255 255.255.255.255 188.243.250.65 188.243.250.65 20 224.0.0.0 240.0.0.0 188.243.250.65 188.243.250.65 20 255.255.255.255 255.255.255.255 188.243.250.65 188.243.250.65 1 Основной шлюз: 188.243.250.1 =========================================================================== Постоянные маршруты: Отсутствует
Таблица 3.1. Таблица маршрутизации

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

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

Передача информации по сети, коммутация

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

После проверки сетевого адреса пакета маршрутизатор определяет, находится или нет адрес пункта назначения в таблице маршрутизации. Во втором случае (когда маршрутизатор не нашёл адрес в таблице маршрутизации) пакет, как правило, игнорируется. В первом случае маршрутизатор отсылает пакет к следующему маршрутизатору путем замены физического адреса пункта назначения на физический адрес следующего маршрутизатора и последующей передачи пакета.

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

3.2. Алгоритмы маршрутизации

Протокол RIP

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

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

К протоколам динамической маршрутизации относится протокол RIP (Routing Information Protocol).

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

Destination Next hop Distance Timers Flags
Network A Router 1 3 t1, t2, t3 x, y
Network B Router 2 5 t1, t2, t3 x, y
Network C Router 1 2 t1, t2, t3 x, y
Таблица 3.2.

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

Протокол OSPF

Протокол OSPF (Open Shortest Pass First, RFC-1245-48, RFC-1583-1587, std-54, алгоритмы предложены Дейкстрой) является альтернативой RIP в качестве внутреннего протокола маршрутизации. OSPF представляет собой протокол состояния маршрута (в качестве метрики используется - коэффициент качества обслуживания). Каждый маршрутизатор обладает полной информацией о состоянии всех интерфейсов всех маршрутизаторов (переключателей) автономной системы. Протокол OSPF реализован в демоне маршрутизации gated, который поддерживает также RIP и внешний протокол маршрутизации BGP.

Автономная система может быть разделена на несколько областей, куда могут входить как отдельные ЭВМ, так и целые сети. В этом случае внутренние маршрутизаторы области могут и не иметь информации о топологии остальной части сети. В сети обычно имеется выделенный (designated) маршрутизатор, который является источником маршрутной информации для остальных маршрутизаторов. Каждый маршрутизатор самостоятельно решает задачу оптимизации маршрутов. Если к месту назначения ведут два или более эквивалентных маршрута, информационный поток будет поделен между ними поровну. Переходные процессы в OSPF завершаются быстрее, чем в RIP. В процессе выбора оптимального маршрута анализируется ориентированный граф сети.

3.3. Доступ из LAN в Интернет, NAT

Технология NAT (Network Address Translation) позволяет решать две основные проблемы, стоящие сегодня перед глобальной сетью Интернет. Это – ограниченность адресного пространства протокола IP и масштабирование маршрутизации.

При необходимости подключения к сети Интернет, когда количество внутренних узлов сети превышает выданное поставщиком услуг Интернет количество реальных адресов IP, NAT позволяет частным сетям IP, использующим незарегистрированные адреса, получать доступ к ресурсам Интернет. Функции NAT конфигурируются на пограничном маршрутизаторе, разграничивающем частную (внутреннюю) сеть Интранет и сеть Интернет.

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

При необходимости организации простого разделения трафика на основе портов TCP, функции NAT предоставляют возможность установления соответствия (mapping) множества локальных адресов одному внешнему адресу, используя функции распределения нагрузки TCP.

Функционирование NAT

Технология NAT определяет, как это оговорено в стандарте RFC 1631, способы трансляции IP адресов, используемых в одной сети, в адреса, используемые в другой.

Существует 3 базовых концепции трансляции адресов - статическая, динамическая, и masquerading.

Static Network Address Translation

Статическая трансляция (static NAT). Маршрутизатор NAT хранит таблицу соответствия внутренних и внешних IP-адресов. В этом случае зарегистрированный в сети Интернет адрес нужен каждому внутреннему компьютеру, но внутренний компьютер становится доступным из сети Интернет, поскольку NAT обеспечивает взаимнооднозначное преобразование адресов.

Dynamic Network Address Translation

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

В этой технологии в отличие от статической трансляции появляется новое понятие – таблица NAT (NAT table), которая применительно к динамической трансляции представляет собой таблицу соответствия внутренних адресов и адресов интерфейса NAT (далее для краткости - NAT адресов).

Masquerading (NAPT, PAT)

Трансляция адреса порта PAT (Port Address Translation) – это частный случай динамической трансляции, при котором мы имеем только один внешний адрес, за которым "спрятаны" внутренние - их может быть теоретически сколько угодно. В отличие от оригинальной динамической трансляции, PAT, разумеется, не подразумевает функционирование единовременно только одного соединения. Дабы расширить количество одновременных сеансов, эта техника использует информацию о номере TCP порта. Таким образом, количество одновременных сеансов ограничено только количеством свободных (из числа выделенных под NAT портов).