Маршрутизаторы и коммутаторы

Другой тип устройств канального уровня - коммутаторы. В современных сетях они почти совершенно вытеснили мосты и частично маршрутизаторы.

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

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

Рис. 18. Коммутатор направляет входящий пакет только на порт,

обеспечивающий доступ к системе-получателю

Существует два основных типа коммутаторов: сквозные (cut-through) и с промежуточной буферизацией (store-and-forward). Сквозной коммутатор передает пакеты через соответствующий порт без дополнительной обработки, немедленно, как только они получены, считывая адрес целевой системы в заголовке протокола Канального уровня. Такие коммутаторы называются еще матричными (matrix) или координатными (crossbar). Они относительно недороги и сводят к минимуму так называемое время ожидания (latency), т. е. время, затрачиваемое коммутатором на обработку пакетов. Коммутатор с промежуточной буферизацией дожидается завершения приема пакета и лишь потом отправляет его по назначению. Пока пакет хранится в буферах, коммутатор пользуется этой возможностью, чтобы проверить данные, вычислив их код CRC. Кроме того, коммутатор отслеживает появление других проблем, присущих конкретному протоколу канального уровня, которые приводят к формированию дефектных кадров.

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

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

· Виртуальные ЛВС (ВЛВС) позволяют выделять в коммутируемой сети подсети, существующие только внутри коммутаторов. Адреса систем, входящих в данную подсеть, задаются сетевым администратором; физическая сеть остается коммутируемой. Системы подсети могут находиться где угодно, поскольку подсеть виртуальна и не зависит от физического расположения компьютеров. Когда компьютер, включенный в подсеть, передает широковещательное сообщение, оно передается только компьютерам данной подсети.

· Уровень коммутации 3 - это вариант ВЛВС, минимизирующий объем маршрутизации между виртуальными сетями. Когда требуется установить связь между системами в разных ВЛВС, маршрутизатор устанавливает соединение между системами, а затем управление берут на себя коммутаторы. Маршрутизация осуществляется только тогда, когда она действительно необходима.

Маршрутизатором(router) называется устройство, связывающее вместе две сети, формируя из них интерсеть. В отличие от мостов и коммутаторов, маршрутизаторы функционируют на Сетевом уровне эталонной модели OSI. Это означает, что маршрутизатор может связывать ЛВС, которые работают с разными протоколами Канального уровня (например, Ethernet и Token Ring), при условии, что все они используют один и тот же протокол Сетевого уровня.

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

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

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

Рис. 19. Расстояние между двумя оконечными системами интерсети часто

измеряют числом транзитов (или маршрутизаторов) между ними

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

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

Существуют два типа протоколов маршрутизации: протоколы внутреннего шлюза и протоколы внешнего шлюза. Протоколы внутреннего шлюза используются в пределах одной автономной системы, в то время как протоколы внешнего шлюза – между автономными системами. Под термином «автономная система» подразумевается сеть, принадлежащая определенной административной единицы (небольшой компании, университету и т.п.). Маршрутизаторы внутри автономных систем используют такие протоколы внутреннего шлюза, как Routing Information Protocol (RIP, протоколы информации маршрутизации) или Open Shortest Path First (OSPF, первоочередное открытие кратчайших маршрутов), для обмена между собой информацией маршрутизации. А наиболее широко распространенными в Интернете протоколами внешнего шлюза являются протоколы Border Gateway Protocol (BGP, пограничный межсетевой протокол) и Exterior Gateway Protocol (EGP, протокол внешнего шлюза).

Протокол информации маршрутизации (RIP, Routing Information Protocol) является наиболее широко используемым протоколом внутреннего шлюза. По большей части это вызвано тем, что он поддерживается множеством операционных систем и прост в установке и эксплуатации. Маршрутизаторы, задействующие обмен сообщениями RIP, используют User Datagram Protocol (UDP, протокол пользовательских дейтаграмм) и порт 520. Когда маршрутизатор включается, он посылает всем маршрутизаторам в сети RIP-сообщение запроса при помощи широковещательной или многоадресной передачи. Другие маршрутизаторы отвечают, передавая свои полные таблицы маршрутизации в RIP-сообщениях ответа, и повторяют сообщения каждые 30 секунд. Маршрутизаторы также могут использовать сообщения RIP для запроса информации об определенном маршруте.

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

Маршрутизация на основе состояния канала (OSPF) - это протокол внутреннего шлюза, который был документально оформлен IETF в 1989 г. и опубликован как RFC 1131. В отличие от RIP и большинства других протоколов TCP/IP, OSPF не переносится внутри транспортных протоколов, таких как UDP и TCP. Сообщения OSPF инкапсулируются непосредственно в IP-дейтаграммы и адресуются порту 89 других маршрутизаторов.

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

· Количество транзитов.

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

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

· Стоимость маршрута. Стоимость маршрута - это метрика, назначаемая администратором сети как вклад для оценки пригодности различных маршрутов.

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

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