Борьба с «размножением» пакетов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Борьба с «размножением» пакетов



Рассмотрим теперь подробней, в чем состоят особенности работы коммутатора в случае, когда его порты образуют транк. Во фрагменте сети, приведенном на рис. 14.6, коммута­торы 1 и 2 связаны четырьмя физическими каналами. Необходимо отметить, что транк может быть односторонним или двусторонним. Каждый коммутатор контролирует только отправку кадра, принимая решение, на какой из выходных портов его нужно передать. Поэтому если оба коммутатора считают связывающие их каналы транком, то он будет двусторонним, в противном случае — односторонним.

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

§ кадрами с еще не изученными коммутатором уникальными адресами;

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

Алгоритм прозрачного моста требует от коммутатора передавать кадр с неизученным (от­сутствующим в таблице продвижения) адресом на все порты, кроме того, с которого кадр

был принят. При наличии параллельных каналов такой кадр будет «размножен» в количе­стве, равном количеству каналов — в приведенном примере коммутатор 2 примет четыре копии оригинального кадра.

Рис. 14.6. Размножение пакетов с неизученным адресом при наличии параллельных каналов между коммутаторами

 

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

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

Еще больше проблем создают кадры с широковещательным адресом — они всегда должны передаваться на все порты, кроме исходного, так что в любом случае «засорение» сети по­сторонним трафиком окажется значительным, и кадры будут зацикливаться.

С кадрами, у которых адрес назначения изучен, проблем у коммутаторов, связанных парал­лельными каналами, не возникает — коммутатор передает такой кадр на тот единственный порт, по которому этот кадр впервые пришел от источника.

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

В примере, представленном на рис. 14.6, в таблице продвижения вместо портов Р17, Р18, Р19 и Р10 фигурирует логический порт AL11. С этим портом связаны адреса всех узлов, путь к которым лежит через коммутатор 2. При этом изучение нового адреса по кадру, по­ступившему от любого из физических портов, входящих в транк, приводит к появлению в таблице продвижения коммутатора новой записи с идентификатором логического порта. Поступающий в коммутатор кадр, адрес назначения которого изучен и связан с иденти­фикатором логического порта, передается на один (и только один!) выходной физический порт, входящий в состав транка. Точно так же коммутатор поступает с неизученными, широковещательными и групповыми адресами — для передачи кадра используется только одна из связей. На порты коммутатора, не входящие в транк, это изменение в логике обра­ботки кадров не распространяется. Так, коммутатор 1 всегда передает кадр с неизученным или широковещательным адресом на порты P11-Р16. Благодаря такому решению кадры не дублируются и описанные проблемы не возникают.

ВНИМАНИЕ

Сказанное справедливо только тогда, когда агрегированная линия связи сконфигурирована в качестве транка с обеих сторон.

Выбор порта

Остается открытым вопрос: какой из портов коммутатора нужно использовать для про­движения кадра через транк?

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

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

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

Обычно при статическом распределении выбор порта для некоторого сеанса выполняется на основании определенных признаков, имеющихся в поступающих пакетах. Чаще всего такими признаками являются МАС-адреса источника или приемника или оба вместе. В популярной реализации механизма FastEtherChannel компании Cisco для коммутаторов семейства Catalyst при выборе номера порта транка используется операция исключающего ИЛИ (XOR) над двумя последними битами МАС-адресов источника и приемника. Резуль­тат этой операции имеет четыре значения: 00,01,10 и 11, которые и являются условными номерами портов транка.

МАС1 МАС7


Рис. 14.7. Пример сети с механизмом Fast EtherChannel

 

На рис. 14.7 приведен пример сети, в которой работает механизм Fast EtherChannel. Рас­пределение потоков для сеансов между конечными узлами получается при этом достаточно случайным. Так как в распределении не учитывается реальная нагрузка, которую создает каждый сеанс, общая пропускная способность транка может использоваться нерациональ­но, особенно если интенсивности сеансов намного отличаются друг от друга. Кроме того, алгоритм распределения не гарантирует даже равномерного в количественном отношении

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

Можно предложить и другие способы распределения сеансов по портам. Например, в со­ответствии с IP-адресами пакетов, которые инкапсулированы в кадры канального уровня, типами прикладных протоколов (почта по одному порту, веб-трафик по другому и т. д.). Полезным оказывается назначение порту сеансов с МАС-адресами, которые были изучены как идущие именно через этот порт — тогда трафик сеанса пойдет через один и тот же порт в обоих направлениях.

Стандартный способ создания агрегированных каналов, описанный в спецификации 802.3ad, предполагает возможность создания логического порта путем объединения не­скольких физических портов, принадлежащих разным коммутаторам. Для того чтобы коммутаторы могли автоматически обеспечиваться информацией о принадлежности какого-либо физического порта определенному логическому порту, в спецификации предложен служебный протокол управления агрегированием линий связи (Link Control Aggregation Protocol, LCAP). Поэтому возможны такие конфигурации агрегированных ка­налов, которые увеличивают отказоустойчивость сети не только на участках между двумя коммутаторами, но и в более сложных топологиях (рис. 14.8).

Рис. 14.8. Распределенное агрегирование каналов

 

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

Фильтрация трафика

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

Многие модели коммутаторов позволяют администраторам задавать дополнительные усло­вия фильтрации кадров наряду со стандартными условиями их фильтрации в соответствии с информацией адресной таблицы. Такие фильтры называют пользовательскими.

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

Наиболее простыми являются пользовательские фильтры на основе МАС-адресов станций. Так как MAC-адреса — это та информация, с которой работает коммутатор, он позволяет создавать подобные фильтры удобным для администратора способом, возможно, про­ставляя некоторые условия в дополнительном поле адресной таблицы, например условие отбрасывать кадры с определенным адресом (см. рис. 13.6 в главе 13). Таким способом пользователю, работающему на компьютере с данным МАС-адресом, полностью запре­щается доступ к ресурсам другого сегмента сети.

Рассмотрим применение пользовательского фильтра на примере сети, показанной на рис. 14.9.


 

Пусть мы хотим разрешить доступ к серверу S 1 только с компьютеров С 1 и С 3, кадры от всех остальных компьютеров до этого сервера доходить не должны. Список доступа, ко­торый решает эту задачу, может выглядеть так:

10 permit MAC-Cl MAC - S1

20 permit MAC-C3 MAC-S1

30 deny any any

Числа 10, 20 и 30 — это номера строк данного списка. Строки нумеруются с интервалом 10 для того, чтобы в дальнейшем была возможность добавить в этот список другие записи, сохраняя исходную последовательность строк. Первое условие разрешает (permit) пере­дачу кадра, если его адрес источника равен МАС-С1, а адрес назначения — MAC-S1; второе условие делает то же, но для кадра с адресом источника МАС-СЗ, третье условие запрещает (deny) передачу кадров с любыми (any) адресами.

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

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

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

Иногда администратору требуется задать более тонкие условия фильтрации, например запретить некоторому пользователю печатать свои документы на сервере печати Windows, находящемуся в чужом сегменте, а остальные ресурсы этого сегмента сделать доступными. Для реализации подобного фильтра нужно запретить передачу кадров, которые удовлет­воряют следующим условиям: во-первых, имеют определенный МАС-адрес, во-вторых, содержат в поле данных пакеты SMB, в-третьих, в соответствующем поле этих пакетов в качестве типа сервиса указана печать. Коммутаторы не анализируют протоколы верх­них уровней, такие как SMB, поэтому администратору приходится для задания условий фильтрации «вручную» определять поле, по значению которого нужно осуществлять фильтрацию. В качестве признака фильтрации администратор указывает пару «смещение-размер» относительно начала поля данных кадра канального уровня, а затем еще приводит шестнадцатеричное значение этого поля.

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

Виртуальные локальные сети

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

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

Виртуальной локальной сетью (Virtual Local Area Network, VLAN) называется группа узлов сети, трафик которой, в том числе широковещательный, на канальном уровне полностью изолирован от трафика других узлов сети.

Рис. 14.10. Виртуальные локальные сети

 

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

Виртуальные локальные сети могут перекрываться, если один или несколько компьютеров входят в состав более чем одной виртуальной сети. На рис. 14.10 сервер электронной почты входит в состав виртуальных сетей 3 и 4. Это означает, что его кадры передаются комму­таторами всем компьютерам, входящим в эти сети. Если же какой-то компьютер входит в состав только виртуальной сети 3, то его кадры до сети 4 доходить не будут, но он может взаимодействовать с компьютерами сети 4 через общий почтовый сервер. Такая схема защищает виртуальные сети друг от друга не полностью, например, широковещательный шторм, возникший на сервере электронной почты, затопит и сеть 3, и сеть 4.

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



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 608; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.33.178 (0.031 с.)