Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик.Сети.Метода.pdf
Скачиваний:
19
Добавлен:
30.03.2015
Размер:
2.91 Mб
Скачать

2 Оборудование локальных сетей

Введем понятия «конечных систем» и «промежуточных систем». Из всего многообразия оборудования перечислим наиболее широко распространенные типы и дадим их краткие характеристики. Иконки соответствуют изображениям этих устройств на структурных схемах сетей.

Конечное сетевое оборудование

Конечное сетевое оборудование является источником и получателем информации, передаваемой по сети. Оно однозначно подпадает под определение DTE (Data Terminal Equipment) и АПД (аппаратура передачи данных).

Компьютер, подключенный к сети, является самым универсальным узлом. Прикладное использование компьютера в сети определяется программным обеспечением и установленным дополнительным оборудованием. Установка мультимедийного оборудования может превратить компьютер в IP-телефон, видеотелефон, терминал видеоконференцсвязи. Сетевой интерфейс обеспечивается адаптером локальной сети и программными средствами загружаемой операционной системы. Для дальних коммуникаций используется модем, внутренний или внешний. С точки зрения сети, «лицом» компьютера является его сетевой адаптер. Тип сетевого адаптера должен соответствовать назначению компьютера и его сетевой активности. Наиболее распространенный и перспективный интерфейс – Ethernet 10BaseT/lOOBaseTX. Компьютеры рядовых пользователей могут снабжаться средствами удаленной загрузки и администрирования.

Сервер является тем же компьютером, но подразумевается его более высокая сетевая активность и «значимость». Для подключения к сети желательно использовать полнодуплексные высокопроизводительные адаптеры для шин PCI (EISA, MCA).

Наиболее популярно подключение Fast Ethernet lOOBaseTX(FX) или FDDI, Gigabit Ethernet.. Серверы желательно подключать к выделенному порту коммутатора в полнодуплексном режиме. При установке двух и более сетевых интерфейсов (в том числе и модемного подключения) и соответствующего ПО сервер может играть роль маршрутизатора или моста. Особо важные серверы подключают к сети с использованием резервирования линий – LinkSafe или Resilient Link для Ethernet, для FDDI возможно подключение к двум концентраторам (dual homing). Для повышения пропускной способности сетевого подключения применяют объединение каналов (Port Trunking). Конструктивно сервер может представлять собой обычный настольный (desktop) компьютер. Специализированные серверы имеют более просторный конструктив, обеспечивающий большую расширяемость (число процессоров, объем оперативной и дисковой памяти). Серверы могут иметь возможность «горячей» замены (hot swap) дисковых накопителей, резервирование питания, блокировку несанкционированного Доступа, средства мониторинга состояния (включая возможность сообщения о критических событиях на пейджер администратора). Серверы, как правило, Должны иметь высокопроизводительную дисковую подсистему, в качестве интерфейса которой используют шину SCSI. Интерфейсом внешней памяти может быть и Fiber Channel, образующий отдельную локальную (но, возможно, и протяженную) сеть.

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

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

Разделяемые принтеры обеспечивают печать заданий от множества пользователей локальной сети. В общем случае для этого требуется принт-сервер средство выборки заданий из очереди (очередей) и собственно принтер, логически подключенный к принтсерверу. В роли принт-сервера может выступать обычный компьютер, подключенный к сети, и принтер подключается к его порту (как правило, LPT, возможно USB, иногда используют и СОМ-порт). Принт-сервер может встраиваться в собственно принтер или исполняться в виде отдельного сетевого устройства. Использование разделяемых принтеров, особенно лазерных в графическом режиме с высоким разрешением, значительно нагружает сеть. Принт-сервер (сетевой принтер) желательно подключать к выделенному порту коммутатора, полный дуплекс ему не нужен. Подключение принтера кабелем параллельного интерфейса территориально привязывает принтер к компьютеру, поскольку кабель имеет длину 1,5-5 м (максимум 10 м встречается редко). Для разделяемого принтера это не всегда удобно.

Сетевые принтеры в дополнение к локальному (параллельному или последовательному) имеют встроенный сетевой интерфейс Ethernet на 10 или 100 Мбит/с. В этом случае у них должно присутствовать встроенное ПО (принтсервер), рассчитанное на тот или иной сетевой протокол. Сетевой принтер территориально

может располагаться в любом месте помещения, где есть розетка кабельной сети.

Аппаратный принт-сервер представляет собой микроконтроллер, снабженный сетевым интерфейсом (Ethernet) и несколькими параллельными и последовательными портами. К портам подключаются обычные принтеры, встроенное ПО (firmware) обеспечивает выборку заданий из очереди на файл-сервере. Принт-сервер обычно поддерживает протокол какой-нибудь одной сетевой ОС (например, NetWare), возможность перезаписи встроенного ПО в некоторых случаях позволяет сменить протокол или улучшить

предоставляемый сервис.

Разделяемое использование возможно и для плоттеров, если они поддерживают стандартный протокол управления потоком данных. В случае параллельного интерфейса плоттера проблем не возникает – его подключают к любому принт-серверу. Некоторые плоттеры с последовательным интерфейсом отличаются фирменным подходом к управлению потоком: вместо аппаратной (RTS/CTS) или стандартной программной (XON/XOFF) сигнализации они по заполнению входного буфера передают ключевое слово (цепочку ASCII-символов). По готовности к дальнейшему приему они передают другое слово. Этот интерфейс не поймет ни один принт-сервер, с таким плоттером приложение может работать только через специальный драйвер – локально или через эмуляцию порта (монопольно захватывая устройство).

Варианты подключения принтеров к сети приведены ниже на рисунке .Кроме вполне очевидных вариантов (а, б, в), возможна и организация принтерной «мини-сети» нестандартными средствами (рис. 5.1, г). Здесь используются специальные интерфейсные адаптеры, преобразующие параллельный интерфейс LPT-порта в специальный последовательный. Специальные адаптеры ETHERPass устанавливаются на разъем LPTпорта (Т, передатчик) и параллельный порт принтера (R, приемник). Между собой эти устройства связываются 4-парным кабелем UTP с разъемами RJ-45 длиной до 100 м.

Питаются приемники и передатчики непосредственно от интерфейса, но при большой длине шлейфа требуют питания от внешних блоков питания. Адаптеры позволяют объединять несколько компьютеров и несколько принтеров: передатчики и приемники имеют по паре гнезд RJ-45, и их можно соединить в цепочку (длиной до 100 м). На каждом устройстве переключателями устанавливается адрес (0-3), приемник каждого принтера должен иметь уникальный адрес. На передатчиках выставляется адрес принтера, на который должна направляться печать, причем на один принтер может направляться печать от нескольких компьютеров. Разделение заданий осуществляется по паузам между посылками символов в порты компьютеров. Сеть работает «прозрачно» для операционной системы и прикладных программ, оперируя сигналами «занято» и

