Vlan что это для чайников
Что такое 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 рассказывается в данном видео, оно достаточно долгое, но максимально информативное.
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
VLAN для начинающих. Общие вопросы
Виртуализацией сегодня уже никого не удивить. Эта технология прочно вошла в нашу жизнь и помогает более эффективно использовать имеющиеся ресурсы, а также обеспечивает достаточную гибкость в изменении существующей конфигурации, позволяя перераспределять ресурсы буквально налету. Не обошла виртуализация и локальные сети. Технология VLAN (Virtual Local Area Network) позволяет создавать и гибко конфигурировать виртуальные сети поверх физической. Это позволяет реализовывать достаточно сложные сетевые конфигурации без покупки дополнительного оборудования и прокладки дополнительных кабелей.
Прежде чем продолжить сделаем краткое отступление о работе локальных сетей. В данном контексте мы будем говорить об Ethernet-сетях описанных стандартом IEEE 802.3, куда входят всем привычные проводные сети на основе витой пары. Основой такой сети является коммутатор (свич, switch), который работает на втором уровне сетевой модели OSI (L2).
Коммутатор анализирует заголовки каждого входящего кадра и заносит соответствие MAC-адреса источника в специальную MAC-таблицу, после чего кадр, адресованный этому узлу, будет направляться сразу на определенный порт, если МАС-адрес получателя неизвестен, то кадр отправляется на все порты устройства. После получения ответа коммутатор привяжет MAC-адрес к порту и будет отправлять кадры только через него.
Как мы уже говорили выше, к широковещанию прибегает сам коммутатор, когда получает кадр MAC-адрес которого отсутствует в MAC-таблице, а также узлы сети, отправляя кадры на адрес FF:FF:FF:FF:FF:FF, такие кадры будут доставлены всем узлам сети в широковещательном сегменте.
А теперь вернемся немного назад, к доменам коллизий и вспомним о том, что в нем может передаваться только один кадр одновременно. Появление широковещательных кадров снижает производительность сети, так как они доставляются и тем, кому надо и тем, кому не надо. Делая невозможным в это время передачу целевой информации. Кроме того, записи в MAC-таблице имеют определенное время жизни, по окончании которого они удаляются, что снова приводит к необходимости рассылки кадра на все порты устройства.
Чем больше в сети узлов, тем острее стоит проблема широковещания, поэтому широковещательные домены крупных сетей принято разделять. Это уменьшает количество паразитного трафика и увеличивает производительность, а также повышает безопасность, так как ограничивает передачу кадров только своим широковещательным доменом.
Как это можно сделать наиболее простым образом? Установить вместо одно коммутатора два и подключить каждый сегмент к своему коммутатору. Но это требует покупки нового оборудования и, возможно, прокладки новых кабельных сетей, поэтому нам на помощь приходит технология VLAN.
Давайте рассмотрим, как работает коммутатор с виртуальными сетями. В нашем примере мы возьмем условный 8-портовый коммутатор и настроим на нем три порта на работу с одним VLAN, а еще три порта с другим.
Каждый VLAN обозначается собственным номером, который является идентификатором виртуально сети. Порты, которые не настроены ни для какого VLAN считаются принадлежащими Native VLAN, по умолчанию он обычно имеет номер 1 (может отличаться у разных производителей), поэтому не следует использовать этот номер для собственных сетей. Порты, настроенные нами для работы с VLAN, образуют как-бы два отдельных виртуальных коммутатора, передавая кадры только между собой. Каким образом это достигается?
В порт, принадлежащий определенному VLAN, могут быть отправлены только пакеты с тегом, принадлежащим этому VLAN, остальные будут отброшены. Фактически мы только что разделили единый широковещательный домен на несколько меньших и трафик из одного VLAN никогда не попадет в другой, даже если эти подсети будут использовать один диапазон IP. Для конечных узлов сети такой коммутатор нечем ни отличается от обычного. Вся обработка виртуальных сетей происходит внутри.
Такие порты коммутатора называются портами доступа или нетегированными портами (access port, untagged). Обычно они используются для подключения конечных узлов сети, которые не должны ничего знать об иных VLAN и работать в собственном сегменте.
А теперь рассмотрим другую картину, у нас есть два коммутатора, каждый из которых должен работать с обоими VLAN, при этом соединены они единственным кабелем и проложить дополнительный кабель невозможно. В этом случае мы можем настроить один или несколько портов на передачу тегированного трафика, при этом можно передавать как трафик любых VLAN, так и только определенных. Такой порт называется магистральным (тегированным) или транком (trunk port, tagged).
Магистральные порты используются для соединения сетевого оборудования между собой, к конечным узлам сети тегированный трафик обычно не доставляется. Но это не является догмой, в ряде случаев тегированный трафик удобнее доставить именно конечному узлу, скажем, гипервизору, если он содержит виртуальные машины, принадлежащие разным узлам сети.
Так как кадр 802.1Q отличается от обычного Ehternet-кадра, то работать с ним могут только устройства с поддержкой данного протокола. Если на пути тегированного трафика попадется обычный коммутатор, то такие кадры будут им отброшены. В случае доставки 802.1Q кадров конечному узлу сети такая поддержка потребуется от сетевой карты устройства. Если на магистральный порт приходит нетегированный трафик, то ему обычно назначается Native VLAN.
Как работает эта схема? Допустим ПК из синей сети (VLAN ID 40), хочет обратиться к другому узлу синей сети. IP-адрес адресата ему известен, но для того, чтобы отправить кадр нужно знать физический адрес устройства. Для этого ПК источник делает широковещательный ARP-запрос, передавая в нем нужный ему IP-адрес, в ответ на него обладатель этого IP сообщит ему собственный MAC-адрес.
Все кадры, попадающие с порта доступа в коммутатор, получают тег с VLAN ID 40 и могут покинуть коммутатор только через порты, принадлежащие этому VLAN или транк. Таким образом любые широковещательные запросы не уйдут дальше своего VLAN. Получив ответ узел сети формирует кадр и отправляет его адресату. Далее в дело снова вступают коммутаторы, сверившись с MAC-таблицей они отправляют кадр в один из портов, который будет либо принадлежать своему VLAN, либо будет являться магистральным. В любом случае кадр будет доставлен по назначению без использования маршрутизатора, только через коммутаторы.
Совсем иное дело, если узел одного из VLAN хочет получить доступ к узлу другого VLAN. В нашем случае узел из красной сети (VLAN ID 30) хочет получить доступ к узлу синей сети (VLAN ID 40). Узел источник знает IP-адрес адресата и также знает, что этот адрес не принадлежит его сети. Поэтому он формирует IP-пакет на адрес основного шлюза сети (роутера), помещает его в Ethernet-кадр и отправляет на порт коммутатора. Коммутатор добавляет к кадру тег с VLAN ID 30 и доставляет его роутеру.
Роутер получает данный кадр, извлекает из него IP-пакет и анализирует заголовки. Обнаружив адрес назначения, он сверяется с таблицей маршрутизации и принимает решение куда отправить данный пакет дальше. После чего формируется новый Ethernet-кадр, который получает тег с новым VLAN ID сети-получателя в него помещается IP-пакет, и он отправляется по назначению.
Таким образом любой трафик внутри VLAN доставляется только с помощью коммутаторов, а трафик между VLAN всегда проходит через маршрутизатор, даже если узлы находятся в соседних физических портах коммутатора.
Говоря о межвлановой маршрутизации нельзя обойти вниманием такие устройства как L3 коммутаторы. Это устройства уровня L2 c некоторыми функциями L3, но, в отличие от маршрутизаторов, данные функции существенно ограничены и реализованы аппаратно. Этим достигается более высокое быстродействие, но пропадает гибкость применения. Как правило L3 коммутаторы предлагают только функции маршрутизации и не поддерживают технологии для выхода во внешнюю сеть (NAT) и не имеют брандмауэра. Но они позволяют быстро и эффективно осуществлять маршрутизацию между внутренними сегментами сети, в том числе и между VLAN.
Маршрутизаторы предлагают гораздо большее число функций, но многие из них реализуются программно и поэтому данный тип устройств имеет меньшую производительность, но гораздо более высокую гибкость применения и сетевые возможности.
При этом нельзя сказать, что какое-то из устройств хуже, каждое из них хорошо на своем месте. Если мы говорим о маршрутизации между внутренними сетями, в том числе и о межвлановой маршрутизации, то здесь предпочтительно использовать L3 коммутаторы с их высокой производительностью, а когда требуется выход во внешнюю сеть, то здесь нам потребуется именно маршрутизатор, с широкими сетевыми возможностями.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал: