2 дайте характеристику параметрам статической таблицы маршрутизации. Что такое маршрутизация. Передача информации по сети, коммутация

Структура таблицы маршрутизации стека TCP/IP, соответствуя общим принципам построения таблиц маршрутизации (см. предыдущий выпуск рубрики), зависит от конкретной реализации стека TCP/IP. В качестве примера рассмотрим несколько вариантов таблицы маршрутизации, с которыми мог бы работать маршрутизатор М1 в сети, представленной на Рисунке 1.

Рисунок 1. Пример маршрутизируемой сети.

Если в качестве маршрутизатора М1 в данной сети применяется программный маршрутизатор MPR операционной системы Microsoft Windows NT, то его таблица маршрутизации могла бы иметь такой же вид, как в Таблице 1. Если на месте маршрутизатора М1 установить аппаратный маршрутизатор NetBuil-der II компании 3Com, то его таблица маршрутизации для этой же сети может выглядеть так, как показано в Таблице 2. В Таблице 3 помещена таблица маршрутизации для маршрутизатора М1, реализованного в виде программного маршрутизатора одной из версий операционной системы 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 поле, указывающее выходной порт в какой-либо форме, вообще отсутствует. Это объясняется тем, что адрес выходного порта всегда можно косвенно определить по адресу следующего маршрутизатора. Например, попробуем определить по Таблице 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;

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

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

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

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

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

ИСТОЧНИКИ И ТИПЫ ЗАПИСЕЙ В ТАБЛИЦЕ МАРШРУТИЗАЦИИ

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

Во-первых, это записи о непосредственно подключенных сетях и маршрутизаторах по умолчанию, информация о которых появляется в стеке при ручном конфигурировании интерфейсов компьютера или маршрутизатора. В приведенных примерах к ним относятся записи о сетях 213.34.12.0 и 198.21.17.0, а также о маршрутизаторе по умолчанию - default в UNIX-маршрутизаторе и 0.0.0.0 в маршрутизаторе MPR Windows NT. В рассматриваемой таблице для маршрутизатора NetBuilder маршрутизатор по умолчанию не используется, следовательно, при поступлении пакета с адресом назначения, отсутствующим в таблице, этот пакет будет отброшен.

Во-вторых, программное обеспечение автоматически заносит в таблицу маршрутизации записи об адресах особого назначения. В таблице маршрутизатора MPR Windows NT содержится наиболее полный набор записей такого рода. Несколько записей связаны с особым адресом 127.0.0.0 (loopback), который используется для локального тестирования стека TCP/IP. Пакеты, направленные в сеть с номером 127.0.0.0, не передаются протоколом IP на канальный уровень для последующего направления в сеть, а возвращаются в источник - локальный модуль IP. Записи с адресом 224.0.0.0 предназначены для обработки групповых адресов (multicast address). Кроме того, в таблицу могут быть занесены адреса для широковещательных рассылок (например, записи 8 и 11 содержат адрес отправки широковещательного сообщения в соответствующих подсетях, а последняя запись в таблице - адрес ограниченной широковещательной рассылки сообщения). Заметим, что в некоторых таблицах записи об особых адресах вообще отсутствуют.

Вторым источником появления записи в таблице является администратор, непосредственно формирующий ее с помощью некоторой системной утилиты, например программы route, имеющейся в операционных системах UNIX и Windows NT. В аппаратных маршрутизаторах также всегда поддерживается команда для ручного задания записей таблицы маршрутизации. Заданные вручную записи всегда являются статическими, т. е. не имеют срока истечения жизни. Они могут быть как постоянными, т. е. сохраняющимися при перезагрузке маршрутизатора, так и временными, хранящимися в таблице только до выключения устройства. Часто администратор вручную заносит запись default о маршрутизаторе по умолчанию. Таким же образом в таблицу маршрутизации может быть внесена запись о специфичном для узла маршруте, где вместо номера сети содержится полный IP-адрес, т. е. адрес, имеющий ненулевую информацию не только в поле номера сети, но и в поле номера узла. Для такого конечного узла маршрут должен выбираться не так, как для всех остальных узлов сети, к которой он относится. В случае, когда в таблице есть разные записи о продвижении пакетов для всей сети и ее отдельного узла, при поступлении пакета, адресованного узлу, маршрутизатор отдаст предпочтение записи с полным адресом узла.

И, наконец, третьим источником записей могут быть протоколы маршрутизации, такие, как RIP или OSPF. Данные записи всегда являются динамическими, т. е. имеют ограниченный срок жизни. Программные маршрутизаторы Windows NT и UNIX не показывают источник появления той или иной записи в таблице, а маршрутизатор NetBuilder использует для этой цели поле Source. В приведенном в Таблице 2 примере первые две записи созданы программным обеспечением стека на основании данных о конфигурации портов маршрутизатора - это показывает признак Connected. Следующие две записи обозначены как Static, что указывает на то, что их ввел вручную администратор. Последняя запись появилась в результате работы протокола RIP, поэтому в ее поле TTL имеется значение 160.

Наталья Олифер - ответственный редактор LAN. С ней можно связаться по адресу:

