Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Олифер. Сетевые операционные системы.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
16.5 Mб
Скачать

Функциональная схема маршрутизатора

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

Рис. 9.14. Функциональная схема маршрутизатора

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

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

Разделение функций между контроллером и драйвером зависит от реализации порта, в данной книге мы не будем вдаваться в детали этого разделения. Для нас главное здесь то, что контроллер и драйвер вместе обеспечивают поддержку некоторого протокола канального уровня, например Ethernet. На рис. 9.14 показаны также порты s1-sN, которые поддерживают такие протоколы глобальных каналов связи, как РРР и Frame Relay.

Работа порта (контроллера и драйвера) по приему пакетов заключается в том, что он принимает из канала связи биты кадра, инкапсулирующего пакет в соответствии с правилами канального протокола, который он реализует. Так, порт Ethernet принимает в свой внутренний буфер биты Ethernet-кадра, и в том случае, когда МAC-адрес назначения кадра совпадает с собственным МАС-адресом порта, выполняет дальнейшую обработку кадра — проверяет его целостность и корректность по контрольной сумме, имеющейся в кадре. Если полученный кадр корректен, он помещается в один из буферов пакетов, органи­зованных в памяти маршрутизатора. Буферы пакетов являются одними из важнейших элементов маршрутизатора, они позволяют ему обрабатывать пульсации трафика в тех случаях, когда скорость поступления пакетов временно превышает возможности маршрутизатора по их продвижению.

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

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

Если маршрутизатор определяет, что пришедший пакет является IP-пакетом, то для его обработки вызывается модуль протокола IP. Этот модуль выполняет все описанные ранее действия по маршрутизации пакета: Он анализирует таблицу маршрутизации и пытается найти в ней номер сети, совпадающий с номером сети, взятым из адреса назначения обрабатываемого пакета. При совпадении этих номеров маршрут считается найденным, и сетевой протокол извлекает из таблицы маршрутизации IP-адрес следующего хопа — по этому адресу определяется порт маршрутизатора, на который нужно передать пакет. Затем просматривается ARP-таблица1 и в ней по найденному IP-адресу ищется МАС-адрес следующего хопа, необходимый для формирования кадра и отправки его в сеть через выходной порт. Если в ARP-таблице нет соответствия для искомого IP-адреса, то сетевой протокол инициирует ARP-запрос, в результате чего ARP-таблица пополняется новым отображением.

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

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

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

Управление перегрузками (congestion management) требуется в тех случаях, когда маршрутизатор не успевает своевременно обрабатывать потоки поступающих пакетов, в результате чего возникают очереди в буферах пакетов, а при их переполнении — и потери пакетов (то есть пакеты, для которых нет места в буфере, отбрасываются). Такие ситуации могут временно возникать в маршрутизаторе даже в том случае, когда в среднем его производительность оказывается достаточной для обработки входящего трафика — причиной являются уже упомянутые пульсации компьютерного трафика. Для того чтобы справ­ляться с временными перегрузками, в маршрутизаторах реализуются так называемые механизмы поддержания качества-обслуживания (Quality of Service, QoS). Мы не будем здесь останавливаться на их детальном описании, отсылая интересующегося читателя к специальной литературе по этой теме (см., например, [1] или [8]), а ограничимся только краткой характеристикой этого подхода.

Механизмы QoS основаны на существовании нескольких выходных очередей к каждому порту вместо одной очереди, как при обычной обработке пакетов. Применяются два основных механизма обслуживания набора очередей — приоритетное обслуживание и взвешенное обслуживание. При приоритетном обслуживании очереди имеют различный приоритет, так что пакеты, помещаемые в более приоритетную очередь, передаются в выходной порт раньше пакетов из менее приоритетных очередей. В самую приоритетную очередь направ­ляются пакеты приложений, которые наиболее чувствительны к задержкам и потерям пакетов, например приложений видеоконференций или 1Р-телефонии. Очевидным недостатком этого механизма является возможность дискриминации пакетов в менее приоритетных очередях, время ожидания в которых теоретически может достигать бесконечности. Для предотвращения таких ситуаций маршрутизаторы ограничивают входной поток высокоприоритетного трафика до уровня, заданного администратором, то есть логика здесь такая: «ваши пакеты будут обслуживаться лучше, чем пакеты других приложений, но только в том случае, если ваш трафик не окажется слишком интенсивным и не будет вытеснять все другие потоки».

Взвешенное обслуживание является более «справедливым» механизмом, так как все очереди обслуживаются циклически, причем у каждой очереди есть свой «вес», соответствующий доле времени, которая выделяется этой очереди для передачи ее пакетов в выходной порт в каждом цикле. Например, администратор может организовать три взвешенные очереди к порту eth1, задав для них веса 10, 50 и 40 % соответственно. Если, например, eth1 имеет пропускную способность 100 Мбит/с, то первой очереди достанется 10 Мбит/с, второй — 50 Мбит/с, а третьей — 40 Мбит/с пропускной способности в среднем. Зная эти доли, администратор может направлять в различные очереди трафик различных приложений, обеспечивая приемлемое время ожидания пакетов в каждой из очередей в соответствии с типом приложений. Например, в первую очередь администратор может направить трафик очень чувствительных к задержкам приложений с суммарной интенсивностью в 5 Мбит/е, обеспечив тем самым трафику достаточно комфортные условия обслуживания, так как эта очередь может обслуживать пакеты с максимальной скоростью в 10 Мбит/с. Во вторую очередь администратор может направить трафик менее чувствительных приложений, ограничив суммарную интенсивность потоков в 40 Мбит/с. Это создаст для пакетов второй очереди не такие комфортные условия, как для пакетов первой очереди, так как пропускная способность этой очереди будет использоваться в среднем на 80 % (40 Мбит/с при требуемом значении в 50 Мбит/с), но, по крайней мере, приемлемые и контролируемые. В третью очередь целесообразно направить трафик всех остальных приложений без контроля интенсивности суммарного потока, так что перегрузки в этой очереди могут быть значительными, а задержки и потери пакетов неконтролируемыми.

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

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

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

Интерфейс администратора обеспечивает доступ к параметрам операционной системы маршрутизатора локально (через текстовый или графический терминал, подключенный к консольному порту маршрутизатора) или удаленно, через сеть. В последнем случае обычно используется протокол удаленного управления telnet стека TCP/IP. Telnet поддерживает эмуляцию алфавитно-цифрового экрана и практически является стандартом при удаленном управлении коммуникационными устройствами через IP-сеть. Графические интерфейсы поддерживаются реже, так как требуют больших затрат пропускной способности сети и усложняют программное обеспечение маршрутизатора.

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