Рис.2.1 Подключение разделяемых принтеров: а – через компьютер, б – через аппаратный сервер, в – непосредственное подключение сетевого принтера, г – принтерная «мини-сеть»

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

2.1 Коммуникационное оборудование

Коммуникационное сетевое оборудование не является источником или конечным получателем данных. Вместе с тем ряд устройств, относясь к промежуточным системам, в плане интерфейса может выступать и в роли DCE (Data Communication Equipment), и в роли DTE. Приведем краткие характеристики коммуникационного оборудования локальных сетей.

Повторитель (repeater) в сети на коаксиальном кабеле является средством объединения кабельных сегментов в единый логический сегмент. В сетях на витой паре повторитель является самым дешевым средством объединения конечных узлов и других

коммуникационных устройств в единый разделяемый сегмент. В этом контексте вместо слова «повторитель» часто применяют «хаб» и «концентратор». Повторители Ethernet могут иметь скорость 10 или 100 Мбит/с (Fast Ethernet), единую для всех портов. Для Gigabit Ethernet повторители не используются. Полоса пропускания (10 или 100 Мбит/с) разделяется между всеми узлами и кабельными сегментами, объединяемыми повторителем.

Мост (bridge) является средством передачи кадров между двумя (и более) логическими сегментами. По логике работы является частным случаем

коммутатора. Скорость обычно 10 Мбит/с (для Fast Ethernet используются коммутаторы). Коммутатор (switch) является средством организации виртуальных цепей для передачи каждого кадра между двумя его портами. Скорости портов – 10, 100 или

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

Хаб (hub) – устройство, к которому подключаются кабели от множества конечных узлов и коммуникационных устройств. Внутренняя структура может быть различной. Чаще всего под хабом подразумевают повторитель. Сегментирующий хаб (segmented hub, Port Switch hub) является комбинацией нескольких повторителей, между которыми может присутствовать и мост. В сетях Token Ring хаб (MAU, MSAU) является

средством организации кольца на физической звездообразной топологии.

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

Преобразователь интерфейсов (media converter) позволяет осуществлять переходы от одной среды передачи к другой (например, от витой пары к оптоволокну) без логического преобразования сигналов. Благодаря усилению сигналов эти устройства могут позволять преодолевать ограничения на длину линий связи (если ограничения не связаны с задержкой распространения). Используются для связи оборудования с разнотипными портами.

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

МАС-адрес порта маршрутизатора.

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

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

или асинхронным), параллельным или даже шиной USB.

Модемный пул сборка из нескольких модемов, которые со стороны, обращенной к DTE, объединены общим портом с интерфейсом ЛВС (как правило, Ethernet). Каждый модем пула подключается к своей внешней линии. Устройство позволяет одновременно нескольким (в пределах числа модемов и линий) абонентам локальной сети пользоваться индивидуальными выходами во внешний мир (dial-out) и/или

обеспечивать нескольким внешним пользователям доступ к локальной сети (dial-in). LAN-модем комбинация модема и маршрутизатора, имеющая в качестве интерфейса, обращенного к DTE, порт Ethernet (иногда и несколько портов, объединенных повторителем). Позволяет одновременно пользоваться одним

выходом во внешний мир группе абонентов локальной сети.

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

Концентраторы с фиксированной конфигурацией формата 19" находятся в средней ценовой категории. Они предназначены для установки в шкафах (консольно или на полках), хотя крепеж обычно позволяет и подвеску на стене. Блок питания, как правило, встроенный, заземление предусматривается. Высота устройств 1-2U (45-90 мм), число портов до 36 (типично 12-24).

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

(Ethernet 10, 100, 1000 Мбит/с, Token Ring, FDDI, ATM) и количество портов. Модули, как правило, допускают «горячую» замену. Высота устройств 4-16U, количество портов может исчисляться сотнями. Это дорогие устройства, которые оправдывают себя при большом количестве портов и высоких требованиях к надежности.

Стековые концентраторы представляют собой устройства с фиксированной конфигурацией, имеющие специальный интерфейс для объединения нескольких устройств в стек. Стек подразумевает, что несколько физических устройств выступают как единое устройство своего класса (повторитель или коммутатор). Если в стек объединяются управляемые устройства, то, как правило, управляющий модуль одного из них наделяет «интеллектом» весь стек. С точки зрения управления стек тоже является единым устройством (с одним адресом), хотя встречается и иной подход (в некоторых моделях Cisco каждое устройство стека управляется независимо). Стек может быть локальным – устройства соединяются специальными короткими (0,3-1,5 м) кабелями или распределенным – устройства соединяются обычным 4-парным кабелем длиной до 100 м. Распределенный стек возможен только для повторителей 10 Мбит/с. Для коммутаторов стековый интерфейс может стать узким местом.

3 IP-адресация

IP-адрес – это уникальный числовой адрес, однозначно идентифицирующий узел, группу узлов или сеть. IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел (так называемых «октетов»), разделенных точками – W.X.Y.Z , каждое из которых может принимать значения в диапазоне от 0 до 255, например, 213.128.193.154.

3.1 Классы IP-адресов

Существует 5 классов IP-адресов – A, B, C, D, E. Принадлежность IP-адреса к тому или иному классу определяется значением первого октета (W). Ниже показано соответствие значений первого октета и классов адресов.

Класс IP-адреса

A

B

C

D

E

Диапазон

первого

1-126

128-191

192-223

224-239

240-247

октета

 

 

 

 

 

 

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

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

IP-адреса разных классов отличаются разрядностью номеров сети и узла, что определяет их возможный диапазон значений. Следующая таблица отображает основные характеристики IP-адресов классов A,B и C.

Характеристика

Класс

B

 

 

A

C

Номер сети

W

W.X

W.X.Y

Номер узла

X.Y.Z

Y.Z

Z

Возможное

126

16 384

2 097 151

количество сетей

 

65 534

 

Возможное

16 777 214

254

количество узлов

 

 

 

 

Особые адреса

W.X.0.0

 

Запись адреса сети в

W.0.0.0

W.X.Y.0

целом

 

W.X.255.255

 

Широковещательный

W.255.255.255

W.X.Y.255

адрес в сети

 

 

 

Например, IP-адрес 213.128.193.154 является адресом класса C, и принадлежит узлу с номером 154, расположенному в сети 213.128.193.0.

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

Диапазон адресов класса E зарезервирован и в настоящее время не используется.

Двоичная форма записи IP-адресов

Особые IP-адреса

Протокол IP предполагает наличие адресов, которые трактуются особым образом. К ним относятся следующие:

1. Адреса, значение первого октета которых равно 127. Пакеты, направленные по такому адресу, реально не передаются в сеть, а обрабатываются программным обеспечением узлаотправителя. Таким образом, узел может направить данные самому себе. Этот подход очень удобен для тестирования сетевого программного обеспечения в условиях, когда нет возможности подключиться к сети.

2. Адрес 255.255.255.255. Пакет, в назначении которого стоит адрес 255.255.255.255, должен рассылаться всем узлам сети, в которой находится источник. Такой вид рассылки называется ограниченным широковещанием. В двоичной форме этот адрес имеет вид 11111111 11111111 11111111 11111111.

3. Адрес 0.0.0.0. Он используется в служебных целях и трактуется как адрес того узла, который сгенерировал пакет. Двоичное представление этого адреса 00000000 00000000 00000000 00000000

Дополнительно особым образом интерпретируются адреса:

содержащие 0 во всех двоичных разрядах поля номера узла; такие IP-адреса используются для записи адресов сетей в целом;

содержащие 1 во всех двоичных разрядах поля номера узла; такие IP-адреса являются широковещательными адресами для сетей, номера которых определяются этими адресами.

3.2 Использование масок для IP-адресации

Схема разделения IP-адреса на номер сети и номер узла, основанная на понятии класса адреса, является достаточно грубой, поскольку предполагает всего 3 варианта (классы A, B и C) распределения разрядов адреса под соответствующие номера. Рассмотрим для примера следующую ситуацию. Допустим, что некоторая компания, подключающаяся к Интернет, располагает всего 10-ю компьютерами. Поскольку минимальными по возможному числу узлов являются сети класса C, то эта компания должна была бы получить от организации, занимающейся распределением IP-адресов, диапазон в 254 адреса (одну сеть класса C). Неудобство такого подхода очевидно: 244 адреса останутся неиспользованными, поскольку не могут быть распределены компьютерам других организаций, расположенных в других физических сетях. В случае же, если рассматриваемая организация имела бы 20 компьютеров, распределенных по двум физическим сетям, то ей должен был бы выделяться диапазон двух сетей класса C (по одному для каждой физической сети). При этом число "мертвых" адресов удвоится.

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

Использование в паре с IP -адресом маски подсети позволяет отказаться от применения классов адресов и сделать более гибкой всю систему IP-адресации. Так,

например, маска 255.255.255.240 (11111111 11111111 11111111 11110000) позволяет разбить диапазон в 254 IP-адреса, относящихся к одной сети класса C, на 14 диапазонов, которые могут выделяться разным сетям.

Класс

Двоичная форма

Десятичная форма

A

11111111 00000000 00000000 00000000

255.0.0.0

В

11111111 11111111 00000000 00000000

255.255.0.0

С

11111111 11111111 11111111 00000000

255.255.255.0

3.3 Распределение IP-адресов

Поскольку каждый узел сети Интернет должен обладать уникальным IP-адресом, то, безусловно, важной является задача координации распределения адресов отдельным сетям и узлам. Такую координирующую роль выполняет Интернет Корпорация по распределению адресов и имен (The Internet Corporation for Assigned Names and Numbers, ICANN).

Естественно, что ICANN не решает задач выделения IP-адресов конечным пользователям и организациям, а занимается распределением диапазонов адресов между крупными организациями-поставщиками услуг по доступу к Интернет (Internet Service Provider), которые, в свою очередь, могут взаимодействовать как с более мелкими поставщиками, так и с конечными пользователями. Так, например функции по распределению IP-адресов в Европе ICANN делегировал Координационному Центру RIPE (RIPE NCC, The RIPE Network Coordination Centre, RIPE - Reseaux IP Europeens). В свою очередь, этот центр делегирует часть своих функций региональным организациям. В частности, российских пользователей обслуживает Региональный сетевой информационный центр "RU-CENTER".

3.4 Маска подсети

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

Помимо своего IР - адреса хост должен знать, сколько разрядов в нем отведено для идентификатора сети и сколько — для идентификатора хоста. Этим целям служит маска подсети (subnet mask) — еще один параметр начальной загрузки. Маска задается 32разрядной константой, единицы которой отмечают позиции полей идентификаторов сети и подсети, а нули соответствуют разрядам идентификатора хоста.

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

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

4 Глава IP маршрутизация

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

На рисунке также показан демон маршрутизации, который обычно является пользовательским процессом. Наиболее часто в системах используются демоны routed и gated. Термин демон (daemon) означает, что процесс работает "в фоновом режиме" и его функционирование не оказывает влияние на систему в целом. Демоны обычно стартуют, когда система загружается, и живут все время, пока система работает. Протоколы маршрутизации, используемые на конкретном хосте, определяют, как будет происходить обмен информацией о маршрутах с удаленными маршрутизаторами. Мы вкратце рассмотрим динамическую маршрутизацию и протокол обмена информацией о маршрутизации (RIP - Routing Information Protocol). В этой главе мы рассмотрим, как IP уровень принимает решения о маршрутизации.

IP уровень обращается к таблице маршрутизации, которая показана на рисунке (на загруженных хостах подобное обращение может происходить несколько сот раз в секунду), однако демон маршрутизации обновляет таблицу значительно реже (примерно один раз каждые 30 секунд). Таблица маршрутизации также может быть обновлена, когда принимается ICMP сообщение о перенаправлении (ICMP redirect). Команда route обычно исполняется при загрузке системы и устанавливает некоторые исходные маршруты. Также в этой главе мы будем использовать команду netstat, для просмотра таблиц маршрутизации.

Рис.4.1 Действия, выполняемые IP уровнем.

4.1 Принципы маршрутизации

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

1.Поиск совпадающего адреса хоста.

2.Поиск совпадающего адреса сети.

3.Поиск пункта по умолчанию. (Пункт по умолчанию обычно указывается в таблице маршрутизации как сеть с идентификатором сети равным нулю.)

Совпавший адрес хоста используется всегда перед совпавшим адресом сети.

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

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

Давайте рассмотрим типичные таблицы маршрутизации. На хосте svr4 мы запустили команду netstat с опцией -r, чтобы просмотреть таблицу маршрутизации, и с опцией -n, которая печатает IP адреса в цифровом формате, а не в виде имен. (Мы сделали это, потому что некоторые пункты таблицы маршрутизации это сети, а не хосты. Без опции -n команда netstat просматривает файл /etc/networks, и берет оттуда имена сетей. При этом может получиться некоторая путаница, потому что в выводе команды помимо имен хостов появятся имена сетей.)

svr4 % netstat -rn

 

 

 

 

Routing tables

 

 

 

 

 

Destination

Gateway

Flags

Refcnt

Use

Interface