В этой книге описаны принципы действия и область применения многих серверов, выполняющихся в системе 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 могут быть сконфигурированы и по-другому, для них может быть определен только шлюз по умолчанию, который, в свою очередь, будет передавать пакеты на второй шлюз. Как нетрудно заметить, использование такой конфигурации увеличивает трафик локальной сети.) Поскольку использование двух маршрутизаторов затрудняет настройку компьютеров, желательно использовать в сети один маршрутизатор.

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

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

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

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

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

  1. Поддержка своих таблиц маршрутизации в актуальном состоянии
  2. Своевременное распространение информации об известных им сетях и маршрутах среди остальных маршрутизаторов

В качестве параметров для расчет метрик могут выступать:

  1. Ширина полосы пропускания
  2. Задержка (время для перемещения пакета от источника к получателю)
  3. Загрузка (загруженность канала в ед. времени)
  4. Надежность (относительное количество ошибок в канале)
  5. Количество хопов (переходов между маршрутизаторами)

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

Существует достаточно много протоколов маршрутизации – все они делятся по следующим признакам:

  1. По используемому алгоритму (дистанционно-векторные протоколы, протоколы состояния каналов связи)
  2. По области применения (для внутридоменной маршрутизации, для междоменной маршрутизации)

Протокол состояния каналов основан на алгоритме Дейкстры, про него я уже . Про дистанционно-векторный алгоритм расскажу вкратце.

Итак, в дистанционно-векторных протоколах маршрутизаторы:

  • Определяют направление (вектор) и расстояние до нужного узла сети
  • Периодически пересылают таблицы маршрутизации друг другу
  • В регулярных обновлениях маршрутизаторы узнают об изменениях топологии сети

Если не вдаваться в подробности, то протокол маршрутизации по состоянию каналу лучше по нескольким причинам:

  • Точное понимание топологии сети. Протоколы маршрутизации состояния канала создают дерево кратчайших путей в сети. Таким образом, каждый маршрутизатор точно знает, где находится его “собрат”. В дистанционно-векторных протоколах такой топологии нет.
  • Быстрая сходимость. Получая пакет состояния канала LSP, маршрутизаторы сразу же лавиннообразно рассылают этот паке дальше. В дистанционно-векторных протоколах маршрутизатор должен сначала обновить свою таблицу маршрутизации, прежде чем разослать его лавинно на другие интерфейсы.
  • Управляемые событиями обновления. LSP отправляются только тогда, когда происходят изменения в топологии и только информацию, касающуюся этого изменения.
  • Разделение на зоны. Протоколы состояния канала используют понятие зона – область в пределах который распространяется маршрутная информация. Это разделение помогает снизить нагрузку на ЦП маршрутизатора и структурировать сеть.

Примеры протоколов состояния канала: OSPF , IS-IS .

Примеры дистанционно-векторных протоколов: RIP , IGRP .

Другое глобальное разделение протоколов по области применения: для внутредоменной маршрутизации IGP, для междоменной маршрутизации EGP. Пройдемся по определениям.

IGP (Interior Gateway Protocol) – протокол внутреннего шлюза. К ним относят любые протоколы маршрутизации, используемые внутри автономной системы (RIP, OSPF, IGRP, EIGRP, IS-IS). Каждый IGP-протокол представляет один домен маршрутизации внутри автономной системы.

EGP (Exterior Gateway Protocol) – протокол внутреннего шлюза. Обеспечивает маршрутизацию между различными автономными системами. Протоколы EGP обеспечивают соединение отдельных автономных систем и транзит передаваемых данных между этими автономными системами. Пример протокола: BGP .

Поясним также понятие автономной системы.

Автономная система (authonomous system, AS) – это набор сетей, которые находятся под единым административным управлением и в которых используется единая стратегия и правила маршрутизации.

Автономная система для внешних сетей выступает как единый объект.

Домен маршрутизации – это совокупность сетей и маршрутизаторов, использующих один и тот же протокол маршрутизации.

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


Подписывайтесь на нашу

· Комментариев нет

Поразительно, как быстро бежит время. Люди думаю, что настоящие компьютеры очень высокотехнологичны, но протокол TCP/IP существует в той или иной форме уже более трех десятилетий. У него было достаточно времени, чтобы созреть и стать стабильным и надежным. Но если дело касается компьютеров, то ничего не может быть надежным. При указании маршрутов для пакетов в сети иногда случаются неприятности. В таких ситуациях следует быть знакомым с таблицами маршрутизации Windows. Они определяют поток пакетов из необходимой машины. В статье я расскажу о том, как просматривать таблицы и как их понять.

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

Таблицы маршрутизации – важная часть протокола TCP/IP в Windows, но операционная система не показывает их обычному пользователю. Если хочется их увидеть, то необходимо открыть командную строку и ввести команду ROUTE PRINT. После этого можно будет увидеть окно, похожее на представленное на рисунке А.

Рисунок A: Так выглядят таблицы маршрутизации.

Прежде чем я подробнее остановлюсь на таблицах, я советую ввести в командную строку другую команду:

Это показывает установку протокола TCP/IP на компьютере. Вы также можете посмотреть раздел TCP/IP в свойствах сетевого адаптера, но первый способ предпочтительнее. Я часто сталкивался с ситуацией, когда команда IPCONFIG выводила совершенно иные данные, нежели данные, введенные в свойства TCP/IP. Это случается нечасто, но ошибки происходят из-за этого разногласия. Другими словами, данные, введенные в свойства TCP/IP, определяют установку протокола для выбранной сети. А команда IPCONFIG показывает, как Windows в действительности настроил протокол.

Даже при отсутствии ошибок, будет полезно проверить настройку через команду IPCONFIG. Если на компьютере стоят несколько сетевых адаптеров, то сложно запомнить, какие настройки относятся к какому адаптеру. Команда IPCONFIG показывает список разных настроек в легко читаемом формате на основе сетевого адаптера, как показано на рисунке В:

Рисунок B: Команда IPCONFIG /ALL показывает все настройки TCP/IP на основе сетевого адаптера

Проверка таблиц маршрутизации

Вас, наверное, заинтересовало, почему я попросил ввести команду TCP/IP, если статья касается таблиц маршрутизации? Да потому что, никто не смотрит таблицы, если не возникла проблема с компьютером. А если проблема есть, то лучше всего начать процесс диагностики со сравнения информации, предоставленной командой IPCONFIG, с информацией в таблицах маршрутизации.

Как видно из рисунка В, команда IPCONFIG /ALL показывает основную информацию по протоколу TCP/IP: IP адрес, шлюз по умолчанию и т. д. А вот таблицы маршрутизации прочитать не так легко. Именно поэтому я хотел бы обсудить вопрос считывания данных из таблиц.

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

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

Взглянув на экран, появившийся после введения команды Route Print, можно увидеть, что таблицы разделены на 5 колонок. Первой идет колонка сетей. В ней представлены все сетевые сегменты, к которым подключен маршрутизатор. Колонка Netmask показывает маску подсети, но не сетевого интерфейса, к которому подключен сегмент, а самого сегмента. Это позволяет маршрутизатору определить класс адреса для сети места назначения.

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

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

Последней идет метрическая колонка. Метрики – это довольно сложная тема, тем не менее, я попытаюсь объяснить, что они из себя представляют. Лучше всего это можно сделать на примере аэропорта. Представьте, что необходимо перелететь из Шарлоты, штат Северная Каролина, в Майами, штат Флорида. Аэропорт в Шарлоте очень большой, и существует несколько способов попасть на пляж в Майами. Можно воспользоваться рейсом компании Северо-западные авиалинии. Он доставит меня в Детройт, штат Мичиган, а затем в Майами (Детройт находится несколько в стороне). Можно воспользоваться рейсом Континентальный авиалиний через Хьюстон, штат Техас, а затем в Майами. А можно просто воспользоваться Американскими авиалиниями и попасть в Майами без промежуточных приземлений. Так каким же рейсом воспользоваться?

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

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

Дополнительные возможности маршрутизации

Я уже упоминал команду Route Print, но существует множество вариантов использования команды ROUTE. Ее синтаксис следующий:

ROUTE [-f] [-p]

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

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

Командная часть в синтаксисе ROUTE проста. Она может состоять из 4 вариантов: PRINT, ADD, DELETE, и CHANGE. Я уже говорил о команде ROUTE PRINT, но и у нее могут быть варианты. Например можно использовать специальные символы в команде. Если нужно напечатать маршруты для подсети 192.x.x.x, можно воспользоваться командой ROUTE PRINT 192*.

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

Все выше сказанное касается и команд ROUTE CHANGE и ROUTE ADD. При введении данной команды следует определить место назначения, маску подсети и шлюз. Также можно указать метрики и интерфейс. Например, добавить место назначения с простым синтаксисом можно следующим образом:

ROUTE ADD 147.0.0.0 255.0.0.0 148.100.100.100

В данной команде 147.0.0.0 является местом назначения, 255.0.0.0 – маской подсети для места назначения, а 148.100.100.100 – адресом шлюза. Можно расширить команду с помощью параметров METRIC и IF:

ROUTE ADD 147.0.0.0 255.0.0.0 148.100.100.100 METRIC 1 IF 1

Параметр metric необязателен, но он определяет метрику и количество отрезков для маршрута. Параметр IF указывает Windows, какой адаптер использовать. В нашем случае Windows использует сетевой адаптер, который связан с ним в качестве интерфейса 1. При отсутствии данного параметра используется лучший интерфейс.

Заключение

В статье я рассказал о том, как использовать команду ROUTE для вывода таблиц маршрутизации и внесения в них изменений. Если нужна дополнительная помощь, можно получить дополнительные примеры, введя команду ROUTE /? Command.

www.windowsnetworking.com


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

Exchange 2007

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ...

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ...

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть...

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ...

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

  • тип протокола - информацию о протоколе маршрутизации, создавшем запись в таблице маршрутизации;
  • связка получатель/следующий узел сообщает маршрутизатору о том, что определенный получатель либо подключен непосредственно, либо может быть достигнут через другой маршрутизатор, называемый следующим транзитным узлом (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.




Top