Вопросы: 1) Мосты Сетевой мост— сетевое устройство 2 уровня модели OSI, предназначенное для объединения сегментов (подсети) компьютерной сети в единую сеть. Сетевой мост работает на физическом уровне сетевой модели OSI, повторяет приходящий на один порт сигнал на все активные порты. В случае поступления сигнала на два и более порта одновременно возникает коллизия, и передаваемые кадры данных теряются. Таким образом, все подключённые к концентратору устройства находятся в одном домене коллизий. Концентраторы всегда работают в режиме полудуплекса, все подключённые устройства Ethernet разделяют между собой предоставляемую полосу доступа. Мосты функционируют на канальном уровне, точнее, на подуровне контроля доступа к среде передачи, MAC, поскольку подуровень управления логическим каналом, LLC, не затрагивается (MAC - нижний, а LLC - верхний подуровень сетевого уровня в локальных сетях). Мосты позволяют хостам в различных локальных сетях взаимодействовать друг с другом, как если бы они находились в одной сети. В отличие от повторителей, функционирующих на физическом уровне, мосты пропускают только предназначенный другому сегменту трафик. В отличи от маршрутизаторов, функционирующих на сетевом уровне, мостам безразлично, какие пакеты - IP, IPX или другие - они передают. Схематически работа моста выглядит следующим образом. Пусть хост А из локальной сети Ethernet хочет передать пакет сетевого уровня хосту Б в локальной сети Token Ring (см. Рисунок 1). Пакет передается подуровню LLC, а после добавления LLC-заголовка спускается на подуровень MAC, где получает заголовок и концевик. Получившийся блок данных передается по кабелю и в конце концов достигает моста. MAC-заголовок удаляется, и пакет (LLC-заголовок не трогается) передается MACподуровнем LLC-подуровню моста. После этого пакет проделывает путь в обратном порядке по сети Token Ring. Если бы пакет предназначался той же сети, что и хост А, то он был бы просто проигнорирован мостом. Однако все далеко не так просто, как кажется поначалу. Проблемы существуют как при организации моста между двумя разными, так и между двумя одинаковыми локальными сетями. Что касается разнотипных локальных сетей, то это, например, несовпадение форматов кадров (именно так называется блок данных канального уровня) неоднотипных локальных сетей, различия в пропускной способности (например, Ethernet - 10 Мбит/с, а Token Ring - 4 или 16 Мбит/с) и максимальном размере кадров, и т.д. Конечно, в случае однотипных локальных сетей проблем меньше, но совсем без проблем не обойтись и здесь. Например, два сегмента Ethernet могут иметь разную загруженность, в этом случае буфер для пересылаемых в перегруженный сегмент кадров может переполниться, и мост будет вынужден отказываться от вновь поступающих пакетов. Термин “прозрачные” мосты объединяет большую группу устройств, поэтому их принято группировать в категории, базирующиеся на различных характеристиках изделий: Прозрачные мосты (transparent bridges) объединяют сети с едиными протоколами канального и физического уровней модели OSI; Транслирующие мосты (translating bridges) объединяют сети с различными протоколами канального и физического уровней; 1 Инкапсулирующие мосты(encapsulating bridges) соединяют сети с едиными протоколами канального и физического уровня через сети с другими протоколами. Мост обеспечивает: ограничение домена коллизий задержку фреймов, адресованных узлу в сегменте отправителя ограничение перехода из домена в домен ошибочных фреймов: o карликов (фреймов меньшей длины, чем допускается по стандарту (64 байта)) o фреймов с ошибками в CRC o фреймов с признаком «коллизия» o затянувшихся фреймов (размером больше, чем разрешено стандартом) Мосты «изучают» характер расположения сегментов сети путем построения адресных таблиц вида «Интерфейс:MAC-адрес», в которых содержатся адреса всех сетевых устройств и сегментов, необходимых для получения доступа к данному устройству. Мосты увеличивают латентность сети на 10-30 %. Это увеличение латентности связано с тем, что мосту при передаче данных требуется дополнительное время на принятие решения. Мост рассматривается как устройство с функциями хранения и дальнейшей отправки, поскольку он должен проанализировать поле адреса пункта назначения фрейма и вычислить контрольную сумму CRC в поле контрольной последовательности фрейма перед отправкой фрейма на все порты. Если порт пункта назначения в данный момент занят, то мост может временно сохранить фрейм до освобождения порта. Для выполнения этих операций требуется некоторое время, что замедляет процесс передачи и увеличивает латентность. 2) Коммутаторы Сетевой коммутатор (жарг. свич от англ. switch — переключатель) — устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети. Коммутатор работает на канальном (втором) уровне модели OSI. Коммутаторы были разработаны с использованием мостовых технологий и часто рассматриваются как многопортовые мосты. Для соединения нескольких сетей на основе сетевого уровня служат маршрутизаторы. В отличие от концентратора, который распространяет трафик от одного подключенного устройства ко всем остальным, коммутатор передаёт данные только непосредственно получателю (исключение составляет широковещательный трафик всем узлам сети и трафик для устройств, для которых не известен исходящий порт коммутатора). Это повышает производительность и безопасность сети, избавляя остальные сегменты сети от необходимости (и возможности) обрабатывать данные, которые им не предназначались. Коммутатор хранит в памяти таблицу коммутации (хранящуюся в ассоциативной памяти), в которой указывается соответствие MAC-адреса узла порту коммутатора. При включении коммутатора эта таблица пуста, и он работает в режиме обучения. В этом режиме поступающие на какой-либо порт данные передаются на все остальные порты коммутатора. При этом коммутатор анализирует кадры (фреймы) и, определив MAC-адрес хоста-отправителя, заносит его в таблицу на некоторое время. Впоследствии, если на один из портов коммутатора поступит кадр, предназначенный для хоста, MACадрес которого уже есть в таблице, то этот кадр будет передан только через порт, указанный в таблице. Если MAC-адрес хоста-получателя не ассоциирован с каким-либо портом коммутатора, то кадр будет отправлен на все порты, за исключением того порта, с которого он был получен. Со временем коммутатор строит таблицу для всех активных MAC-адресов, в результате трафик локализуется. Стоит отметить малую латентность (задержку) и высокую скорость пересылки на каждом порту интерфейса. Существует три способа коммутации. Каждый из них — это комбинация таких параметров, как время ожидания и надёжность передачи. 1. С промежуточным хранением (Store and Forward). Коммутатор читает всю информацию в кадре, проверяет его на отсутствие ошибок, выбирает порт коммутации и после этого посылает в него кадр. 2. Сквозной (cut-through). Коммутатор считывает в кадре только адрес назначения и после выполняет коммутацию. Этот режим уменьшает задержки при передаче, но в нём нет метода обнаружения ошибок. 3. Бесфрагментный (fragment-free) или гибридный. Этот режим является модификацией сквозного режима. Передача осуществляется после фильтрации фрагментов коллизий (кадры размером 64 байта обрабатываются по технологии store-and-forward, остальные — по технологии cut-through). 2 Задержка, связанная с «принятием коммутатором решения», добавляется к времени, которое требуется кадру для входа на порт коммутатора и выхода с него, и вместе с ним определяет общую задержку коммутатора. Свойство симметрии при коммутации позволяет дать характеристику коммутатора с точки зрения ширины полосы пропускания для каждого его порта. Симметричный коммутатор обеспечивает коммутируемые соединения между портами с одинаковой шириной полосы пропускания, например, когда все порты имеют ширину пропускания 10 Мб/с или 100 Мб/с. Асимметричный коммутатор обеспечивает коммутируемые соединения между портами с различной шириной полосы пропускания, например, в случаях комбинации портов с шириной полосы пропускания 10 Мб/с и 100 Мб/с или 100 Мб/с и 1000 Мб/с. Асимметричная коммутация используется в случае наличия больших сетевых потоков типа клиентсервер, когда многочисленные пользователи обмениваются информацией с сервером одновременно, что требует большей ширины пропускания для того порта коммутатора, к которому подсоединен сервер, с целью предотвращения переполнения на этом порте. Для того чтобы направить поток данных с порта 100 Мб/с на порт 10 Мб/с без опасности переполнения на последнем, асимметричный коммутатор должен иметь буфер памяти. Асимметричный коммутатор также необходим для обеспечения большей ширины полосы пропускания каналов между коммутаторами, осуществляемых через вертикальные кросс-соединения, или каналов между сегментами магистрали. Для временного хранения фреймов и последующей их отправки по нужному адресу коммутатор может использовать буферизацию. Буферизация может быть также использована в том случае, когда порт пункта назначения занят. Буфером называется область памяти, в которой коммутатор хранит передаваемые данные. Буфер памяти может использовать два метода хранения и отправки фреймов: буферизация по портам и буферизация с общей памятью. При буферизации по портам пакеты хранятся в очередях (queue), которые связаны с отдельными входными портами. Пакет передается на выходной порт только тогда, когда все фреймы, находившиеся впереди него в очереди, были успешно переданы. При этом возможна ситуация, когда один фрейм задерживает всю очередь из-за занятости порта его пункта назначения. Эта задержка может происходить даже в том случае, когда остальные фреймы могут быть переданы на открытые порты их пунктов назначения. При буферизации в общей памяти все фреймы хранятся в общем буфере памяти, который используется всеми портами коммутатора. Количество памяти, отводимой порту, определяется требуемым ему количеством. Такой метод называется динамическим распределением буферной памяти. После этого фреймы, находившиеся в буфере, динамически распределяются выходным портам. Это позволяет получить фрейм на одном порте и отправить его с другого порта, не устанавливая его в очередь. Коммутатор поддерживает карту портов, в которые требуется отправить фреймы. Очистка этой карты происходит только после того, как фрейм успешно отправлен. Поскольку память буфера является общей, размер фрейма ограничивается всем размером буфера, а не долей, предназначенной для конкретного порта. Это означает, что крупные фреймы могут быть переданы с меньшими потерями, что особенно важно при асимметричной коммутации, то есть когда порт с шириной полосы пропускания 100 Мб/с должен отправлять пакеты на порт 10 Мб/с. 3) Зеркальный порт Port Mirroring коммутатора копирует трафик выбранного порта коммутатора в "зеркальный порт (Mirror Port)" так, что могут быть выполнены анализ трафика и анализ протокола, дополнительная диагностика работоспособности при помощи внешних устройств. 4) RIP Протокол маршрутной информации (англ. Routing Information Protocol) — один из самых простых протоколов маршрутизации. Применяется в небольших компьютерных сетях, позволяет маршрутизаторам динамически обновлять маршрутную информацию (направление и дальность в хопах), получая ее от соседних маршрутизаторов. Характеристики: - является дистанционно-векторным протоколом маршрутизации; - в качестве метрики при выборе маршрута используется количество переходов (хопов); 3 - если количество переходов становится дольше 15 – пакет отбрасывается; - по умолчанию обновления маршрутизации (routing updates) рассылаются широковещательно каждые 30 секунд. На рисунке ниже показано как поступает протокол rip при выборе маршрута : вместо трех более скоростных участков магистрали он выбирает хоть и на много хуже по скорости, но лучше по количеству переходов маршрут. Протокол RIP с течением времени перетерпел значительную эволюцию: от классового (classful) протокола маршрутизации (RIP-1) к бесклассовому протоколу RIP второй версии (RIP2).Усовершенствования протокола RiP-2 включают в себя: - способность переносить дополнительную информацию о маршрутизации пакетов; - механизм аутентификации для обеспечения безопасного обновления таблиц маршрутизации; - способность поддерживать маски под-сетей; Протокол RIP предотвращает появление петель в маршрутизации, по которым пакеты могли бы циркулировать неопределенно долго, устанавливая максимально допустимое количество переходов на маршруте от отправителя к получателю.Стандартное максимальное значение количества переходов равно 15.При получении маршрутизатором обновление маршрутов, содержащего новую или измененную запись, он увеличивает значение метрики на единицу. Если при этом значение метрики превышает 15, то считается бесконечно большим, и сеть-получатель считается недостижимой.Протокол RIP обладает рядом функций, которые являются общими для него и других протоколов маршрутизации.Например, он позволяет использовать механизмы расщепления горизонта и таймеры удержания информации для предотвращения распространения некорректных сведений о маршрутах, но об этом я напишу в следующих статьях. Формат RIP пакета 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Command (1) Version (1) Routing Domain (должен быть 0) (2) RIP Entry (20) Command — команда, определяет назначение датаграммы (1 — request; 2 — response) Version — номер версии, в зависимости от версии, определяется формат пакета Routing Domain — идентификатор RIP-системы, к которой принадлежит данное сообщение; часто — номер автономной системы. Используется, когда к одному физическому каналу подключены маршрутизаторы из нескольких автономных систем, в каждой автономной системе поддерживается своя таблица маршрутов. Поскольку сообщения RIP рассылаются всем маршрутизаторам, подключенным к сети, требуется различать сообщения, относящиеся к «своей» и «чужой» автономным системам. Поле использовалось короткое время в версии протокола RIP-2. В протоколе RIP-1 и в текущей версии RIP-2 не используется. RIP Entry (RTE) — запись маршрутной информации RIP. RIP пакет может содержать от 1 до 25 записей RIP Entry. 4 5) OSPF OSPF (англ. Open Shortest Path First) — протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути Алгоритм Дейкстры (Dijkstra’s algorithm). OSPF имеет следующие преимущества: Высокая скорость сходимости по сравнению с дистанционно-векторными протоколами маршрутизации; Поддержка сетевых масок переменной длины (VLSM); Оптимальное использование пропускной способности (т. к. строится дерево кратчайших путей по алгоритму Дейкстры); Описание работы протокола 1. Маршрутизаторы обмениваются hello-пакетами через все интерфейсы, на которых активирован OSPF. Маршрутизаторы, совместно использующие общий канал передачи данных, становятся соседями, когда они приходят к договоренности об определенных параметрах, указанных в их hello-пакетах. 2. На следующем этапе работы протокола маршрутизаторы будут пытаться перейти в состояние смежности со своими соседями. Переход в состояние смежности определяется типом маршрутизаторов, обменивающихся hello-пакетами, и типом сети, по которой передаются helloпакеты. OSPF определяет несколько типов сетей и несколько типов маршрутизаторов. Пара маршрутизаторов, находящихся в состоянии смежности, синхронизирует между собой базу данных состояния каналов. 3. Каждый маршрутизатор посылает объявление о состоянии канала маршрутизаторам, с которыми он находится в состоянии смежности. 4. Каждый маршрутизатор, получивший объявление от соседа, записывает информацию, передаваемую в нем, в базу данных состояния каналов маршрутизатора и рассылает копию объявления всем другим своим соседям. 5. Рассылая объявления через зону, все маршрутизаторы строят идентичную базу данных состояния каналов маршрутизатора. 6. Когда база данных построена, каждый маршрутизатор использует алгоритм "кратчайший путь первым" (shortest path first) для вычисления графа без петель, который будет описывать кратчайший путь к каждому известному пункту назначения с собой в качестве корня. Этот граф — дерево кратчайшего пути. 7. Каждый маршрутизатор строит таблицу маршрутизации, основываясь на своем дереве кратчайшего пути. Типы сетей, поддерживаемые протоколом OSPF Широковещательные сети со множественным доступом (Ethernet, Token Ring) Точка-точка (T1, E1, коммутируемый доступ) Нешироковещательные сети со множественным доступом (Non Broadcast Multiple Access, NBMA) (Frame relay) В разных типах сетей работа OSPF отличается. В том числе отличается процесс установления отношений соседства и настройки протокола. 6) ARP ARP (англ. Address Resolution Protocol — протокол определения адреса) — протокол в компьютерных сетях, предназначенный для определения MAC адреса по известному IP адресу. ARP-таблица для преобразования адресов Преобразование адресов выполняется путем поиска в таблице. Эта таблица, называемая ARP-таблицей, хранится в памяти и содержит строки для каждого узла сети. В двух столбцах содержатся IP- и MACадреса. Если требуется преобразовать IP-адрес в MAC-адрес, то ищется запись с соответствующим IPадресом. Ниже приведен пример упрощенной ARP-таблицы. IP-адрес MAC-адрес 223.1.2.1 08:00:39:00:2F:C3 223.1.2.3 08:00:5A:21:A7:22 223.1.2.4 08:00:10:99:AC:54 Табл.1. Пример ARP-таблицы Принято все байты 4-байтного IP-адреса записывать десятичными числами, разделенными точками. При записи 6-байтного MAC-адреса каждый байт указывается в 16-ричной системе и отделяется двоеточием. 5 ARP-таблица необходима потому, что IP-адреса и MAC-адреса выбираются независимо, и нет какоголибо алгоритма для преобразования одного в другой. IP-адрес выбирает менеджер сети с учетом положения машины в сети internet. Если машину перемещают в другую часть сети internet, то ее IP-адрес должен быть изменен. MAC-адрес выбирает производитель сетевого интерфейсного оборудования из выделенного для него по лицензии адресного пространства. Когда у машины заменяется плата сетевого адаптера, то меняется и ее MAC-адрес. Порядок преобразования адресов В ходе обычной работы сетевая программа, такая как TELNET, отправляет прикладное сообщение, пользуясь транспортными услугами TCP. Модуль TCP посылает соответствующее транспортное сообщение через модуль IP. В результате составляется IP-пакет, который должен быть передан драйверу Ethernet. IP-адрес места назначения известен прикладной программе, модулю TCP и модулю IP. Необходимо на его основе найти MAC-адрес места назначения. Для определения искомого MAC-адреса используется ARP-таблица. Существуют следующие типы сообщений ARP: запрос ARP (ARP request) и ответ ARP (ARP reply). Система-отправитель при помощи запроса ARP запрашивает физический адрес системы-получателя. Ответ (физический адрес узла-получателя) приходит в виде ответа ARP. Перед тем как передать пакет сетевого уровня через сегмент Ethernet, сетевой стек проверяет кэш ARP, чтобы выяснить, не зарегистрирована ли в нём уже нужная информация об узле-получателе. Если такой записи в кэше ARP нет, то выполняется широковещательный запрос ARP. Этот запрос для устройств в сети имеет следующий смысл: «Кто-нибудь знает физический адрес устройства, обладающего следующим IP-адресом?» Когда получатель с этим IP-адресом примет этот пакет, то должен будет ответить: «Да, это мой IP-адрес. Мой физический адрес следующий: …» После этого отправитель обновит свой кэш ARP и будет способен передать информацию получателю Обычно, записи в таблице ARP, созданные динамически, остаются в кэше в течение 2-х минут. Если в течение этих двух минут произошла повторная передача данных по этому адресу, то время хранения записи в кэше продлевается ещё на 2 минуты. Эта процедура может повторяться до тех пор, пока запись в кэше просуществует до 10 минут. После этого запись будет удалена из кэша, и будет отправлен повторный запрос ARP. В действительности время хранения записей в ARP таблице и метод хранения выбирается программно (например, операционной системой), и при должном желании его можно изменить. Принцип работы 1. Узел, которому нужно выполнить отображение IP-адреса на локальный адрес[1], формирует ARP запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. 2. Все узлы локальной сети получают ARP запрос и сравнивают указанный там IP-адрес с собственным. 3. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP запросе отправитель указывает свой локальный адрес. 6