что такое виртуальная локальная сеть
Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco
Всем привет! И сегодня мы постараемся полностью раскрыть вопрос – что такое VLAN и как его настроить на CISCO. Постараюсь писать, как можно проще и с простыми примерами – для чайников. Для полного понимания я советую прочесть статью от начала и до конца. Вам не нужно иметь под рукой коммутатор от CISCO, чтобы понять принципы стандартной настройки – все можно понять «на лету», так как я буду использовать простой пример. Если у вас будут какие-то вопросы или дополнения, пишите в комментариях.
Начало
Проблема локальных сетей и нескольких подсетей в том, что появляется угроза утечки информации. Давайте посмотрим на пример трех сетей: дирекция, бухгалтерия и отдел кадров. Конечно, в крупных компаниях сети куда больше, но мы рассмотрим более ужатый пример.
Представим себе, что все из этих компьютеров имеют одинаковую первую (1) подсеть, то есть – PC1 имеет адрес 192.168.1.2; PC2 имеет – 192.168.1.3; PC3 имеет адрес 192.168.1.4 и т.д. То есть все они находятся в одной подсети.
Подключены они все к разным коммутаторам. Если кто не знает, то коммутатор при отсутствии таблицы коммутации (при первом запуске) – отправляет приемный пакет на все порты. То есть если PC1 отправит пакет данных на компьютер PC2, то произойдет следующее:
А почему же так происходит? А происходит все из-за того, что PC1 пока не знает MAC-адрес второго компа и отправляем специальный пакет по протоколу ARP, для так называемого «прозвона». Также отправляющий комп не знает адрес канального уровня – вспоминаем сетевую модель OSI.
И тут возникает две проблемы:
Как ни странно, но пример, который я привел был работоспособным почти в самом начале создания сетей, когда ещё интернет был слабым и юным. О проблеме знали все, и её постаралась решить компания Cisco, которая в своих лабораториях изобрела совершенно новый протокол ISL. После этого протокол Inter-Switch Link был прикручен к IEEE под кодовым названием 802.1q – именно это название вы и можете встречать в интернете или на коробке от коммутаторов.
Для начала взглянем на обычный «Ethernet-кадр», находящийся в своей привычной среде обитания:
А теперь взглянем на новый кадр 802.1q:
Что у нас в итоге получается – добавляется ещё один тег с нужной для нас информацией:
Теперь мы подошли к одному очень интересному понятию. Как вы уже поняли, данный кадр 802.1q помогает правильно отправлять пакеты данных. Но вопрос в том, зачем добавлять кадр к пакету, который уже идёт на конечное устройство пользователя? Правильно – незачем.
Именно поэтому в маршрутизаторах и коммутаторах есть два понятия:
Нетегированный трафик – это пакеты данных, которые идут без кадра 802.1q. Тегирование VLAN как раз и происходит по двум портам: Trunk и Access. Если вам пока ничего не понятно, то не переживайте, дальше я все покажу на примере.
Настройка VLAN на коммутаторе
Приведу пример настройки VLAN на коммутаторе от компании CISCO. По сути у них все настройки делаются примерно одинаково, поэтому вы можете использовать данную инструкцию и в своих целях. Поддержка VLAN должна быть на всех коммутаторах с канальным уровнем.
Для начала давайте посмотрим всю таблицу коммутации VLAN стандартной консольной командной:
Смотрим по столбцам:
Для примера я буду использовать модель Cisco 2960 24tt, но принцип настройки, который буду показывать далее – одинаковый для всех их аппаратов. Плюс вы поймете принцип VLAN сразу и на примере.
Далее назовём как-то нашего зверя:
Switch(config)#hostname SW1
SW1(config)#
Покажу настройку на примере нашей любимой картинки, которую я показывал в самом начале. Тут у нас есть:
Запомните примерно данные названия, чтобы было проще ориентироваться при вводе команд. Можете также иногда посматривать на эту картинку.
Теперь давайте подключим наши компьютеры, и заведем им отдельные VLAN. К первому порту мы подключим первый комп, а ко второму – второй. Для того, чтобы попасть в конфиг первого порта прописываем:
ПРИМЕЧАНИЕ! Просто запомните, что команда с надписью «interface» вводит вас в настройку данного объекта.
SW1(config)#interface fastEthernet 0/1
Так как наш порт будет направлен именно на комп, то тегирование не нужно, и мы переводим его в нужное состояние:
SW1(config-if)#switchport mode access
2-ой ВЛАН мы создали, осталось теперь привязать 1-ое устройство к нему:
SW1(config-if)#switchport access vlan 2
Теперь тоже самое проделайте и для второго порта. В самом конце надо будет привязать второй порт к тому же самому VLAN2 – мы же хотим, чтобы они находились в одной сети.
На будущее – чтобы не прописывать каждый порт таким образом, вы можете прописать диапазон портов вот так:
SW1(config)#interface range fastEthernet 0/1-2
SW1(config-if-range)#switchport mode access
SW1(config-if-range)#switchport access vlan 2
Итак, два компьютера теперь у вас настроены правильно и находятся в одной VLAN. Теперь нам надо подключить наш 1-ый коммутатор к центральному. Для этого мы будем использовать 24-ый порт. И конечно же нам надо перевести его в режим с тегированием:
SW1(config)#interface fastEthernet 0/24
SW1(config-if)#switchport mode trunk
Как бы вроде мы все сделали, но есть одна проблема: в коммутаторе нет правила, которое бы ограничивало поступление пакетов с других ВЛАН – то есть проблема с безопасностью остается. Нам нужно теперь прописать такое правило, которое бы разрешало поступление на наш 24 порт только пакеты для VLAN2:
SW1(config-if)#switchport trunk allowed vlan 2
На всякий случай проверяем таблицу маршрутизации:
Как видите наш второй VLAN теперь имеет только два доступных порта. Единственный минус данного вывода информации в том, что вы не можете посмотреть статус тегирования портов. Для этого есть отдельная команда:
show interfaces trunk
Вот тут мы видим наш 24 порт, который нам нужен для связи с центральным коммутатором. Ещё раз повторюсь, что статус тегирования (Trunk или Access) – обязательно нужно настраивать для внешних портов. В противном случае не будет смысла вообще в настройке VLAN.
Первый коммутатор мы настроили, теперь давайте настроим третий. В первую очередь нужно создать три ВЛАН для каждой из структур: дирекция, бухгалтерия и отдел кадров. VLAN 2 уже закрепился за дирекцией. Создаем VLAN для бухгалтерии:
CentrSW(config)#vlan 3
CentrSW(config-vlan)# name buhgalter
Теперь создаем внутреннюю сеть для отдела кадров:
CentrSW(config)#vlan 4
CentrSW(config-vlan)# name otdel-kadrov
Ну так как данный коммутатор будет иметь связь только с сетевыми устройствами, то мы будем использовать тегирования в статусе trunk. А использовать мы будем первые 3 порта.
CentrSW(config)#interface range fastEthernet 0/1-3
CentrSW(config-if-range)#switchport mode trunk
Вам не кажется, что мы что-то упустили? Наш центральный коммутатор по идее будет связующим звеном – ведь так?! Но мы забыли создать VLAN 2 для первого сегмента:
CentrSW(config)#vlan 2
CentrSW(config-vlan)# name Dir-ya
ПРИМЕЧАНИЕ! Дабы не запутаться обязательно называем ВЛАН как на первом коммутаторе.
А теперь останется настроить 2-ой и 3-ий коммутатор по аналогии с первым. Описывать это тут я не стану, так как делается все одинаково. Только не забудьте обозвать их – как «SW2» и «SW3». Далее нужно просто создать и прикрутить соответствующие VLAN: 3 и 4. Также не забудьте их обозвать теми же наименованиями, которые мы применили в центральном коммутаторе.
И тут мы подходим к следующей проблеме. VLAN мы создали и даже разделили на разные по портам. Вроде разделение есть, но давайте взглянем на IP адреса наших компов:
Да – все компы находятся в одной сети. Да, мы ограничили трафик на канальном уровне с помощью разбиения сегментов и портов на VLAN. Вообще мы могли просто бы разделить данную сеть на 3 подсети и трафик также бы был ограничен. Дело в том, что коммутатор не может разделять трафик между разными подсетями – это уже сетевой уровень модели OSI.
ПРИМЕЧАНИЕ! Если вы ещё путаетесь в этих понятиях, то советую прочесть статью про OSI – ссылку я оставил в самом начале статьи.
Все я это сделал в учебных целях и вообще нужно разделять сети и на канальном, и на сетевом уровне. Это можно сделать вручную на компьютерах. Но статья немного не об этом.
Теперь что будет происходить с отправлением данных? Если мы отправим пакет на PC2, то он дойдет до первого коммутатора. Далее коммутатор отправит его одновременно на PC2 и на центральный Switch. После этого центральный коммутатор отправит пакеты на другие SW (2 и 3). Там коммутаторы, у которых прописаны правила только для VLAN: 3 и 4 – просто отправят пакет в утиль. То есть данный пакет не дойдет до компов: 3, 4, 5 и 6.
Ситуация с переездом сотрудника
Давайте рассмотрим ситуацию, что в отдел бухгалтерии нужно будет посадить сотрудника из совершенно другого отдела (на время). Допустим Елена Павловна не может сидеть в отделе Дирекции летом, так как у нее сильно повышается давление, а там не кондиционера. Начальство решает переселить её на летнее время в бухгалтерию.
Итак, что мы будем делать?! В первую очередь мы подключим её компьютер к следующему третьему порту второго свича. Теперь возникла проблема в том, что на втором коммутаторе и слухом не слыхивали про 2-ой ВЛАН и его надо создать:
SW2(config)#vlan 2
SW2(config-vlan)#name Dir-ya
Теперь нужно 3-порт настроить и добавить его в VLAN2. И также не забываем прописать ему модель тегирования:
SW2(config)#interface fastEthernet 0/3
SW2(config-if)#switchport mode access
SW2(config-if)#switchport access vlan 2
Теперь нам нужно разрешить пропускать VLAN2 пакеты именно на внешнем порту. У второго свича (как и у всех) – это 24-ый порт. Внимательно пропишите команду:
SW2(config)#interface fastEthernet 0/24
SW2(config-if)#switchport trunk allowed vlan add 2
Теперь переходим к центральному коммутатору:
CentrSW(config)#interface fastEthernet 0/1
CentrSW(config-if)#switchport trunk allowed vlan 2
CentrSW(config)#interface fastEthernet 0/2
CentrSW(config-if)#switchport trunk allowed vlan 2,3
CentrSW(config)#interface fastEthernet 0/3
CentrSW(config-if)#switchport trunk allowed vlan 4
Заметьте, что для 2 внешнего порта мы разрешили использовать сразу два влана. Теперь при отправке пакета – он будет доходить до центрального коммутатора. Далее он будет отправлен на 2 свич, у которого уже прописано правило – разрешающее отправлять VLAN2 пакеты только на выделенный 3 порт – где как раз и сидит переселенный сотрудник: Елена Павловна.
Общение между собой
Теперь мы подошли к вопросу использования VLAN – как видите это полезная вещь, которая строго разделяет трафик на канальном уровне и позволяет отправлять пакеты только в нужную сторону. Таким образом организовывается работа больших организаций, где есть большое количество отделов, которые не должны видеть друг друга. Но одна из проблем у нас все же остается, а именно – проблема одной сети. Все наши компьютеры находятся в первой подсети, что неправильно, и нам надо их разбить.
Но для этих целей нам также понадобится маршрутизатор, чтобы объединить сеть также и на сетевом уровне. Для этого мы подключим маршрутизатор Cisco 2811.
В настройках нам также надо будет указать шлюзы, но они будут стандартные:
Маска будет везде одинаковая: 255.255.255.0 (/24).
Для чего вообще нужен маршрутизатор – он будет позволять общаться компьютерам, которые находятся в разных VLAN. Для этого будет использоваться адрес шлюза, у каждой подсети.
Настройка маршрутизатора
Заходим в настройки и обзываем его исходя из картинки:
Router(config)#hostname Gateway
Gateway(config)#
Так как маршрутизатор подключен к центральному коммутатору, то шлюзы у нас будут не физические, а виртуальные (сабинтерфейс), так как мы ведь не подключили компьютеры напрямую к маршрутизатору. Для этого надо на маршрутизаторе настроить три этих самых сабинтерфейса – ведь у нас 3 VLAN и 3 подсети:
Gateway(config)#interface fastEthernet 0/0.2
Gateway(config-if)#encapsulation dot1Q 2
Gateway(config-if)#ip address 192.168.1.1 255.255.255.0
Теперь создаем виртуальный шлюз для второй подсети. Обратите внимание, что для порта мы прописываем команду: «0/0.3». Хотя в прошлых коммутаторах мы явно указывали порт. Все это из-за того, что за шлюз будет отвечать, как раз вот этот маршрутизатор, который не подключен напрямую к устройствам.
Gateway(config)#interface fastEthernet 0/0.3
Gateway(config-if)#encapsulation dot1Q 3
Gateway(config-if)#ip address 192.168.2.1 255.255.255.0
Осталось создать шлюз для последней подсети:
Gateway(config)#interface fastEthernet 0/0.4
Gateway(config-if)#encapsulation dot1Q 4
Gateway(config-if)#ip address 192.168.3.1 255.255.255.0
Чуть не забыл сказать – маршрутизатор мы подключим к 24 порту центрального коммутатора. Теперь нам нужно разрешить отправлять пакеты всех вланов на маршрутизатор через 24 порт, к которому мы и подключились:
CentrSW(config)#interface fastEthernet 0/24
Не забываем указать «транковое» тегирование, ведь пакеты будут идти на сетевое устройство, а не на компьютер:
CentrSW(config-if)#switchport mode trunk
Все VLAN можно прописать просто через запятую:
CentrSW(config-if)#switchport trunk allowed vlan 2,3,4
Теперь, например, если отправить пакет данных из первого компьютера к пятому, произойдет следующее:
Именно так заполняется таблица маршрутизации. Такой долгий путь обычно начинается в самом начале. Впоследствии маршрутизатор помогает общаться всем компьютерам именно через канальный уровень.
Видео
Более детально про VLAN рассказывается в данном видео, оно достаточно долгое, но максимально информативное.
Прокладываем виртуальные сети
С тех пор как интернет ( вернее ARPAnet ) был маленькой американской сеткой утекло много киселя. Сейчас сеть большое небезопасное место, где защита своих данных является одним из приоритетных направлений. О том как же меньше бояться я и расскажу в этом маленьком опусе.
1. Предположим.
Мы имеем два чудных рабочих места, одно находится в офисе на работе, а другое дома. И у нас стоит задача как же удобно забирать файлы с работы домой и с дома на работу. Таскать на компакт диске? Неудобно. Носить на флешке? Замучаешься копировать каждый раз. А вдруг неизвестно, какие файлы понадобятся сегодня? Таскать все сразу? Не вариант. Тем более на дворе 21й век, интернет как никогда скоростной, а безлимитные тарифы есть почти в каждом городе ( ну если сейчас нет, то в обозримом будущем точно будут ). Так что же сделать? Объединить компьютеры в локальную сеть и спокойно копировать файлы, подключаться к удаленному рабочему столу и даже играть в игры ( ну мало ли, вдруг кому захочется ).
2. Что.
С помощью бесплатной программы OpenVPN мы объединим два наших компьютера (а может и больше) в единую виртуальную сеть. Все передаваемые данные будут надежно зашифрованы с помощью Blowfish с ключем до 448 бит ( взлом с текущими мощностями компьютеров просто нереален ).
OpenVPN лучше ставить вместе с GUI. Скачать все это чудо можно с оффициального сайта OpenVPN GUI.
3. Как.
Итак у нас есть два компьютера. Один из них имеет внешний IP-адрес ( ну скорее всего домашний, ибо в офисах чаще сидят за фаерволами), а другой скрыт за NAT’ом. Ясное дело, что к тому компьютеру, который скрыт за NAT’ом подключится будет проблематично, тем более если захочется скачать с него файлы. Потому сервером OpenVPN мы выберем домашний компьютер, а в качестве клиента будет выступать наш офисный ПК. Итак приступим.
4. Установка
Установка OpenVPN простая и не требует особых знаний. Next next next finish. Собственно настройка гораздо интереснее.
5. Техническое описание задачи
6. Сервер
OpenVPN по умолчанию устанавливается в C:\Program Files\OpenVPN. Запускаем консоль (cmd.exe и переходим в каталог C:\Program Files\OpenVPN\easy-rsa и выполняем там init-config.bat.
C:\Program Files\OpenVPN\easy-rsa>copy vars.bat.sample vars.bat
Скопировано файлов: 1.
C:\Program Files\OpenVPN\easy-rsa>copy openssl.cnf.sample openssl.cnf
Скопировано файлов: 1.
Теперь откроем конфигурационный файл vars.bat и приведем его к следующему виду:
@echo off
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY_CONFIG=openssl.cnf
set KEY_DIR=keys
set KEY_SIZE=2048
set KEY_COUNTRY=RU
set KEY_PROVINCE=MSK
set KEY_CITY=Moskow
set KEY_ORG=Kremlin
set KEY_EMAIL=none@net.com
Здесь:
KEY_DIR — каталог где будут храниться ключи;
KEY_SIZE — длина RSA-ключа используемого для подписи;
KEY_COUNTRY — код страны;
KEY_PROVINCE — код региона ( провинции, области и тд)
KEY_CITY — город;
KEY_ORG — организация;
KEY_EMAIL — адрес электронной почты;
Теперь для генерации необходимых ключей и сертификатов последовательно запустим команды:
vars.bat
clean-all.bat
build-ca.bat
build-dh.bat
build-key-server.bat homepc
В результате в консоли получится нечто вроде этого:
C:\Program Files\OpenVPN\easy-rsa>vars
C:\Program Files\OpenVPN\easy-rsa>clean-all.bat
Скопировано файлов: 1.
Скопировано файлов: 1.
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
7. Клиент.
СОДЕРЖАНИЕ
Использует
Без возможности VLAN пользователи распределяются по сетям на основе географического положения и ограничены физической топологией и расстоянием. VLAN могут логически группировать сети, чтобы отделить сетевое местоположение пользователей от их физического местоположения. Используя VLAN, можно контролировать шаблоны трафика и быстро реагировать на перемещения сотрудников или оборудования. Сети VLAN обеспечивают гибкость адаптации к изменениям сетевых требований и упрощают администрирование.
VLAN можно использовать для разделения локальной сети на несколько отдельных сегментов, например:
Общая инфраструктура, совместно используемая в магистралях VLAN, может обеспечить определенную степень безопасности с большой гибкостью при сравнительно низких затратах. Схемы качества обслуживания могут оптимизировать трафик по магистральным каналам в соответствии с требованиями реального времени (например, VoIP ) или с малой задержкой (например, SAN ). Тем не менее, VLAN как решение безопасности следует внедрять с большой осторожностью, так как они могут быть побеждены, если не будут реализованы тщательно.
Сетевые технологии с возможностями VLAN включают:
История
Напротив, хотя скорость существующей телефонной сети для отдельных подключений была ограничена до 56 кбит / с (менее одной сотой скорости Ethernet), общая пропускная способность этой сети оценивалась в 1 Тбит / с (в 100 000 раз больше, чем у Ethernet).
Соображения по конфигурации и дизайну
Базовый коммутатор, который не настроен для VLAN, имеет отключенную или постоянно включенную функцию VLAN с VLAN по умолчанию, которая содержит все порты на устройстве в качестве членов. VLAN по умолчанию обычно использует идентификатор VLAN 1. Каждое устройство, подключенное к одному из своих портов, может отправлять пакеты любому из других. Разделение портов по группам VLAN разделяет их трафик очень похоже на подключение каждой группы с использованием отдельного коммутатора для каждой группы.
Для удаленного управления коммутатором необходимо, чтобы административные функции были связаны с одной или несколькими настроенными VLAN.
В контексте виртуальных локальных сетей термин магистраль обозначает сетевой канал, по которому передаются несколько виртуальных локальных сетей, которые идентифицируются метками (или тегами ), вставленными в их пакеты. Такие магистрали должны проходить между помеченными портами устройств, поддерживающих VLAN, поэтому они часто являются ссылками « коммутатор-коммутатор» или «коммутатор- маршрутизатор», а не ссылками на хосты. (Обратите внимание, что термин «магистраль» также используется для того, что Cisco называет «каналами»: агрегация каналов или группирование портов ). Маршрутизатор (устройство уровня 3) служит магистралью для сетевого трафика, проходящего через разные VLAN. Тегирование используется только тогда, когда группа портов VLAN должна быть расширена на другое устройство. Поскольку связь между портами на двух разных коммутаторах осуществляется через порты восходящей связи каждого задействованного коммутатора, каждая VLAN, содержащая такие порты, также должна содержать порт восходящей связи каждого задействованного коммутатора, а трафик через эти порты должен быть помечен.
Протоколы и дизайн
IEEE 802.1Q
Согласно IEEE 802.1Q максимальное количество VLAN в данной сети Ethernet составляет 4094 (4096 значений, предоставленных 12-битным полем VID минус зарезервированные значения на каждом конце диапазона, 0 и 4095). Это не налагает такого же ограничения на количество IP-подсетей в такой сети, поскольку одна VLAN может содержать несколько IP-подсетей. IEEE 802.1ad увеличивает количество поддерживаемых VLAN, добавляя поддержку нескольких вложенных тегов VLAN. IEEE 802.1aq (мост по кратчайшему пути) расширяет ограничение VLAN до 16 миллионов. Оба улучшения были включены в стандарт IEEE 802.1Q.
Связь между коммутаторами Cisco
Протокол транкинга Cisco VLAN
Протокол регистрации нескольких VLAN
Членство
Членство в VLAN может быть установлено статически или динамически.
Статические VLAN также называются VLAN на основе портов. Статические назначения VLAN создаются путем назначения портов VLAN. Когда устройство входит в сеть, оно автоматически принимает VLAN порта. Если пользователь меняет порты и ему требуется доступ к той же VLAN, сетевой администратор должен вручную назначить порт для VLAN для нового соединения.
Динамические сети VLAN создаются с помощью программного обеспечения или протокола. С помощью сервера политики управления VLAN (VMPS) администратор может динамически назначать порты коммутатора виртуальным локальным сетям на основе такой информации, как исходный MAC-адрес устройства, подключенного к порту, или имя пользователя, используемое для входа на это устройство. Когда устройство входит в сеть, коммутатор запрашивает в базе данных принадлежность к VLAN порта, к которому подключено устройство. Методы протокола включают протокол регистрации нескольких VLAN (MVRP) и несколько устаревший протокол регистрации GARP VLAN (GVRP).
Сети VLAN на основе протоколов
В коммутаторе, который поддерживает VLAN на основе протоколов, трафик может обрабатываться на основе его протокола. По сути, это разделяет или перенаправляет трафик из порта в зависимости от конкретного протокола этого трафика; трафик любого другого протокола не пересылается на порт. Это позволяет, например, автоматически разделять IP- и IPX-трафик в сети.