пособие по сетям. Уч_пособие IP-cети нов_оформление 1рец. Учебнометодическое пособие СанктПетербург спбгэту лэти 2017
Скачать 1.4 Mb.
|
3.2. Протоколы динамической маршрутизации Протоколы динамической маршрутизации делятся на протоколы внутридоменной маршрутизации – IGP (Interior Gateway Protocol) – и протоколы междоменной маршрутизации – EGP (Exterior Gateway Protocol). IGP-протоколы используются для передачи информации о маршрутах в пределах автономной системы (домена маршрутизации); пример автономной системы – сеть одной компании. EGP-протоколы используются для соединения автономных систем между собой. IGP-протоколы подразделяются на дистанционно-векторные протоколы (RIP, EIGRP) и протоколы состояния каналов связи (OSPF, IS-IS). Первые основаны на алгоритме DVA (distance vector algorithm), вторые – на алгоритме LSA (link state algorithm). Основные различия между этими двумя видами следующие: 1) Тип информации, которой обмениваются роутеры: таблицы маршрутизации в DVA-протоколах и таблицы топологии в LSA-протоколах. 2) Процесс выбора лучшего маршрута. 3) Количество информации о сети, хранящееся в каждом роутере: при DVA роутер знает только своих соседей, при LSA – имеет представление обо всей сети. Из EGP-протоколов в настоящее время активно используется один – BGP. Предназначенный для оперирования большими объемами данных, он обеспечивает связность всего Интернета, но может применяться и внутри домена. Протоколы динамической маршрутизации не просто автоматизируют настройку маршрутов в сети, но позволяют выполнять быстрое автоматическое их перестроение при возникновении проблем на участках сети. Еще одна полезная функция – балансировка трафика. Подробнее об алгоритмах динамической маршрутизации можно прочитать в [10], о протоколах RIP, OSPF и BGP – в [16]. 3.3. Лабораторная работа 3. Настройка таблиц маршрутизации Цель: изучение методов статической маршрутизации в IP-сетях; овладение управлением таблицами маршрутизации на узлах сетевого уровня. 3.3.1. Порядок выполнения работы 1. Для всех узлов сети установить IP-адреса, маски подсетей и шлюзы по умолчанию, чтобы добиться успешного выполнения Echo-запроса ближайших соседей (находящихся в одной подсети). 2. Настроить таблицы маршрутизации на маршрутизаторах, чтобы добиться доставки пакетов от узла K1 к узлу K2 и обратно, от узла K2 к K3 и обратно, от узла K3 к K1 и обратно. Пакеты должны доходить до узлов кратчайшим путем. 3. Настроить таблицы маршрутизации на узлах K1, K2 и K3, чтобы обеспечить кратчайшую доставку пакетов между этими узлами, если это невозможно было обеспечить в п. 2. В отчете привести конфигурацию TCP/IP для каждого из узлов, таблицы маршрутизации, результаты Echo-запросов между узлами K1, K2 и K3, а также обоснование правильности и оптимальности выбранных маршрутов. 3.3.2. Варианты заданий Вариант 1. Файл со схемой сети: lab2_var1.jfst. Сеть между маршрутизаторами R1, R2 и R3: 192.168.3.0. Сеть между маршрутизаторами R3 и R4: 192.168.4.0. Сеть между маршрутизаторами R5 и R6: 192.168.5.0. Компьютер PC1 имеет IP-адрес 192.168.0.100. Компьютер PC3 имеет IP-адрес 192.168.1.100. Компьютер PC4 имеет IP-адрес: 192.168.2.100. Обозначения в задании: K1 – PC1, K2 – PC3, K3 – PC4. Вариант 2. Файл со схемой сети: lab2_var2.jfst. Сеть между маршрутизаторами R1, R2 и R3: 172.168.3.0. Сеть между маршрутизаторами R5 и R6: 172.168.4.0. Компьютер PC1 имеет IP- адрес 172.168.0.100. Компьютер PC3 имеет IP-адрес 172.168.1.100. Компьютер PC4 имеет IP-адрес: 172.168.2.100. Обозначения в задании: K1 – PC1, K2 – PC3, K3 – PC4. Вариант 3. Файл со схемой сети: lab2_var3.jfst. Сеть между маршрутизаторами R1, R2, R3 и R4: 192.168.0.96. Сеть между маршрутизаторами R4 и R5: 172.168.4.0. Маршрутизатор R6 имеет адрес 10.120.0.1 на первом интерфейсе и 10.159.0.1 на втором интерфейсе. Сеть между маршрутизаторами R3 и R8: 11.0.0.0. Компьютер PC1 имеет IP-адрес 192.168.0.4. Компьютер PC3 имеет IP-адрес 192.168.0.34. Компьютер PC4 имеет IP-адрес: 192.168.0.250. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 4. Файл со схемой сети: lab2_var4.jfst. Сеть между маршрутизаторами R1, R2, R3 и R4: 199.0.5.96. Сеть между маршрутизаторами R4 и R5: 172.168.4.0. Маршрутизатор R6 имеет адрес 11.120.0.1 на первом интерфейсе и 11.159.0.1 на втором интерфейсе. Сеть между маршрутизаторами R3 и R8: 12.0.0.0. Компьютер PC1 имеет IP-адрес 199.0.5.2. Компьютер PC3 имеет IP-адрес 199.0.5.52. Компьютер PC4 имеет IP-адрес: 199.0.5.250. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 5. Файл со схемой сети: lab2_var5.jfst. Сеть между узлами PC3 и R3, R4, R6: 204.188.45.128. Сеть между маршрутизаторами R1, R2, R3: 204.188.45.192. Компьютер PC1 имеет IP-адрес 204.188.45.1. Компьютер PC2 имеет IP-адрес 204.188.45.65. Компьютер PC3 имеет IP-адрес 204.188.45.129. Длина маски подсети должна быть минимально возможной. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 6. Файл со схемой сети: lab2_var6.jfst. Сеть между узлами R1, R2, R3: 192.115.120.0. Сеть между узлами R2, R3, R4: 192.115.112.0. Сеть между узлами R4, R5, R7: 192.115.108.0. Сеть между узлами R6 и R7: 192.115.96.0. Компьютер PC1 имеет IP-адрес 192.115.128.1. Компьютер PC2 имеет IP-адрес 192.115.100.1. Компьютер PC3 имеет IP-адрес 192.115.88.2. Длина маски подсети должна быть минимально возможной. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 7. Файл со схемой сети: lab2_var7.jfst. Сеть между узлами PC3 и R3, R4, R6: 204.188.45.128. Сеть между маршрутизаторами R1, R2, R3: 204.188.45.192. Компьютер PC1 имеет IP-адрес 204.188.45.1. Компьютер PC2 имеет IP-адрес 204.188.45.65. Компьютер PC3 имеет IP-адрес 204.188.45.129. Компьютер BOSS имеет IP-адрес 204.188.45.196. Обозначения в задании: K1 – PC1, K2 – BOSS, K3 – PC3. Вариант 8. Файл со схемой сети: lab2_var8.jfst. Сеть между узлами R1, R2, R3: 192.115.120.0. Сеть между узлами R4 и R7: 192.115.108.0. Сеть между узлами R6 и R7: 192.115.96.0. Компьютер PC1 имеет IP-адрес 192.115.128.1. Компьютер PC2 имеет IP-адрес 192.115.112.4. Компьютер PC3 имеет IP-адрес 192.115.88.2. Длина маски подсети должна быть минимально возможной. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 9. Файл со схемой сети: lab2_var9.jfst. Сеть между узлами R1, R2, R3: 10.0.120.0. Сеть между узлами R3 и R4: 192.168.0.0. Сеть между узлами R4 и R5: 192.168.1.0. Компьютер PC1 имеет IP-адрес 10.0.0.3. Компьютер PC2 имеет IP-адрес 10.0.0.10. Компьютер PC3 имеет IP- адрес 10.0.0.18. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 10. Файл со схемой сети: lab2_var10.jfst. Сеть между узлами R3 и R4: 192.168.0.0. Сеть между узлами R4 и R5: 192.168.1.0. Компьютер PC1 имеет IP-адрес 10.0.0.5. Компьютер PC2 имеет IP-адрес 10.0.0.130. Компьютер PC3 имеет IP-адрес 10.0.0.194. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 11. Файл со схемой сети: lab2_var11.jfst. Все маршрутизаторы и компьютеры имеют адреса из диапазона 192.168.0.1 – 192.168.0.254. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 12. Файл со схемой сети: lab2_var12.jfst. Все маршрутизаторы и компьютеры имеют адреса из диапазона 200.0.1.1 – 200.0.254.254. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 13. Файл со схемой сети: lab2_var13.jfst. Все маршрутизаторы и компьютеры имеют адреса из диапазона 172.1.1.1 – 172.254.254.254. Обозначения в задании: K1 – PC1, K2 – PC2, K3 – PC3. Вариант 14. Файл со схемой сети: lab2_var14.jfst. Все маршрутизаторы и компьютеры имеют адреса из диапазона 172.0.10.1 – 172.0.88.254. Обозначения в задании: K1 – PC1, K2 – R5, K3 – PC3. 3.3.3. Пример выполнения лабораторной работы Пусть дана конфигурация сети, показанная на рис. 3.2. Рис. 3.2 Файл со схемой сети: lab2_sample.jfst. Компьютер PC1 имеет IP-адрес 172.168.0.2. Компьютер PC2 имеет IP адрес 10.0.0.2. Сеть между маршрутизаторами R1 и R: 172.168.100.0. Сеть между маршрутизаторами R2 и R: 192.168.0.0. Задание 1. Задать маски подсети и шлюзы по умолчанию для PC1 и PC2, а также адреса IP из указанного диапазона вместе с масками и шлюзами для R1, R и R2 так, чтобы обеспечить корректную доставку пакетов от PC1 к PC2. 2. Настроить таблицу маршрутизации на R так, чтобы обеспечить корректную доставку пакетов от PC2 к PC1 3. Выполнить Echo-запрос с PC1 на PC2. Посмотреть вывод программы. 4. Сделать выводы относительно таблиц маршрутизации. Выполнение работы 1. Установим для всех узлов IP-адреса, маски подсетей и шлюзы по умолчанию так, как показано в таблице 3.2. Таблица 3.2
Окончание табл. 3.2
Такая конфигурация обеспечит доставку пакетов от PC1 к PC2, но не обратно. Это объясняется тем, что при попытке отправки пакета с PC2 на PC1 пакет сначала попадет на R2 (поскольку он является шлюзом для PC2), а оттуда – на R. Но с маршрутизатора R он снова будет отправлен на R2, поскольку для R шлюзом является R2. В результате возникнет «петля». Устранить ее можно с помощью настройки таблицы маршрутизации на узле R. 2. Настроим таблицу маршрутизации на R. Она будет выглядеть следующим образом: R# show ip route Destination Gateway Genmask Type Iface default 192.168.0.1 255.255.255.0 0 eth0 Для того чтобы пакеты от PC2 прошли через R на R1, необходимо добавить маршрут для сети 172.168.0.0/255.255.255: R# conf t R(config)# ip route 172.168.0.0 255.255.255.0 172.168.100.2 eth0 R(config)# write mem Теперь любой пакет, попавший на R и имеющий в качестве подсети назначения 172.168.0.0/255.255.255.0, будет направлен на маршрутизатор R1. Чтобы проверить корректность добавления маршрута, необходимо вывести таблицу маршрутизации: R# show ip route Destination Gateway Genmask Type Iface default 192.168.0.1 255.255.255.0 0 eth0 172.168.0.0 172.168.100.2 255.255.255.0 0 eth0 3. С PC1 посылаем Echo-запрос PC2: PC1 Created Echo Request packet to 10.0.0.2 PC1 Sending packet from ProtocolStack (to 172.168.0.1). ... PC2 ProtocolStack received packet from local Interface. PC2 Confirmed Packet is for this Network Layer Device. PC2 Created Echo Reply packet to 172.168.0.2 PC2 Sending packet from ProtocolStack (to 10.0.0.1). ... PC1 ProtocolStack received packet from local Interface. PC1 Confirmed Packet is for this Network Layer Device. PC1 Echo reply packet received from 10.0.0.2 4. Как видно из вывода программы, на Echo-запрос пришел ответ, следовательно, таблица маршрутизации настроена верно. Аналогичным образом можно настроить таблицы на остальных устройствах. 3.3.4. Контрольные вопросы 1. Что такое маршрутизация? 2. Для чего предназначен маршрутизатор? 3. Перечислите типы маршрутизации. 4. Что такое таблицы маршрутизации и для чего они нужны? 5. Какие типы записей могут быть в таблице маршрутизации? 6. Объясните механизм статической маршрутизации. 7. Какие есть виды протоколов динамической маршрутизации? 4. ПРИМЕНЕНИЕ МЕЖСЕТЕВЫХ ЭКРАНОВ В ОС LINUX 4.1. Возможности межсетевого экрана ОС Linux В состав ядра ОС Linux входит подсистема фильтрации пакетов. Данная подсистема в своей работе использует универсальную систему идентификации пакетов iptables. В данной работе рассматривается использование одноименной административной утилиты для настройки межсетевого экрана на базе ОС Linux. При получении каждого пакета сетевая подсистема сравнивает данные о нем с информацией в таблицах ядра. На основании этого сравнения сетевая подсистема принимает решение о действии, которое необходимо выполнить над данным пакетом. Есть 4 таблицы: raw, mangle, nat и filter. Каждая таблица обработки пакетов содержит несколько предопределенных цепочек, а также может содержать цепочки, определенные пользователем. Всего есть 5 предопределенных цепочек: ● PREROUTING – для всех пакетов, приходящих извне; ● INPUT – для пакетов, пришедших извне и предназначенных для локальной системы; ● FORWARD – для маршрутизируемых пакетов, т.е. пакетов, пришедших извне и предназначенных для другой системы; ● OUTPUT – для пакетов, созданных в данной системе; ● POSTROUTING – для всех исходящих пакетов. Каждая цепочка состоит из набора правил, а каждое правило определяет действие над пакетом, которое будет выполняться в случае, если пакет соответствует условиям, заданным в правиле. Такое действие будем называть «цель». «Целью» может быть как переход к любой определенной пользователем цепочке, так и одно из предопределенных действий. Таблица mangle содержит все пять стандартных цепочек, таблица raw – цепочки PREROUTING и OUTPUT, таблица nat – цепочки PREROUTING, OUTPUT и POSTROUTING, таблица filter – цепочки INPUT, FORWARD, и OUTPUT. Цепочки с одинаковым названием, но в разных таблицах – совершенно независимые объекты. Например, mangle PREROUTING и nat PREROUTING обычно содержат разный набор правил; пакеты сначала проходят через цепочку mangle PREROUTING, а потом через nat PREROUTING. Обрабатываемые пакеты проходят через множество таблиц и цепочек. Рассмотрим лишь таблицу фильтрации пакетов (filter). Другие таблицы могут обеспечивать дополнительные возможности, например, модификацию пакетов и преобразование сетевых адресов. При получении каждого пакета сетевая подсистема выбирает первое правило из таблицы. Если пакет соответствует данному правилу, то выполняется действие («цель»), указанное в правиле, если нет – проверяется следующее в цепочке правило. Если пакет не соответствует условиям ни одного из правил, выбирается «цель» по умолчанию, которая задается для каждой цепочки. Для каждого правила в таблице фильтрации можно задать в качестве «цели»: ● перевод пакета в пользовательскую цепочку; ● принятие пакета (ACCEPT); ● «выброс» пакета (DROP); ● отказ от получения пакета (REJECT); ● передача пакета служебной программе (QUEUE); При принятии пакета он передается далее – либо в пользовательский процесс, либо по сети в соответствии с правилами маршрутизации. При выбросе пакета он просто теряется. Отказ от получения пакета вызывает отправление сообщения источнику пакета о том, что пакет не может быть принят. Возможен выбор сообщаемой причины непринятия пакета. Передача пакета служебной программе используется для какой-либо специальной обработки пакетов. По умолчанию для каждой из предопределенных цепочек задана «цель» ACCEPT. В качестве условий, с которыми сравниваются данные о пакете, могут выступать: ● IP-адрес отправителя; ● IP-адрес получателя; ● используемый протокол; ● сетевой интерфейс, с которого получен пакет; ● порт отправителя и порт получателя; ● другие параметры (размер пакета, физические адреса, флаги протоколов, специальные пометки и т. д.). 4.2. Настройка межсетевого экрана Настройка межсетевого экрана осуществляется добавлением правил в таблицы ядра. Каждое добавление реализуется выполнением программы iptables с необходимыми параметрами. Для добавления правила необходимо указать: ● таблицу и имя цепочки, в которую добавляется правило, ● условия выбора пакетов, ● «цель» правила. Подробную информацию о синтаксисе команды iptables и о возможных параметрах ее вызова можно получить, воспользовавшись электронной документацией. Для этого достаточно в системной консоли набрать команду man iptables. Далее приведены примеры наиболее часто употребляющихся правил фильтрации. Пример 1: iptables -t filter -A INPUT -s 192.168.1.100 -j DROP Данное правило будет соответствовать всем пакетам, получаемым с адреса 192.168.1.100. Цель правила – выброс, т. е. все пакеты, получаемые с данного адреса, будут игнорироваться так же, как если бы компьютера не было в сети. Пример 2: iptables -t filter -A INPUT -s 192.168.1.100 -p udp –dport 139 -j REJECT Правило будет соответствовать всем пакетам протокола UDP, полу-чаемым с адреса 192.168.1.100 для порта 139. Цель правила – отказ. На все пакеты, получаемые с данного адреса, будет отправлен ответ о недоступности данного порта. Пример 3: iptables -t filter -P <цепочка> <действие> Установка правила по умолчанию для выбранной цепочки. Пример 4: iptables -t filter -P INPUT DROP Данная команда установит для цепочки INPUT действие по умолчанию «выброс». Таким образом, все пакеты, не попадающие ни под одно разрешающее правило, будут игнорироваться. Удаление фильтрующих правил. Для того чтобы удалить какое-либо правило, выполняется команда iptables -t filter -D INPUT <номер_правила> Для того чтобы узнать номер правила, можно использовать дополнительный ключ, с которым команда вывода таблиц на экран также печатает для каждого правила его номер. (Значение ключа студенту предлагается выяснить из документации самостоятельно). Замечание. Вместо номера правила можно также указать весь список условий и цель правила, которое необходимо удалить. Существует также возможность удаления из цепочки всех правил. Данная возможность реализуется ключом -F. Если при использовании этого ключа не указать имя цепочки, то будут удалены все правила из всех цепочек заданной таблицы. Просмотр текущих настроек фильтра. В любой момент времени можно посмотреть текущее состояние таблиц ядра. Для этого используется команда iptables –L. Результатом ее работы будет вывод на экран таблицы. Пример такой таблицы: Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 10.0.0.0/8 0.0.0.0/0 DROP all -- 172.16.0.0/12 0.0.0.0/0 DROP all -- 192.168.0.0/16 0.0.0.0/0 DROP all -- 127.0.0.0/8 0.0.0.0/0 DROP all -- 169.254.0.0/16 0.0.0.0/0 DROP all -- 224.0.0.0/4 0.0.0.0/0 DROP all -- 240.0.0.0/5 0.0.0.0/0 DROP all -- 255.255.255.255 0.0.0.0/0 DROP all -- 217.174.99.34 0.0.0.0/0 DROP tcp -- !127.0.0.0/16 0.0.0.0/0 tcp dpt:3306 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination В данном примере на входе блокируются некоторые нежелательные источники пакетов, а также пакеты, которые могли попасть по ошибке. Так как цель по умолчанию – ACCEPT, то все пакеты, которые не будут соответствовать ни одному из правил, будут приниматься. 4.3. Настройка трансляции сетевых адресов Маскарадинг – это тип трансляции сетевых пакетов с подменой IP-адреса на IP-адрес узла, через который данный пакет проходит. Позволяет машинам, не имеющим реальных (внешних) IP-адресов, работать в сети Интернет. Пусть локальная сеть имеет адрес 192.168.0.0/24. Включается маскарадинг в iptables следующим образом: 1) Разрешить прохождение пакетов между сетевыми интерфейсами из локальной сети: iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT 2) Разрешить прохождение пакетов между сетевыми интерфейсами в локальную сеть: iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT 3) Включить маскарадинг для локальной сети 192.168.0.0/24: iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE SNAT (source NAT) – это тип трансляции сетевых пакетов с подменой IP-адреса на указанный в правиле адрес. Для его включения первые два шага такие же, как при включении маскарадинга, а на третьем шаге необходимо включить NAT: iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to-source 111.111.111.111 После этой команды включается трансляция адресов сети 192.168.0.0/24 на адрес 111.111.111.111. 4.4. Лабораторная работа 4. Использование межсетевого экрана ОС Linux Цель: научиться создавать, удалять и изменять правила межсетевого экрана iptables (настройка блокировки трафика, разрешения принятия трафика, логгирования приходящих пакетов). Имеются три виртуальные машины – Ub1, Ub3, UbR. Каждая соединена с двумя другими. 4.4.1. Порядок выполнения работы 0. На всех машинах запустить скрипт toscrath.sh. Проверить, что таблицы ядра пусты. 1. Заблокировать доступ по IP-адресу Ub1 к Ub3. 2. Заблокировать доступ по 21 порту на Ub1. 3. Заблокировать доступ к порту 80 на Ub3 от UbR. Проверить возможность доступа с Ub1. 4. Полностью запретить доступ к Ub3. Разрешить доступ к порту 21. 5. С помощью правила по умолчанию обеспечить блокировку всех входящих и исходящих пакетов узла Ub3, исключая пакеты управления сетью (протокол ICMP). Убедиться, что Ub3 принимает и отвечает на запросы команды ping, но не отвечает на запросы протокола TCP. 6. Запретить подключение к Ub1 по порту 80. Настроить логгирование попыток подключения по 80 порту. 7. Заблокировать доступ по 20 порту к Ub3 с Ub1 по его MAC-адресу. 8. Полностью закрыть доступ к Ub1. Разрешить доступ для Ub3 к Ub1, используя диапазон портов 20-79. 9. Разрешить только одно ssh подключение к UbR. Каждое задание в отчете оформить отдельным подразделом, указав выполненные команды (их вывод, если есть), представить результаты проверки успешности выполнения задач. После выполнения каждого задания выполнять скрипт delAllTables.sh. 4.4.2. Контрольные вопросы 1. В чем различие между целями DROP и REJECT? 2. Какая очередность применения правил iptables? 3. Какие правила необходимо добавить в таблицу фильтрации для разрешения установления TCP-соединения? 4. Дайте описание цепочек PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING. Какие из них есть в таблице фильтрации пакетов? 5. Что делает маскарадинг? Что такое NAT? Каковы отличия между ними? 6. Есть ли способ выполнить п. 5 (см. выше порядок выполнения работы) без использования правил по умолчанию? Если есть, то какой? 5. ВИРТУАЛЬНЫЕ ЛОКАЛЬНЫЕ СЕТИ VLAN (от англ. Virtual Local Area Network) – группа устройств, имеющих возможность взаимодействовать между собой напрямую на канальном уровне, хотя физически при этом они могут быть подключены к разным сетевым коммутаторам. И наоборот, устройства, находящиеся в разных VLAN'ах, невидимы друг для друга на канальном уровне, даже если они подключены к одному коммутатору, и связь между этими устройствами возможна только на сетевом и более высоких уровнях. Пакет, отправленный из одного VLAN’а в другой VLAN, будет заблокирован на канальном уровне, но может достигнуть цели, если на сетевом уровне организована маршрутизация между VLAN’ами. Таким образом, единый логический сегмент сети разбивается на несколько виртуальных логических сегментов, изолированных друг от друга, – VLAN’ов. Разграничиваются устройства, физически находящиеся в одном сегменте сети; логическая топология сети оказывается не зависящей от ее физической топологии. Это позволяет: ● повысить безопасность в сети (взаимодействие между VLAN можно контролировать на устройствах 3-го уровня); в частности, VLAN используются как средство борьбы с ARP-spoofing'ом; ● повысить управляемость сети (политики можно применять к целым подсетям, а не к отдельному устройству); ● увеличить производительность сети за счет сокращения широковещательного трафика (он будет ограничен одной VLAN). 5.1. Классификация VLAN Трафик, относящийся к некоторой VLAN, может быть отправлен только по путям, включенным в эту VLAN. В зависимости от способа определения того, к какой VLAN принадлежит трафик, VLAN можно разделить на 2 основных типа: 1) VLAN со статическим назначением портов (port-based VLAN). 2) VLAN с динамическим назначением портов. При статическом назначении портов принадлежность трафика к той или иной VLAN определяется по физическому порту, через который был получен этот трафик: он считается принадлежащим той VLAN, номер которой указан в настройках порта. Порты коммутатора сопоставляются с VLAN'ами, принадлежность порта VLAN'у задается администратором в процессе настройки коммутатора. Для обеспечения безопасности недоверенным пользователям следует давать доступ только к портам со статическим назначением: напрямую через такой порт будет доступна только та VLAN, которая задана в настройках порта, что бы пользователи ни отправляли в этот порт. При статическом назначении портов содержимое трафика не используется для определения принадлежности трафика к VLAN, поэтому устройство может принимать через такой порт трафик лишь одной VLAN (весь пришедший трафик считается принадлежащим к той VLAN, к которой приписан порт). Если нужно между устройствами передавать трафик нескольких VLAN, то в случае использования статического назначения потребуется выделять отдельный физический канал для каждой VLAN (рис. 5.1). Рис. 5.1. Между коммутаторами S1 и S2, использующими статическое назначение портов, может передаваться трафик VLAN 2 и VLAN 3 Чтобы передавать трафик нескольких VLAN через один кабель, нужно иметь возможность отделять трафик одной VLAN от трафика других VLAN. При динамическом назначении портов содержимое трафика влияет на определение принадлежности трафика к той или иной VLAN, так что через порт можно передавать трафик нескольких VLAN, не меняя настроек коммутатора. Преимущество динамического назначения в возможности пользователя менять свое местоположение, подключаясь через разные порты к одной VLAN, при этом не требуется заново настраивать конфигурацию VLAN. В зависимости от того, как содержимое трафика определяет его принадлежность к VLAN, можно выделить следующие типы VLAN с динамическим назначением портов: ● Tag-based VLAN: информация о принадлежности к VLAN передается в явном виде: в каждый фрейм трафика добавлен тег с номером VLAN (фреймы без тега могут считаться относящимися к определенной VLAN, называемой Native VLAN). Формат и место вставки тега определяются стандартом 802.1Q, хотя существуют и другие протоколы. ● MAC-based VLAN: членство в VLAN'e основывается на MAC-адресе подключенной рабочей станции. Коммутатор имеет таблицу MAC-адресов всех устройств вместе с VLAN'ами, к которым они принадлежат. Может использоваться сервер политики членства в VLAN (VMPS – VLAN Membership Policy Server). ● Authentication-based VLAN: устройства могут быть автоматически перемещены в VLAN основываясь на данных аутентификации пользователя или устройства (с использованием протокола 802.1x). По результатам аутентификации на RADIUS-сервере порт коммутатора размещается в той или иной VLAN. ● Protocol-based VLAN: данные 3-4 уровня в заголовке пакета используются для определения членства в VLAN'e. Например, использующие протокол IP машины помещаются в одну VLAN, а использующие протокол IPX – в другую. ● Subnet-based VLAN: членство в VLAN'e основывается на IP-адресе и маске подсети подключенной рабочей станции. Последние два метода динамического определения членства нарушают независимость уровней: например, переход с IPv4 на IPv6 приведет к нарушению работоспособности сети. Коммутаторы различаются по возможностям поддержки различных типов VLAN (например, некоторые коммутаторы поддерживают только статическое назначение портов). Могут использоваться сразу несколько способов определения членства в VLAN (как, например, при классическом построении VLAN на базе портов и тегов). Если коммутаторы позволяют, то администратор может настроить на них правила распознавания принадлежности трафика к VLAN, учитывающие сразу несколько критериев. Поскольку в таких сетях фреймы постоянно просматриваются на предмет соответствия заданным критериям, принадлежность пользователей к виртуальным сетям может меняться в зависимости от текущей деятельности пользователей. VLAN’ы могут использоваться для обеспечения безопасности в сетях, а именно, для запрещения взаимодействия между узлами, которые не должны взаимодействовать. В таком случае следует использовать port-based и tag-based VLAN’ы, так как другие типы VLAN’ов сами по себе не обеспечивают надежной защиты. Важно, кроме того, подобрать оборудование, в котором реализация функций VLAN подойдет для обеспечения надежной изоляции VLAN’ов, и правильно настроить его. В рамках 4-ой и 5-ой лабораторных работ будут исследоваться port-based VLAN и одна из разновидностей VLAN с динамическим назначением портов – tag-based VLAN. 5.2. Port-based и tag-based VLAN Port-based VLAN’ы позволяют разбить порты коммутатора на группы и запретить обмен трафиком между группами портов. У каждого порта есть ровно один PVID (Port VLAN ID). У каждого порта, кроме того, есть список VID – номеров VLAN’ов, в которые входит порт. В симметричных port-based VLAN’ах у порта есть единственный VID, совпадающий с PVID. Трафик, входящий в порт коммутатора, получает метку PVID внутри коммутатора. Далее определяется порт назначения; если у порта назначения VID совпадает с меткой PVID трафика, то трафик пропускается и выходит из порта коммутатора. Метка PVID с трафика при этом снимается. Если у порта назначения нет VID, совпадающего с меткой PVID трафика, то трафик отбрасывается. При использовании tag-based VLAN’ов трафик снабжается метками, указывающими, к какому VLAN принадлежит трафик. Можно считать, что это те же метки PVID, использующиеся внутри коммутаторов в port-based VLAN’ах, но в tag-based VLAN’ах эти метки могут оставаться на исходящем из портов трафике и могут быть на входящем в порты трафике. Благодаря меткам по одному кабелю можно передавать трафик сразу нескольких VLAN’ов, и устройство, принимающее трафик, будет понимать, к какому VLAN’у относится каждый кадр. 5.3. Теги 802.1Q До появления общепризнанного стандарта по организации виртуальных сетей IEEE 802.1Q каждый производитель сетевого оборудования использовал собственную технологию организации VLAN. Такой подход имел существенный недостаток: технологии одного производителя были несовместимы с технологиями других фирм. Поэтому при построении виртуальных сетей на базе нескольких коммутаторов необходимо было использовать только оборудование от одного производителя. По стандарту 802.1Q метка (тег) – это 4 байта, добавляемые в каждый кадр трафика (рис. 5.2). |