140.252.13.65

140.252.13.35

UGH

0

0

emd0

127.0.0.1

127.0.0.1

UH

1

0

lo0

default

140.252.13.33

UG

0

0

emd0

140.252.13.32

140.252.13.34

U

4

25043

emd0

В первой строке говорится, что для пункта назначения 140.252.13.65 (хост slip) шлюз (маршрутизатор), на который будут посылаться пакеты, это 140.252.13.35 (bsdi). Хост slip подсоединен к bsdi через SLIP канал, а bsdi находится в той же сети Ethernet, что и данный хост.

Для конкретного маршрута может быть показано 5 различных флагов.

U - Маршрут активен.

G- Маршрут подключен к шлюзу (маршрутизатору). Если этот флаг не установлен, считается, что пункт назначения подключен непосредственно.

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

D - Маршрут был создан посредством перенаправления.

M - Маршрут был модифицирован посредством перенаправления.

Флаг G очень важен, потому что именно этот флаг определяет различие между непрямым маршрутом (indirect route) и прямым маршрутом (direct route). (Флаг G не устанавливается для прямого маршрута.) Отличие заключается в том, что у пакета, направляющегося по прямому маршруту, IP адрес и адрес канального уровня указывают на конечный пункт назначения. Когда пакет отправляется по непрямому маршруту, IP адрес указывает на конечный пункт назначения, а адрес канального уровня указывает на маршрутизатор следующей пересылки. В этой таблице маршрутизации мы видим непрямой маршрут (флаг G установлен), при этом IP адрес пакета, который будет передаваться по этому маршруту, будет совпадать с IP адресом конечного пункта назначения (140.252.13.65), а адрес канального уровня будет указывать на соответствующий маршрутизатор, IP адрес которого 140.252.13.35.

Очень важно понимать разницу между флагами G и H. Флаг G определяет различие между прямым и непрямым маршрутом, как описано выше. Флаг H указывает на то, что адрес пункта назначения (первая колонка вывода команды netstat) это полный адрес хоста. Отсутствие флага H означает, что адрес назначения это адрес сети (идентификатор хоста должен быть установлен в 0). При просмотре таблицы маршрутизации используются следующие правила: если маршрут указывает на хост он должен полностью совпадать с IP адресом пункта назначения, если маршрут указывает на сеть - сопасть должны идентификаторы сети и любого идентификатора подсети в адресе пункта назначения. Большинство версий команды netstat сначала печатают все пункты, указывающие на хосты, после чего печатаются пункты, указывающие на сети.

Колонка счетчика обращений (reference count) сообщает о количестве использований каждого маршрута. Протоколы, ориентированные на соединения, такие как TCP, занимают маршрут все время, пока соединение установлено. Если установить Telnet соединение между хостами svr4 и slip, то счетчик обращений будет установлен в 1. Если установить еще одно Telnet соединение, счетчик будет показывать 2, и так далее.

Следующая колонка (use) показывает количество пакетов, прошедших по этому маршруту. Если запустить программу ping, которая отправит 5 пакетов, счетчик установится в значение 5 (Естественно, при условии, что никто больше не использует этот маршрут). Последняя колонка интерфейс (interface) сообщает нам имя локального интерфейса.

Вторая строка в выводе относится к loopback интерфейсу, который всегда имеет имя lo0. Флаг G не установлен, так как маршрут не ведет к маршрутизатору. Флаг H указывает, что адрес назначения (127.0.0.1) это адрес хоста, а не адрес сети. Когда флаг G не установлен, это указывает на прямой маршрут, в колонке gateway указывается IP адрес исходящего интерфейса.

Третья строка вывода описывает маршрут по умолчанию. Каждый хост должен иметь один или несколько маршрутов по умолчанию. Этот пункт указывает на то, что необходимо посылать пакеты на маршрутизатор 140.252.13.33 (sun), если не был найден конкретный маршрут. Это означает, что хост svr4 может получить доступ к другим системам в Internet через маршрутизатор sun (и его SLIP канал) воспользовавшись этим единственным пунктом таблицы маршрутизации. Возможность установить маршрут по умолчанию это одна из наиболее мощных концепций IP маршрутизации. Флаги для этого маршрута (UG) говорят о том, что маршрут указывает на маршрутизатор.

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

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

И последняя строка указывает на подключенный Ethernet. Флаг H не установлен, это указывает на то, что адрес назначения (140.252.13.32) это адрес сети, при этом идентификатор хоста установлен в 0. И действительно, 5 младших битов установлены в 0. Это прямой маршрут (флаг G не установлен), поэтому в колонке gateway указывается IP адрес исходящего интерфейса.

Существует еще один немаловажный аспект, оказывающий влияние на маршрутизацию, однако он не отражен в выводе команды netstat. Это маска подсети, связанная с адресом назначения (140.252.13.32). Когда адрес пункта назначения сравнивается с IP адресом 140.252.13.33, адрес перед сравнением, логически суммируется с маской подсети, связанной с этим адресом назначения (0xffffffe0 из раздела. Так как ядро знает каждый интерфейс, связанный с каждым пунктом таблицы маршрутизации, и так как каждый интерфейс имеет маску подсети, каждый пункт таблицы маршрутизации имеет собственную маску подсети.

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

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

2.Хост подключен к одной локальной сети и имеет возможность получить доступ к хостам только в этой локальной сети. Таблица маршрутизации имеет 2 пункта: один для loopback интерфейса и один для локальной сети (например, Ethernet).

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

4.И последнее, когда добавляются маршруты к хостам или сетям. Примером этого может служить маршрут к хосту slip через маршрутизатор bsdi.

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

1.Предположим, что адрес назначения принадлежит хосту sun, 140.252.13.33. Вопервых, осуществляется поиск совпадающего адреса хоста. Два пункта хостов в таблице (slip и localhost) не совпадают, поэтому поиск в таблице маршрутизации осуществляется снова на предмет совпадающего адреса сети. Совпадение найдено в пункте 140.252.13.32 (идентификатор сети и идентификатор подсети совпали), поэтому используется интерфейс emd0. Это прямой маршрут, поэтому адрес канального уровня будет являться адресом назначения.

2.Предположим, что адрес назначения это адрес хоста slip, 140.252.13.65. Первый поиск в таблице маршрутизации на предмет совпадающего адреса хоста заканчивается успешно. Это непрямой маршрут, поэтому IP адрес назначения остается 140.252.13.65, а адресом канального уровня будет адрес канального уровня маршрутизатора 140.252.13.35, используется интерфейс emd0.

3.Теперь мы посылаем датаграмму по Internet на хост aw.com (192.207.117.2). Первый поиск в таблице маршрутизации на предмет совпадающего адреса хоста заканчивается неудачей, поэтому осуществляется поиск на предмет совпадающего адреса сети. Он также завершается неудачно. И последний шаг это поиск пункта по умолчанию, который заканчивается успешно. Маршрут является непрямым через маршрутизатор 140.252.13.33 с использованием интерфейса emd0.

4.В нашем последнем примере мы послали датаграмму на свой собственный хост. Существует 4 способа сделать это, используя имя хоста, IP адрес хоста, loopback имя или loopback IP адрес:

ftp svr4

ftp 140.252.13.34

ftp localhost ftp 127.0.0.1

В двух первых случаях второй поиск в таблице маршрутизации приведет к совпадению с сетью 140.252.13.32, и пакет посылается через Ethernet драйвер, предназначенный на собственный IP адрес хоста, посылается в loopback драйвер, который ставит пакет во входную очередь IP.

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

IP.

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

4.3 Инициализация таблицы маршрутизации

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

устанавливается флаг H). Для широковещательных интерфейсов, таких как Ethernet, маршрутом является сама эта сеть.

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

