Всем привет! И сегодня мы постараемся полностью раскрыть вопрос – что такое VLAN и как его настроить на CISCO. Постараюсь писать, как можно проще и с простыми примерами – для чайников. Для полного понимания я советую прочесть статью от начала и до конца. Вам не нужно иметь под рукой коммутатор от CISCO, чтобы понять принципы стандартной настройки – все можно понять «на лету», так как я буду использовать простой пример. Если у вас будут какие-то вопросы или дополнения, пишите в комментариях.
Начало
Проблема локальных сетей и нескольких подсетей в том, что появляется угроза утечки информации. Давайте посмотрим на пример трех сетей: дирекция, бухгалтерия и отдел кадров. Конечно, в крупных компаниях сети куда больше, но мы рассмотрим более ужатый пример.
Представим себе, что все из этих компьютеров имеют одинаковую первую (1) подсеть, то есть – PC1 имеет адрес 192.168.1.2; PC2 имеет – 192.168.1.3; PC3 имеет адрес 192.168.1.4 и т.д. То есть все они находятся в одной подсети.
Подключены они все к разным коммутаторам. Если кто не знает, то коммутатор при отсутствии таблицы коммутации (при первом запуске) – отправляет приемный пакет на все порты. То есть если PC1 отправит пакет данных на компьютер PC2, то произойдет следующее:
- Пакет дойдет до Switch2, и он отправит его на PC2 и на центральный Switch
- Далее пакет дойдет до центрального Switch-а. Но Switch1 отправит пакеты на два других коммутатора: 3 и 4.
- Те в свою очередь отправят пакеты на все остальные PC: 3, 4, 5 и 6.
Если вы подзабыли, что такое коммутатор, то идем читать статейку тут.
А почему же так происходит? А происходит все из-за того, что PC1 пока не знает MAC-адрес второго компа и отправляем специальный пакет по протоколу ARP, для так называемого «прозвона». Также отправляющий комп не знает адрес канального уровня – вспоминаем сетевую модель OSI.
И тут возникает две проблемы:
- Безопасность – трафик могут просто перехватить злоумышленники. В целом это можно сделать стандартными программами перехватчиками.
- Ненужный трафик – когда сеть небольшая, это не так заметно. Но представьте, что у вас сеть состоит из тысячи компьютеров. Все может привести к забитости канала и потери пакетов.
Как ни странно, но пример, который я привел был работоспособным почти в самом начале создания сетей, когда ещё интернет был слабым и юным. О проблеме знали все, и её постаралась решить компания Cisco, которая в своих лабораториях изобрела совершенно новый протокол ISL. После этого протокол Inter-Switch Link был прикручен к IEEE под кодовым названием 802.1q – именно это название вы и можете встречать в интернете или на коробке от коммутаторов.
Для начала взглянем на обычный «Ethernet-кадр», находящийся в своей привычной среде обитания:
А теперь взглянем на новый кадр 802.1q:
Что у нас в итоге получается – добавляется ещё один тег с нужной для нас информацией:
- TPID – всегда будет состоять из 2 байт и обычно равен 0x8100. В переводе с английского «Tag Protocol ID» – обозначает «Идентификатор тегированного протокола».
- PCP – в нем обычно записывается приоритет того или иного трафика. Чем приоритетнее трафик, тем больше шансов, что коммутатор обработает его первым. Полезная вещь в крупных сетях. Три буквы расшифровываются – как «Priority Code Point», а переводятся как – приоритет или значение приоритета
- CFI – может иметь только два значения: 0 и 1, – так как данное поле имеет размер в 1 бит.
- VID – определяет в каком VLAN находится выделенный кадр. Обычно состоит из 12 бит. Расшифровывается как VLAN ID.
Теперь мы подошли к одному очень интересному понятию. Как вы уже поняли, данный кадр 802.1q помогает правильно отправлять пакеты данных. Но вопрос в том, зачем добавлять кадр к пакету, который уже идёт на конечное устройство пользователя? Правильно – незачем.
Именно поэтому в маршрутизаторах и коммутаторах есть два понятия:
- Trunk port (магистральный порт) – порт, который идет на другое сетевое устройство: коммутатор, маршрутизатор и т.д. Из этого порта обычно отправляются тегированные пакеты, то есть пакеты с этим самым тегом.
- Access port (порт доступа) – открытый или последний порт, из которого информация льется прямиком на компьютер пользователя. Сюда бессмысленно добавлять тег, забивая размер пакета.
Нетегированный трафик – это пакеты данных, которые идут без кадра 802.1q. Тегирование VLAN как раз и происходит по двум портам: Trunk и Access. Если вам пока ничего не понятно, то не переживайте, дальше я все покажу на примере.
Настройка VLAN на коммутаторе
Приведу пример настройки VLAN на коммутаторе от компании CISCO. По сути у них все настройки делаются примерно одинаково, поэтому вы можете использовать данную инструкцию и в своих целях. Поддержка VLAN должна быть на всех коммутаторах с канальным уровнем.
Для начала давайте посмотрим всю таблицу коммутации VLAN стандартной консольной командной:
show vlan
Смотрим по столбцам:
- Тут находится номер нашего ВЛАН подключения. Чуть ниже вы видите другие номера с 1002 по 1005 – они зарезервированы и их удалить или поменять как-то НЕЛЬЗЯ!
- Далее идут имена.
- Статус – может быть активным или активным и одновременно не поддерживаемым – как на последних зарезервированных портах.
- И последняя строка – одна из самых главных. Тут мы задаем каждому VLAN свои порты и тут мы «разделаем пространство» бухгалтеров от отдела кадров. FA0/1 переводится как «Fast Ethernet» – 1 порт. Как видите у нас тут 24 порта «Fast Ethernet» со скоростью 100 Мбит в секунду. И 2 порт: Gig01 и Gig02 – со скоростью 1000 Мбит (или 1 Гбит) в секунду (мы их пока трогать не будем).
Для примера я буду использовать модель Cisco 2960 24tt, но принцип настройки, который буду показывать далее – одинаковый для всех их аппаратов. Плюс вы поймете принцип VLAN сразу и на примере.
Далее назовём как-то нашего зверя:
Switch(config)#hostname SW1
SW1(config)#
Покажу настройку на примере нашей любимой картинки, которую я показывал в самом начале. Тут у нас есть:
- Коммутаторы: SenterSW, SW1, SW2, SW3.
- Компы: PC1, PC2, PC3, PC4, PC5, PC
Запомните примерно данные названия, чтобы было проще ориентироваться при вводе команд. Можете также иногда посматривать на эту картинку.
Создаем VLAN 2:
SW1(config)#vlan 2
Задаем ему имя:
SW1(config-vlan)#name Dir-ya
Теперь давайте подключим наши компьютеры, и заведем им отдельные 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 адреса наших компов:
- 192.168.1.2
- 192.168.1.3
- 192.168.1.4
- 192.168.1.5
- 192.168.1.6
- 192.168.1.7
Да – все компы находятся в одной сети. Да, мы ограничили трафик на канальном уровне с помощью разбиения сегментов и портов на 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.
В настройках нам также надо будет указать шлюзы, но они будут стандартные:
- 192.168.1.1 – для дирекции
- 192.168.2.1 – для бухгалтерии
- 192.168.3.1 – для отдела кадров
Маска будет везде одинаковая: 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
Теперь, например, если отправить пакет данных из первого компьютера к пятому, произойдет следующее:
- Отправка будет осуществлена по IP адресу с 192.168.1.1 (комп 1) на адрес 192.168.3.2 (комп 5).
- Первый комп вообще не понимает: «кто это вообще такой?», – и поэтому он отправляет пакет своему центральному шлюзу (192.168.1.1). Он отправляет пакет по протоколу ARP, используя MAC-адрес, чтобы запрос точно дошел до шлюза.
- Пакет доходит до центрального свича, далее идет к маршрутизатору. И потом ответ идет обратно до первого компа.
- Теперь первый комп понимает – где находится пятый и отправляет пакет по протоколу ICMP.
- Пакет доходит обратно до маршрутизатора. Роутер не знает ничего про пятый комп (192.168.3.2), но знает про коммутатор (SW3) и отправляет туда запрос.
- Коммутатор уже связывается с 5 компом, который отправляет ответ обратно.
- Но ответ доходит только до маршрутизатора, который записывает данный IP адрес в свою таблицу.
- Как видите, ответ все никак не может дойти до первого компа, хотя запрос уже был отправлен ранее. Тогда он отправляет новый пакет запросов, и вот уже тот через маршрутизатор идет до 5-го компьютера.
Именно так заполняется таблица маршрутизации. Такой долгий путь обычно начинается в самом начале. Впоследствии маршрутизатор помогает общаться всем компьютерам именно через канальный уровень.
Видео
Более детально про VLAN рассказывается в данном видео, оно достаточно долгое, но максимально информативное.
Главное года не бойтесь, он там простой – самое главное просто читайте. Автор не обманул и правда очень все доступно и понятно. Спасибо!
Да также код сначала напугал, но оказалось все куда проще чем кажется. Благодарю…
Ничего так и не понял.
Все хорошо, но лучше не паясничать с фразами, чтобы не путаться, например как с картинками вначале и потом (они разные). Потому как это не литературный опус, а статья из точной науки и здесь все должно соответствовать, а не мы должны гадать – “зверь” это ШО? Ну и тд и тп….