Анализ программных решений для создания Интернет-шлюзов
Анализ виртуальных локальных сетей VLAN
Всем коммутируемым сетям присуще одно ограничение. Поскольку коммутатор является устройством канального уровня, он не может знать, куда направлять широковещательные пакеты протоколов сетевого уровня. Хотя трафик с конкретными адресами (соединения "точка-точка") изолирован парой портов, широковещательные пакеты передаются во всю сеть (на каждый порт). Широковещательные пакеты - это пакеты, передаваемые на все узлы сети. Они необходимы для работы многих сетевых протоколов, таких как ARP, BOOTP или DHCP, с их помощью рабочая станция оповещает другие компьютеры о своем появлении в сети, так же широковещательные пакеты могут возникать из-за некорректно работающего сетевого адаптера. Широковещательные пакеты могут привести к насыщению полосы пропускания, особенно в крупных сетях. Для того, чтобы этого не происходило важно ограничить область распространения широковещательного трафика (эта область называется широковещательным доменом) - организовать небольшие широковещательные домены или виртуальные ЛВС (Virtual LAN, VLAN).
Виртуальной сетью называется логическая группа узлов сети, трафик которой, в том числе и широковещательный, на канальном уровне полностью изолирован от других узлов сети. Это означает, что передача кадров между разными виртуальными сетями на основании MAC-адреса невозможна, независимо от типа адреса - уникального, группового или широковещательного. В то же время, внутри виртуальной сети кадры передаются по технологии коммутации, то есть только на тот порт, который связан с адресом назначения кадра. Таким образом, с помощью виртуальных сетей решается проблема распространения широковещательных пакетов и вызываемых ими следствий, которые могут развиться в широковещательные штормы и существенно снизить производительность сети обладают следующими преимуществами:
• Гибкость внедрения VLAN являются эффективным способом группировки сетевых пользователей в виртуальные рабочие группы, несмотря на их физическое размещение в сети;
• VLAN обеспечивают возможность контроля широковещательных сообщений, что увеличивает полосу пропускания, доступную для пользователя;
• VLAN позволяют усилить безопасность сети, определив с помощью фильтров, настроенных на коммутаторе или маршрутизаторе, политику взаимодействия пользователей из разных виртуальных сетей.
В коммутаторах могут использоваться три типа VLAN:
• VLAN на базе портов;
• VLAN на базе MAC-адресов;
• VLAN на основе меток в дополнительном поле кадра - стандарт IEEE 802.1Q.
Организация VLAN на базе портов и MAC адресов, является устаревшей и не рекомендуется для применения в современных реализациях виртуальных сетей.
Конфигурирование сети
Конфигурирование сети в системе Linux выполняется с помощью команды:
ifconfig ethх 192.168.1.х netmask 255.255.255.0 up,
где, ethx - имя сетевого интерфейса.
Предварительно, мы должны узнать список установленных сетевых плат выполнив команду ifconfig.
Эта команда выведет на экран список установленных сетевых карт в системе [13].
eth0 - интерфейс на котором будут настраиваться субинтерфейсы vlan100 и vlan101.
eth1 - интерфейс на котором будут настраиваться субинтерфейсы vlan2-43
Присваивать физическим интерфейсам eth0 и eth1 IP адреса нет необходимости, IP адреса нужны будут только VLAN интерфейсам, так как вся маршрутизация будет проходить именно на них.
Прежде чем приступать к настройке vlan, для большей стабильности скачиваем и устанавливаем последний драйвер для карт INTEL, установка драйверов в Linux отличается от установки в системах Windows. Драйвера необходимо скомпилировать из исходников, используя компилятор C++.
Скачиваем архив с драйвером и выполним автоматическую компиляцию:-tb e1000e-1.10.6.tar.gz
Данная команда распакует архив, скомпилирует драйвер и создаст установочный пакет e1000e-1.10.6-1.x86_64.rpm удобный для установки. Чтобы установить драйвер из установочного пакета выполним команду:
rpm -Uvh e1000e-1.10.6-1.x86_64.rpm
После этого можно приступать к настройке VLAN.
Создание VLAN
Для работы VLAN необходимо, чтобы операционная система его поддерживала, для этого требуется загрузить модуль 8021q в ядро командой:
modprobe 8021q
После настройки Linux для каждого VLAN 'а будет создано отдельное устройство (субинтерфейс). Нужно выбрать формат обозначения устройств из четырех имеющихся вариантов. Формат устанавливается с помощью команды:
vconfig set_name_type [name-type]
где, name-type может принимать следующие значения:_PLUS_VID имя устройства будет выглядеть так: vlan0002._PLUS_VID_NO_PAD имя устройства будет выглядеть так: vlan2._PLUS_VID имя устройства будет выглядеть так: eth0.0002._PLUS_VID_NO_PAD имя устройства будет выглядеть так: eth0.2
Во избежание несовместимости выберем 2 вариант:
vconfig set_name_type VLAN_PLUS_VID_NO_PAD.
Вернемся теперь к настройке OC.
Укажем VLAN'ы, которые будут использоваться на этом интерфейсе. Каждый VLAN добавим на нужный интерфейс, так как номер 1 используется в VLAN по умолчанию и используется для административного управления оборудованием.
Создадим субинтерфейсы провайдеров vlan100 и vlan101 на интерфейсе eth0:
vconfig add eth0 100add eth0 101
Что бы интерфейсы не пропали после перезагрузки, создадим 2 конфигурационных файла в папке /etc/sysconfig/network-scripts с именами ifcfg-vlan100 и ifcfg-vlan101 со следующим текстом.
VLAN=yes_NAME_TYPE=VLAN_PLUS_VID_NO_PAD=eth0="vlan100" (“vlan101”)=none=vlan100 (“vlan101”)=212.152.63.165 (212.152.63.5)=255.255.255.240 (255.255.255.0)=212.152.63.161 (212.152.63.1)INIT=no=no=yes
Обязательные параметры:=yes - иначе интерфейс не создастся после перезагрузки
Два последних параметра отвечают за имя субинтерфейса vlan и ассоциацией с физическим интерфейсом eth0
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD=eth0
Для создания VLAN интерфейсов арендаторов, необходимо создать аналогичные файлы конфигурации на интерфейсе eth1 с собственными настройками.
Пример конфигурации ifcfg-vlan2 субинтерфейса vlan2:
VLAN=yes_NAME_TYPE=VLAN_PLUS_VID_NO_PAD=eth1="vlan2"=none=vlan2=Ethernet=192.168.2.1=yesINIT=no=no=24
Конфигурация TraffPro
Программа конфигурируется путём вноса изменений в файл /etc/traffpro/traffpro.cfg, каждый параметр отвечает за настройку билинговой системы. Файл создасться во время установки из параметров которые нас попросят ввести.
Пример файла конфигурации:_url=localhost_port=3306 Порт подключения к MySQL_usr=root Имя пользователя базы данных MySql_passwd= Пароль пользователя db_usr для доступа к БД_name=traffpro Имя базы данных_eth_addr=true Включение авторизации по MAC адресам
ports_detail=true Детализация по портам (true/false):
ss_enabled=true Включение защиты сервера
url_detail=true Детализация www посещений.
Если значение true, то установка кеширующего DNS сервера, обязательна! Этот параметр включает возможность просмотра посещений пользователей, без учета количества скачанного с каждого ресурса.
Настройка закончена, через WEB консоль добавляем группы по виртуальным сетям, определяем ресурсы доступные группе, временные диапазоны отключения интернета, приоритеты скорости для групп, добавляем пользователей в группы, прописываем IP адреса интернет провайдеров. И перезагружаем сервер.
Анализ программных решений для создания Интернет-шлюзов
Интернет-шлюз, как правило, это программное обеспечение, призванное организовать передачу трафика между разными сетями. Программа является рабочим инструментом системного администратора, позволяя ему контролировать трафик и действия сотрудников. Обычно Интернет-шлюз позволяет распределять доступ среди пользователей, вести учёт трафика, ограничивать доступ отдельным пользователям или группам пользователей к ресурсам в Интернет. Интернет-шлюз может содержать в себе прокси-сервер, межсетевой экран, почтовый сервер, шейпер, антивирус и другие сетевые утилиты. Интернет-шлюз может работать как на одном из компьютеров сети, так и на отдельном сервере. Шлюз устанавливается как программное обеспечение на машину с операционной системой, либо на пустой компьютер с развертыванием встроенной операционной системы.
Начнем работу с самого начала - с выбора операционной системы. Есть два основных варианта: ОС на ядре LINUX и ОС WINDOWS. Следует выбрать WINDOWS, если необходима легкость конфигурирования, разнообразие софта, привычная идеология системы.
К недостаткам же сервера на ОС Windows можно отнести повышенные требования к ресурсам, подверженность DoS-атакам, довольно малую стабильность в сети. Причем, время от времени находятся уязвимости, приводящие к полному выходу из строя сервера - от одной найденной уязвимости в WINDOWS SERVER 2003 серверы лежали более чем полугода.
Про LINUX сервер хочется сказать следующее: настройка, конечно, сложнее WINDOWS, графический интерфейс не имеет такого развития и такой мощи, как в WINDOWS, да и не нужен он серверу, знания ОС и сетей у администратора должны быть довольно глубокими. К плюсам относят то, что настроенный и отточенный сервер будет служить верой и правдой многие месяцы. Очень многие задачи администратора в LINUX автоматизированы на уровне отдельных демонов, изучив которые, можно избавиться от рутинной работы.
Основные задачи, поставленные перед сервером-шлюзом, можно сформулировать так: давать пользователям локальной сети доступ в интернет, производить учет трафика каждого пользователя, защищать локальную сеть от атак извне.
Разделение и учет трафика можно организовать двумя основными путями: настройкой маршрутизации в связке с биллинговой системой или использованием прокси-сервера. Обе схемы равноправны и применяются достаточно широко. Сначала рассмотрим наиболее простую в реализации: использование прокси-сервера. Общий принцип такой: каждый пользователь ЛВС прописывает в браузере IP и порт прокси-сервера, после чего все запросы браузер отправляет на определенный порт LINUX сервера. Где программа-демон, слушающая этот порт, смотрит на IP отправителя и на конечную цель пакета и решает, что делать: для локальных запросов обработать сразу, а для запросов во внешние сети сначала посмотреть на внутренний кэш и только потом, не найдя там необходимых файлов, отправить запрос далее в интернет. Если же запрашиваемая страница есть в кэше прокси, она будет просто извлечена оттуда и отправлена пользователю.
Плюсы такой организации шлюза: легкость настройки, управления, бесплатность (прокси-сервер есть в любом дистрибутиве LINUX).
Минусы часто заставляют переходить на более высокий уровень, применяя полноценную биллинговую систему. Дело в том, что у прокси есть огромные ограничения. Основное это то, что поддерживаются только НТТР и FTP. Прокси-сервер заметно замедляет работу сетевого подключения в целом, ведь перед отправкой запроса в глобальную сеть, пакет подвергается анализу, а если таких пакетов очень много, сервер может задуматься надолго.
1.2 АНАЛИЗ КОММУТАЦИОННЫХ УСТРОЙСТВ СЕТИ
Устройства канального уровня, которые позволяют соединить несколько физических сегментов локальной сети в одну большую сеть. Коммутация локальных сетей обеспечивает взаимодействие сетевых устройств по выделенной линии без возникновения коллизий, с параллельной передачей нескольких потоков данных.
Принцип работы коммутатора
Коммутаторы локальных сетей обрабатывают кадры на основе алгоритма прозрачного моста IEEE 802.1, который применяется в основном в сетях Ethernet. При включении питания коммутатор начинает изучать расположение рабочих станций всех присоединенных к нему сетей путем анализа МАС-адресов источников входящих кадров. Например, если на порт 1 коммутатора поступает кадр от узла 1, то он запоминает номер порта, на который этот кадр пришел и добавляет эту информацию в таблицу коммутации (рисунок 1.1). Адреса изучаются динамически. Это означает, что, как только будет прочитан новый адрес, то он сразу будет занесен в контентно-адресуемую память. Каждый раз, при занесении адреса в таблицу коммутации, ему присваивается временной штамп. Это позволяет хранить адреса в таблице в течение определенного времени. Каждый раз, когда идет обращение по этому адресу, он получает новый временной штамп. Адреса, по которым не обращались долгое время, из таблицы удаляются.
Рисунок 1.1 Построение таблицы коммутации.
Коммутатор использует таблицу коммутации для пересылки трафика. Когда на один из его портов поступает пакет данных, он извлекает из него информацию о МАС-адресе приемника и ищет этот МАС-адрес в своей таблице коммутации как показано на рисунке 1.1. Если в таблице есть запись, ассоциирующая МАС-адрес приемника с одним из портов коммутатора, за исключением того, на который поступил кадр, то кадр пересылается через этот порт. Если такой ассоциации нет, кадр передается через все порты, за исключением того, на который он поступил. Это называется лавинным распространением. Широковещательная и многоадресная рассылка выполняется также путем лавинного распространения. С этим связана одна из проблем, ограничивающая применение коммутаторов. Наличие коммутаторов в сети не препятствует распространению широковещательных кадров (broadcast) по всем сегментам сети, сохраняя ее прозрачность. В случае если в результате каких-либо программных или аппаратных сбоев протокол верхнего уровня или сам сетевой адаптер начнет работать не правильно, и будет постоянно генерировать широковещательные кадры, коммутатор в этом случае будет передавать кадры во все сегменты, затапливая сеть ошибочным трафиком. Такая ситуация называется широковещательным штормом. Коммутаторы надежно изолируют межсегментный трафик, уменьшая, таким образом трафик отдельных сегментов. Этот процесс называется фильтрацией и выполняется в случаях, когда МАС-адреса источника и приемника принадлежат одному сегменту. Обычно фильтрация повышает скорость отклика сети, ощущаемую пользователем.
Коммутаторы локальных сетей поддерживают два режима работы: полудуплексный режим и дуплексный режим.
Полудуплексный режим - это режим, при котором, только одно устройство может передавать данные в любой момент времени в одном домене коллизий.
Доменом коллизий (collision domain) называется часть сети Ethernet, все узлы которой распознают коллизию независимо от того, в какой части сети эта коллизия возникла.
Дуплексный режим - это режим работы, который обеспечивает одновременную двухстороннюю передачу данных между станцией- отправителем и станцией-получателем на МАС - подуровне. При работе в дуплексном режиме, между сетевыми устройствами повышается количество передаваемой информации. Это связано с тем, что дуплексная передача не вызывает в среде передачи коллизий, не требует составления расписания повторных передач и добавления битов расширения в конец коротких кадров. В результате не только увеличивается время, доступное для передачи данных, но и удваивается полезная полоса пропускания канала, поскольку каждый канал обеспечивает полноскоростную одновременную двустороннюю передачу
Дуплексный режим работы требует наличия такой дополнительной функции, как управление потоком. Она позволяет принимающему узлу рисунок 1.2 (например, порту сетевого коммутатора) в случае переполнения дать узлу - источнику команду (например, файловому серверу) приостановить передачу кадров на некоторый короткий промежуток времени.
Рисунок 1.2 Последовательность управления потоком IEEE 802.3.
Управление осуществляется между МАС-уровнями с помощью кадра-паузы, который автоматически формируется принимающим МАС уровнем. Если переполнение будет ликвидировано до истечения периода ожидания, то для того, чтобы восстановить передачу, отправляется второй кадр-пауза с нулевым значением времени ожидания.
Дуплексный режим работы и сопутствующее ему управление потоком являются дополнительными режимами для всех МАС-уровней Ethernet независимо от скорости передачи. Кадры-паузы идентифицируются как управляющие МАС-кадры по индивидуальным (зарезервированным) значениям поля длины/типа. Им также присваивается зарезервированное значение адреса приемника, чтобы исключить возможность передачи входящего кадра-паузы протоколам верхних уровней или на другие порты коммутатора.
Методы коммутации
В коммутаторах локальных сетей могут быть реализованы различные методы передачи кадров.
Коммутация с промежуточным хранением (store-and-forward) -коммутатор копирует весь принимаемый кадр в буфер и производит его проверку на наличие ошибок. Если кадр содержит ошибки (не совпадает контрольная сумма, или кадр меньше 64 байт или больше 1518 байт), то он отбрасывается. Если кадр не содержит ошибок, то коммутатор находит адрес приемника в своей таблице коммутации и определяет исходящий интерфейс. Затем, если не определены никакие фильтры, он передает этот кадр приемнику. Этот способ передачи связан с задержками - чем больше размер кадра, тем больше времени требуется на его прием и проверку на наличие ошибок.
Коммутация без буферизации (cut-through) - коммутатор локальной сети копирует во внутренние буферы только адрес приемника (первые 6 байт после префикса) и сразу начинает передавать кадр, не дожидаясь его полного приема. Это режим уменьшает задержку, но проверка на ошибки в нем не выполняется. Существует две формы коммутации без буферизации:
Коммутация с быстрой передачей (fast-forward switching) - эта форма коммутации предлагает низкую задержку за счет того, что кадр начинает передаваться немедленно, как только будет прочитан адрес назначения. Передаваемый кадр может содержать ошибки. В этом случае сетевой адаптер, которому предназначен этот кадр, отбросит его, что вызовет необходимость повторной передачи этого кадра.
Коммутация с исключением фрагментов (fragment-free switching) - коммутатор фильтрует коллизионные кадры, перед их передачей. В правильно работающей сети, коллизия может произойти во время передачи первых 64 байт. Поэтому, все кадры, с длиной больше 64 байт считаются правильными. Этот метод коммутации ждет, пока полученный кадр не будет проверен на предмет коллизии, и только после этого, начнет его передачу. Такой метод коммутации уменьшает количество пакетов передаваемых с ошибками.
Для использования в офисных целях, как правило применяются коммутаторы с коммутацией store-and-forward.
Классификация коммутаторов
Коммутаторы уровня 2 анализируют входящие кадры, принимают решение об их дальнейшей передаче и передают их пунктам назначения на основе МАС - адресов канального уровня модели OSI. Основное преимущество коммутаторов уровня 2 - прозрачность для протоколов верхнего уровня. Поскольку коммутатор функционирует на 2-м уровне, ему нет необходимости анализировать информацию верхних уровней модели OSI.
Коммутация 2-го уровня - аппаратная. Она обладает высокой производительностью, поскольку пакет данных не претерпевает изменений. Передача кадра в коммутаторе может осуществляться специализированным контроллером, называемым Application-Specific Integrated Circuits (ASIC). Эта технология, разработанная для коммутаторов, позволяет обеспечивать высокие скорости коммутации с минимальными задержками [19].
Существуют 2 основные причины использования коммутаторов 2-го уровня - сегментация сети и объединение рабочих групп. Высокая производительность коммутаторов позволяет разработчикам сетей значительно уменьшить количество узлов в физическом сегменте. Деление крупной сети на логические сегменты повышает производительность сети (засчет уменьшения объема передаваемых данных в отдельных сегментах), а также гибкость построения сети, увеличивая степень защиты данных, и облегчает управление сетью.
Несмотря на преимущества коммутации 2-го уровня, она все же имеет некоторые ограничения. Наличие коммутаторов в сети не препятствует распространению широковещательных кадров (broadcast) по всем сегментам сети, сохраняя ее прозрачность. Таким образом, очевидно, что для повышения производительности сети необходима функциональность 3-го уровня OSI модели.
Коммутатор уровня 3 принимает решение о коммутации на основании бóльшего количества информации, чем просто МАС-адрес. Коммутаторы 3-го уровня осуществляют коммутацию и фильтрацию на основе адресов канального (уровень 2) и сетевого (уровень 3) уровней OSI модели [19]. Такие коммутаторы динамически решают, коммутировать (уровень 2) или маршрутизировать (уровень 3) входящий трафик. Коммутаторы 3 уровня выполняет коммутацию в пределах рабочей группы и маршрутизацию между рабочими группами.
Коммутаторы 3-го уровня функционально практически ничем не отличаются от традиционных маршрутизаторов и выполняют те же функции:
• определение оптимальных путей передачи данных на основе логических адресов (адресов сетевого уровня, традиционно IP-адресов)
• управление широковещательным и многоадресным трафиком
• фильтрация трафика на основе информации 3-го уровня
• IP- фрагментация.
Основное отличие между маршрутизаторами и коммутаторами 3-го уровня заключается в том, что в маршрутизаторах общего назначения принятие решения о пересылке пакетов обычно выполняется программным образом, а в коммутаторах обрабатывается специализированными контроллерами ASIC. Это позволяет коммутаторам выполнять маршрутизацию пакетов на скорости канала связи.