route add default sun 1 route add slip bsdi 1

Третий аргумент (default и slip) это пункты назначения, четвертый аргумент это маршрутизатор (gateway) и последний аргумент это показатель маршрутизации. Команда route использует показатель маршрутизации следующим образом: она устанавливает флаг G, если показатель больше чем 0, и не устанавливает флаг G, если показатель равен 0.

К сожалению, совсем немногие системы содержат команды route в своих стартовых файлах.

Существует еще один способ заполнить таблицу маршрутизации с помощью запуска демона маршрутизации или с помощью нового протокола определения маршрутов .

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

Хост sun является маршрутизатором по умолчанию для всех хостов в нашей подсети, так как он имеет SLIP канал с дозвоном, который подключен к Internet.

sun % netstat -rn

 

 

 

 

 

Routing tables

 

 

 

 

 

Destination

Gateway

Flags

Refcnt

Use

Interface

140.252.13.65

140.252.13.35

UGH

0

171

le0

127.0.0.1

127.0.0.1

UH

1

766

lo0

140.252.1.183

140.252.1.29

UH

0

0

sl0

default

140.252.1.183

UG

1

2955

sl0

140.252.13.32

140.252.13.33

U

8

99551

le0

Первые два пункта таблицы маршрутизации sun идентичны первым двум пунктам для хоста svr4: маршрут, указывающий на хост slip, через маршрутизатор bsdi и loopback маршрут.

Третья строка отличается. Это прямой маршрут (флаг G не установлен) на хост (флаг H установлен), соответствующий каналу точка-точка, интерфейс SLIP. Если мы посмотрим на вывод команды ifconfig,

sun % ifconfig sl0

sl0: flags=1051<UP, POINTOPOINT, RUNNING>

inet 140.252.1.29 --> 140.252.1.183 netmask ffffff00

то увидим, что адрес назначения в таблице маршрутизации на другом конце канала точка-точка (маршрутизатор netb), а адрес маршрутизатора в действительности это локальный IP адрес исходящего интерфейса (140.252.1.29). (Раньше мы говорили, что для прямых маршрутов адрес маршрутизатора печатается командой netstat как локальный IP адрес используемого интерфейса.)

Пункт по умолчанию это непрямой маршрут (флаг G), указывающий на сеть (нет флага H). Адрес маршрутизатора - 140.252.1.183, (адрес на другом конце SLIP канала), а не локальный IP адрес SLIP интерфейса (140.252.1.29) (так как это непрямой маршрут).

Необходимо обратить внимание на то, что третья и четвертая строки в выводе команды netstat (интерфейс sl0) создаются программным обеспечением SLIP при установлении канала SLIP, они удаляются, когда канал SLIP отключается.

Нет маршрута к пункту назначения

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

Ответ зависит от того, какого рода IP датаграмма обрабатывается, то есть была ли она сгенерирована непосредственно этим хостом или она должна быть перенаправлена (в том случае, если хост выступает в роли маршрутизатора). Если датаграмма была сгенерирована этим хостом, приложению, которое отправило датаграмму, возвращается ошибка "хост недоступен" (host unreachable) или "сеть недоступна" (network unreachable). Если датаграмма должна быть перенаправлена, посылающему хосту возвращается ICMP собщение о недоступности хоста. Мы рассмотрим эту ошибку в следующем разделе.

ICMP ошибки о недоступности хоста и сети

ICMP ошибка о недоступности хоста (host unreachable) отправляется маршрутизатором, когда он получает IP датаграмму, которую невозможно перенаправить. Мы сможем пронаблюдать это в нашей сети, если выключим SLIP канал с дозвоном на маршрутизаторе sun и попробуем отправить пакет через SLIP канал с любого другого хоста, указав sun как маршрутизатор по умолчанию.

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

Мы можем увидеть это, запустив ping с svr4 на хост, находящийся на другом конце SLIP канала (в настоящее время этот хост выключен):

svr4 % ping gemini

ICMP Host Unreachable from gateway sun (140.252.13.33) ICMP Host Unreachable from gateway sun (140.252.13.33) ^? символ прерывания

На рисунке мы показали вывод команды tcpdump для этого примера. (Команда запущена на хосте bsdi).

1

0.0

svr4 > gemini: icmp: echo request

2

0.00 (0.00)

sun > svr4: icmp: host gemini unreachable

3

0.99 (0.99)

svr4 > gemini: icmp: echo request

4

0.99 (0.00)

sun > svr4: icmp: host gemini unreachable

Рисунок Сообщение ICMP о недоступности хоста в ответ на ping.

Когда маршрутизатор sun обнаруживает, что на хост gemini нет маршрута, он отвечает на эхо запрос сообщением о недоступности хоста.

Если мы включим SLIP канал, подключающий нас к Internet, и попробуем послать ping на несуществующий в Internet IP адрес, то рано или поздно получим сообщение об ошибке. Интересно посмотреть, как далеко уйдет пакет по Internet, перед тем как будет получена ошибка:

sun % ping 192.77.148.1

этот IP адрес не подключен к Internet

PING 192.77.148.1: 56 data bytes

 

ICMP Host Unreachable from gateway nsk-bsr1.ncc.sibirtelecom.ru [213.228.117.178] for icmp from sun (213.228.117.178) to 192.77.148.1

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

[Ford, Rekhter, and Braun 1993] определяет домены маршрутизации верхнего уровня (top-level routing domain) как маршрутизаторы, поддерживающие и обрабатывающие информацию о большинстве узлов Internet и не использующие маршрутов по умолчанию. В Internet существует пять доменов маршрутизации верхнего уровня: NFSNET магистраль, Commercial Internet Exchange (CIX), NASA Science Internet (NSI), SprintLink и European IP Backbone (EBONE).

ICMP ошибки перенаправления

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

Увидеть ICMP перенаправление можно только когда хост имеет выбор, на какой маршрутизатор послать пакет.

1.Предположим, что хост посылает IP датаграмму на R1. Подобное решение принято потому, что R1 - это маршрутизатор по умолчанию для этого хоста.

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

3.R1 посылает ICMP перенаправление на хост, сообщая тем самым, что следующие датаграммы необходимо посылать на R2 вместо R1.

Рис.4.2 Пример ICMP перенаправления.

Перенаправления используются для того, чтобы позволить хосту с минимальным знанием о маршрутах поддерживать и обновлять свою таблицу маршрутизации. Как правило, формирование таблицы маршрутизации хоста начинается с создания маршрута по умолчанию (R1 или R2 из нашего примера на рисунке), при этом с использованием перенаправления хост может обновить свою таблицу маршрутизации. ICMP перенаправление позволяет TCP/IP хостам полностью полагаться на интеллектуальность маршрутизаторов в вопросе выбора маршрутов. Маршрутизаторы R1 и R2 в нашем примере должны точно представлять топологию подключенных сетей, тогда как хосты, подключенные к локальной сети, могут начинать свою маршрутизацию с маршрута по умолчанию, узнавая затем более подробно о новых маршрутах из принятых перенаправлений.

Пример

Посмотрим ICMP перенаправления в действии на примере нашей сети (на внутренней стороне обложки). Мы показали всего три хоста (aix, solaris и gemini) и два маршрутизатора (gateway и netb) в верхней части сети, в действительности там более 150 хостов и 10 маршрутизаторов. Большинство хостов считают gateway маршрутизатором по умолчанию, так как он предоставляет доступ к Internet.

Как можно получить доступ из подсети 140.252.1 к нижней подсети ? Во-первых, вспомним, что если на конце SLIP канала находится единственный хост, используется

уполномоченный агент ARP. Это означает, что для хостов в верхней сети 140.252.1 не требуется специальных средств, для того чтобы получить доступ к хосту sun (140.252.1.29). Доступ обеспечит программное обеспечение уполномоченного агента ARP на netb.

Однако, если на удаленном конце SLIP канала присутствует сеть, то необходима маршрутизация. Одно из возможных решений заключается в том, чтобы каждый хост и маршрутизатор знали о том, что маршрутизатор netb является шлюзом в сеть 140.252.13. Этого можно добиться путем внесения статического маршрута в каждую таблицу маршрутизации на каждом хосте или запустив на каждом хосте маршрутизирующий демон. Однако существует более простой способ (метод, который обычно используется) - использовать ICMP перенаправление.

Запустим программу ping с хоста sol в верхней сети на хост bsdi (140.252.13.35) в нижней сети. Так как идентификаторы подсети различны, уполномоченный агент ARP не может быть использован. Предположим, что статический маршрут не установлен, поэтому при посылке первого пакета будет использован маршрут по умолчанию на маршрутизатор gateway. Ниже мы приводим таблицу маршрутизации, перед тем как запустили ping:

sol % netstat -rn

 

Routing Table:

 

 

Destination

Gateway

Flags Ref Use Interface

-------------- ---------------

 

------- --- ------- --------------

127.0.0.1127.0.0.1 UH 0 848 lo0

140.252.1.0

140.252.1.32

U

3

15042

le0

224.0.0.0

140.252.1.32

U

3

0

le0

default

140.252.1.4

UG

0

5747

 

(Пункт 224.0.0.0 используется для групповой адресации IP.) Если указать опцию -v в командной строке ping, то будут видны все ICMP сообщения принятые хостом. Нам необходимо указать эту опцию, чтобы увидеть сообщения о перенаправлении, которые будут посланы.

sol % ping -sv bsdi

PING bsdi: 56 data bytes

ICMP Host redirect from gateway gateway (140.252.1.4) to netb (140.252.1.183) for bsdi (140.252.13.35)

64 bytes from bsdi (140.252.13.35): icmp_seq=0. time=383. ms 64 bytes from bsdi (140.252.13.35): icmp_seq=1. time=364. ms 64 bytes from bsdi (140.252.13.35): icmp_seq=2. time=353. ms ^? символ прерывания

----bsdi PING Statistics----

4 packets transmitted, 3 packets received, 25% packet loss round-trip (ms) min/avg/max = 353/366/383

Перед тем как мы получим первый ответ на ping, хост примет ICMP перенаправление от маршрутизатора по умолчанию gateway. Если мы затем посмотрим таблицу маршрутизации, то увидим, что появился новый маршрут к хосту bsdi. (Этот пункт выделен жирным шрифтом.)

sol % netstat -rn

 

 

 

Routing Table:

 

 

 

 

Destination

Gateway

Flags

Ref

Use Interface

--------------- ---------------

--------

--- ------- -------------

 

127.0.0.1

127.0.0.1

UH

0

848

lo0

140.252.13.35

140.252.1.183

UGHD

0

2

 

140.252.1.0

140.252.1.32

U

3

15045

le0

224.0.0.0

140.252.1.32

U

3

0

le0

default

140.252.1.4

UG

0

5749

 

Pltcmm мы впервые видиv флаг D, который означает, что маршрут был установлен с использованием ICMP перенаправления. Флаг G обозначает, что это непрямой маршрут к шлюзу (netb), а флаг H обозначает, что это маршрут к хосту (как мы и ожидали), а не маршрут к сети.

Так как это маршрут к хосту, добавленный путем перенаправления, он обслуживает только хост bsdi. Если затем мы попробуем получить доступ к хосту svr4, будет сгенерировано еще одно перенаправление, и будет создан еще один маршрут к хосту. Точно так же, попытка получить доступ к хосту slip создаст еще один маршрут. Каждое перенаправление на конкретный хост приводит к созданию нового маршрута к хосту. Все три хоста в подсети (bsdi, svr4 и slip) будут обслуживаться одним маршрутом к сети, указывающим на маршрутизатор sun. Однако, ICMP перенаправления создают маршруты к хостам, а не маршруты к сетям, так как маршрутизатор, генерирующий перенаправление в данном примере (gateway), не имеет представления о структуре подсетей в сети 140.252.13.

Более подробно

На рисунке 4.3 показан формат сообщения ICMP о перенаправлении.

Рис.4.3 ICMP сообщение о перенаправлении.

Существуют четыре различных типа сообщений о перенаправлении, с различными значениями кода (code), как показано на рисунке 4.4.

код

Описание

 

 

 

 

0

перенаправление для сети

 

 

 

 

1

перенаправление для хоста

 

 

 

 

2

перенаправление для типа сервиса (TOS) и сети

 

 

 

 

3

перенаправление для типа сервиса (TOS) и хоста

 

 

 

 

Рис.4.4 Различные значения code для ICMP перенаправления.

Существуют три IP адреса, которые должен знать получатель ICMP перенаправления:

(1)IP адрес, который вызвал перенаправление (находится в IP заголовке, возвращенном как данные в ICMP сообщении о перенаправлении),

(2)IP адрес маршрутизатора, который послал перенаправление (является IP адресом источника IP датаграммы, содержащей перенаправление) и

(3)IP адрес маршрутизатора, который должен быть использован (находится в байтах с 4-го по 7-ой в ICMP сообщении).

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

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

1.Исходящий и входящий интерфейс один и тот же.

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

3.Датаграмма не должна быть смаршрутизирована от источника.

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

Вдополнение, хост, который принимает ICMP перенаправления, осуществляет некоторые проверки перед модификацией своей таблицы маршрутизации. Это предотвращает странное поведение маршрутизатора или хоста, вызванное некорректной модификацией таблицы маршрутизации системы.

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

2.Перенаправление должно быть от текущего маршрутизатора на указанный пункт назначения.

3.Перенаправление не может заставить хост использовать самого себя в качестве маршрутизатора.

4.Модифицируемый маршрут должен быть непрямым маршрутом.

И в заключение стоит повториться, что маршрутизаторы должны посылать только перенаправления к хостам (codes 1 или 3 на рисунке 4.4), а не перенаправления к сетям. Из-за разделения на подсети не всегда можно однозначно указать, когда должно быть послано перенаправление к сети вместо перенаправления к хосту. Некоторые хосты воспринимают принятое перенаправление к сети как перенаправление к хосту, в том случае если маршрутизатор послал неверный тип (type).

ICMP сообщения поиска маршрутизатора (ICMP Router Discovery Messages)

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

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

RFC 1256 [Deering 1991] содержит формат этих ICMP сообщений. На рисунке 4.5а показан формат ICMP сообщения запроса маршрутизатора. На рисунке 4.5б показан формат ICMP сообщения объявления маршрутизатора, которое рассылается маршрутизаторами.

В одном сообщении маршрутизатор может объявить несколько адресов. Поле количества адресов. Размер записи адреса - количество 32-битных слов для каждого адреса маршрутизатора, оно всегда установлено в 2. Время жизни - количество секунд, в течение которого данное объявление адресов считается действительным.

Рис.4.5а Формат ICMP сообщения запроса маршрутизатора.

Рис.4.5б Формат ICMP сообщения объявления маршрутизатора.

Затем следует одна или несколько пар IP адресов. IP адрес должен быть одним из адресов посылающего маршрутизатора. Уровень предпочтительности - это 32-битное целое число со знаком, указывающее на предпочтительность этого адреса в качестве адреса маршрутизатора по умолчанию, по сравнению с другими адресами маршрутизаторов в той же подсети. Большее значение указывает на большую предпочтительность адреса. Уровень предпочтительности 0x80000000 указывает на то, что соответствующий адрес, несмотря на то что он объявлен, не должен быть использован получателем в качестве адреса маршрутизатора по умолчанию. Обычное значение предпочтительности это 0.

Функционирование маршрутизатора

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

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

Помимо периодических объявлений, маршрутизатор отвечает на запросы от хостов. Он отвечает на запросы объявлением маршрутизатора.

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

Функционирование хоста

При старте хост обычно посылает три запроса о поиске маршрутизатора с интервалом в 3 секунды. После того как принято объявление от маршрутизатора, запросы прекращаются.

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

Пока текущий маршрутизатор по умолчанию функционирует, он отправляет объявления каждые 10 минут с временем жизни в 30 минут. Это означает, что маршрут по умолчанию в таблице маршрутизации хоста не будет удален по тайм-ауту, даже если одно или два объявления будут потеряны.

Реализация

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

Краткие выводы

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

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

5Расчет корректностиконфигурациилокальнойсети.

Вданной лекции разговор пойдет о сетях Ethernet и Fast Ethernet, как наиболее распространенных, однако некоторые из рассмотренных ограничений будут справедливы и в других сетях (естественно,

сдругими значениями параметров).

Расчет корректности конфигурации сети Ethernet.

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

1) Ограничение на максимальную/минимальную длину кабеля.

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

2) Ограничение на количество компьютеров в одном сегменте сети.

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

максимальное число компьютеров в одном сегменте сети (см. табл. ).

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

Число повторителей (концентраторов) между любыми двумя компьютерами в сети Ethernet не может быть больше четырех. Это ограничение называют "правилом четырех хабов". Ограничение связано с задержками в распространении сигнала, которые вносит повторитель (подробнее, объяснение см. в расчете PDV).

 

 

 

 

 

Таблица

Ограничения на конфигурацию сети Ethernet.

 

 

 

Стандарт

10Base-5

10Base-2

10Base-T

 

10Base-F

 

 

 

 

 

Кабель

Толстый

Тонкий

Неэкраниро-

Многомодовый

 

коаксиальный

коаксиальный

ванная

витая

волоконно-

 

кабель RG-8

кабель RG-58

пара категорий

оптический кабель

 

или RG-11

 

3, 4, 5

 

 

Максимальная длина кабеля, м

500

185

100

 

2000

Минимальная длина кабеля, м

2,5

2,5

2,5

 

 

Максимальное количество

100

30

1024

 

1024

компьютеров в одном сегменте

 

 

 

 

 

Максимальное число повторителей

4

 

 

 

 

между любыми станциями сети

575 битовых интервалов

 

 

 

PDV не более

 

 

 

PVV не более

49 битовых интервалов

 

 

 

4) Ограничение на время двойного оборота сигнала (Path Delay Value, PDV).

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

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

произойдет это через значительно более длительный интервал времени (иногда даже через несколько секунд), по сравнению с микросекундными интервалами, которыми оперирует протокол Ethernet. Поэтому если коллизии не будут надежно распознаваться узлами сети Ethernet, то это приведет к заметному снижению полезной пропускной способности сети.

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

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

интервала, т.е. PDV не должно превышать 571 битовый интервал.

Данные для расчета значения PDV

Тип сегмента*

Повторитель**

Повторители

Повторитель

 

левого сег-

промежуточного

правого

 

 

мента, bt

сегмента, bt

сегмента, bt

 

 

 

 

10Base-5

11,8

46,5

169,5

 

 

 

 

10Base-2

11,8

46,5

169,5

 

 

 

 

10Base-T

15,3

42,0

165,0

 

 

 

 

10Base-FB

24,0

 

 

 

 

Задержка*** Максимальная среды на 1 мдлина сегмента, м кабеля, bt

0,0866 500

0,1026 185

0,113 100

0,1 2000

*10Base-FB, 10Base-FL, FOIRL – представляют собой различные варианты стандарта 10Base-F.

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

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

В таблице используются также такие понятия, как левый сегмент, правый сегмент и промежуточный сегмент. Левым сегментом считается сегмент компьютера-отправителя, а правым сегментом – сегмент компьютераполучателя .

Рис.5.1. Расчет корректности конфигурации сети Ethernet.

Так как левый и правый сегменты имеют различные величины задержки повторителей, то в случае различных типов (коаксиал, витая пара, оптоволокно) сегментов на удаленных краях сети необходимо выполнить расчеты дважды: один раз принять в качестве левого сегмента сегмент одного типа, а во второй — сегмент другого типа. Результатом считается максимальное значение PDV. В сети, изображенной на рисунке оба крайних сегмента принадлежат к одному типу (10Base-T, витая пара) поэтому двойной расчет не требуется.

Расчет PDV для этой сети приведен ниже:

Левый сегмент 1: 15,3 (повторитель) + 100 х 0,113 (кабель) = 26,6. Промежуточный сегмент 2: 33,5 (повторитель) + 1000 х 0,1 (кабель) = 133,5.

 

Промежуточный

сегмент

(повторитель) + 500

х

(кабель) = 74,0.

 

Промежуточный

сегмент(повторитель)

+

500

х

(кабель) = 74,0.

 

Промежуточный

сегмент

(повторитель)

+

600

х

(кабель) = 84,0.

Правый сегмент 6:

165 (повторитель) +100

х 0,113 (кабель) = 176,3.

Итого PDV: 568,4 битовых интервала.

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

нужно также рассчитать уменьшение межкадрового интервала (PVV).

5) Ограничение на сокращение межкадрового интервала (Path Variability Value, PVV).

При отправке кадра, компьютеры обеспечивают начальное межкадровое расстояние в 96 битовых интервала.

При прохождении через повторители, межкадровый интервал уменьшается. Суммарное сокращение межкадрового интервала (PVV) не должно превышать 49 битовых интервалов. Для расчета PVV также существует таблица.

 

 

 

 

Таблица

Сокращение межкадрового интервала повторителями

 

 

 

 

 

Тип сегмента

Передающий сегмент,

Промежуточный сегмент,

 

 

 

10Base-5 или 10Base-216

11

 

 

 

 

10Base-FB

2

 

 

 

 

10Base-FL

10,5

8

 

 

 

 

10Base-T

10,5

8

 

 

 

В соответствии с данными таблицы, рассчитаем значение РVV для нашего примера. Левый сегмент 1 10Base-T: сокращение в 10,5 bt. Промежуточный сегмент 2 10Base-FL: 8. Промежуточный сегмент 3 10Base-FB: 2.

Промежуточный сегмент 4 10Base-FB: 2. Промежуточный сегмент 5 10Base-FB: 2. Итого PVV: 24,5 битовых интервала.

Рассчитанное значение PVV 24,5 меньше предельного значения в 49 битовых интервала. В результате, приведенная в примере сеть соответствует стандартам Ethernet по всем параметрам, хотя и включает в себя более четырех повторителей.

Расчет корректности конфигурации сети Fast Ethernet.

Порядок расчета корректности конфигурации сети Fast Ethernet несколько отличается от

расчета сети

 

 

 

 

 

 

 

Ethernet, как

по параметрам, так и по схеме расчета. Стандарт Fast Ethernet не

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица

Ограничения на длину кабеля в стандарте Fast Ethernet.

 

 

 

 

 

Тип кабеля

Стандарт

К повторителю подключен

Максимальная длина кабеля, м

 

 

Витая пара

100Base-TX

100

м

 

 

категории 5

 

 

 

 

 

 

 

Витая пара

100Base-T4

100

м

 

 

категории 3, 4

 

 

 

 

 

 

 

Многомодовое

 

только оптоволоконный кабель

412

м (полудуплекс)

 

 

оптоволокно

 

 

2000 м (полный дуплекс)

 

 

62,5/125 мкм

100Base-FX

один оптоволоконный кабель и

160

м

 

 

 

 

несколько кабелей витая пара

 

 

 

 

 

 

 

несколько оптоволоконных кабелей и

136

м

 

 

 

 

несколько кабелей витая пара

 

 

 

 

 

 

 

 

 

 

 

 

 

Ограничение на количество повторителей

Повторители Fast Ethernet делятся на два класса. Повторители класса 1 имеют порты всех типов (стандарт

повторителей класса 2 или только один повторитель класса 1. Между собой повторители

класса 1 должны объединяться при помощи коммутаторов, мостов, маршрутизаторов.

ПримерEthernet,конфигурациипостроенной на повсетиорителяхFast первого класса, приведен ниже:

Рис.5.2 Пример конфигурации сети Fast Ethernet.

Приведенных правил построения сети вполне достаточно для определения корректности конфигурации сети, т.к. эти правила выбраны с минимальным "запасом прочности". Однако, при желании, можно провести и расчет PDV, исходя из следующих соображений. Максимально допустимая величина PDV = 512 битовых интервала. При расчете сегменты не делятся на правый и левый. Для расчета берутся задержки, которые вносят две взаимодействующих через повторитель сетевые карты компьютеров (или сетевая карта компьютера и порт коммутатора). Также учитывается задержка сигнала в повторителе и задержка, вносимая кабелем. Исходные данные для расчета приведены в таблице .

Расчет задержек распространения сигнала.

 

 

 

 

 

Таблица

 

 

 

 

 

 

Задержка, вносимая кабелем

Задержка, вносимая сетевыми картами

Задержка, вносимая повторителем

 

 

 

 

Класс

 

 

Тип кабеля

Удвоенная

Тип сетевых карт,

Удвоенная

Удвоенная

 

адержка, bt на 1

взаимодействующих череззадержка, bt

повторителя

 

задержка, bt

 

м

повторитель

 

1

 

 

UTP Cat 3

1,14 bt

Два адаптера TX/FX

100 bt

 

140

 

 

 

 

2

 

 

UTP Cat 4

1,14 bt

Два адаптера Т4

138 bt

 

92

UTP Cat 5

1,112 bt

Один адаптер TX/FX и

127 bt

 

 

 

 

 

один Т4

 

 

 

 

Оптоволокно

1,0 bt

 

 

 

 

 

Рассчитаем, для примера, PDV между двумя компьютерами, подключенными к повторителю 1 класса, расположенному в правой части рис.5.2. Предполагаем, что используется витая пара 5-ой категории (TX). PDV=100*1,112 (кабель) + 136*1,0 (кабель) + 100 (сетевые карты) + 140 (повторитель) = 487,2 < 512

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