Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Всем привет! И сегодня мы постараемся полностью раскрыть вопрос – что такое VLAN и как его настроить на Cisco. Постараюсь писать как можно проще и с простыми примерами – для чайников. Для полного понимания я советую прочесть статью от начала и до конца. Вам не нужно иметь под рукой коммутатор от Cisco, чтобы понять принципы стандартной настройки – все можно понять «на лету», так как я буду использовать простой пример. Если у вас будут какие-то вопросы или дополнения, пишите в комментариях.

Начало

Проблема больших локальных сетей в том, что без разделения все устройства оказываются в одном широковещательном домене. Проще говоря, служебные запросы и часть «шумного» сетевого трафика могут разлетаться туда, куда им вообще не надо. Давайте посмотрим на пример трех отделов: дирекция, бухгалтерия и отдел кадров. Конечно, в крупных компаниях сети куда больше, но мы рассмотрим более ужатый пример.

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Представим себе, что все из этих компьютеров имеют одинаковую первую (1) подсеть, то есть – PC1 имеет адрес 192.168.1.2; PC2 имеет – 192.168.1.3; PC3 имеет адрес 192.168.1.4 и т.д. То есть все они находятся в одной подсети.

Подключены они все к разным коммутаторам. Если кто не знает, то коммутатор учит MAC-адреса устройств и складывает их в свою таблицу. Если нужного адреса в таблице еще нет, или если это широковещательный ARP-запрос, коммутатор отправляет кадр на все порты внутри этой же VLAN, кроме того порта, откуда кадр пришел. То есть если PC1 хочет узнать, где находится PC2, то произойдет следующее:

  1. ARP-запрос дойдет до Switch2, и он отправит его на PC2 и на центральный Switch.
  2. Далее запрос дойдет до центрального Switch-а. Центральный коммутатор отправит его на другие коммутаторы, если все они находятся в одном общем сегменте.
  3. Те в свою очередь отправят запросы на остальные PC: 3, 4, 5 и 6.

Если вы подзабыли, что такое коммутатор, то идем читать статейку тут.

А почему же так происходит? А происходит все из-за того, что PC1 пока не знает MAC-адрес второго компа и отправляет специальный пакет по протоколу ARP, для так называемого «прозвона». Также отправляющий комп работает на канальном уровне и ищет именно MAC-адрес – вспоминаем сетевую модель OSI.

И тут возникает две проблемы:

  • Безопасность – лишний трафик могут просто перехватить злоумышленники. В нормальной сети это дополнительно закрывается политиками доступа, но VLAN уже сильно помогает разделить отделы.
  • Ненужный трафик – когда сеть небольшая, это не так заметно. Но представьте, что у вас сеть состоит из тысячи компьютеров. Все может привести к забитости канала и потере пакетов.

Как ни странно, но пример, который я привел, был работоспособным почти в самом начале создания сетей, когда интернет был слабым и юным. О проблеме знали все. У Cisco был свой фирменный вариант тегирования – ISL. Но на текущий день основным и нормальным стандартом для VLAN считается IEEE 802.1Q, который понимают коммутаторы разных производителей.

Для начала взглянем на обычный «Ethernet-кадр», находящийся в своей привычной среде обитания:

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

А теперь взглянем на новый кадр 802.1Q:

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Что у нас в итоге получается – добавляется еще один тег с нужной для нас информацией:

  1. TPID – всегда будет состоять из 2 байт и обычно равен 0x8100. В переводе с английского «Tag Protocol ID» – обозначает «Идентификатор тегированного протокола».
  2. PCP – в нем обычно записывается приоритет того или иного трафика. Чем приоритетнее трафик, тем больше шансов, что коммутатор обработает его первым. Полезная вещь в крупных сетях. Три буквы расшифровываются как «Priority Code Point», а переводятся как приоритет или значение приоритета.
  3. DEI – поле в 1 бит. Раньше его часто называли CFI. Сейчас оно используется как признак того, что кадр можно отбросить при перегрузке.
  4. VID – определяет, в каком VLAN находится выделенный кадр. Обычно состоит из 12 бит. Расшифровывается как VLAN ID.

ПРИМЕЧАНИЕ! В 802.1Q можно использовать VLAN ID от 1 до 4094, но не все номера одинаково удобны. VLAN 1 обычно идет по умолчанию, а 1002-1005 на Cisco зарезервированы под старые технологии.

Теперь мы подошли к одному очень интересному понятию. Как вы уже поняли, данный кадр 802.1Q помогает правильно отправлять пакеты данных между сетевым оборудованием. Но вопрос в том, зачем добавлять тег к кадру, который уже идет на конечное устройство пользователя? Правильно – незачем.

Именно поэтому в маршрутизаторах и коммутаторах есть два понятия:

  • Trunk port (магистральный порт) – порт, который идет на другое сетевое устройство: коммутатор, маршрутизатор и т.д. Из этого порта обычно отправляются тегированные кадры, то есть кадры с этим самым VLAN-тегом.
  • Access port (порт доступа) – обычный пользовательский порт, из которого информация льется прямиком на компьютер, принтер, камеру или другое конечное устройство. Сюда обычно бессмысленно добавлять тег, потому что простому компьютеру он не нужен.

Нетегированный трафик – это кадры данных, которые идут без тега 802.1Q. Тегирование VLAN как раз и появляется на trunk-портах. А access-порт просто относится к конкретной VLAN внутри коммутатора. Если вам пока ничего не понятно, то не переживайте, дальше я все покажу на примере.

Настройка VLAN на коммутаторе

Приведу пример настройки VLAN на коммутаторе от компании Cisco. По сути у них многие базовые настройки делаются примерно одинаково, поэтому вы можете использовать данную инструкцию и в своих целях. Поддержка VLAN есть не на любом «железном ящике», а именно на управляемых коммутаторах. Обычный дешевый неуправляемый свич такие команды просто не поймет.

Для начала давайте посмотрим список VLAN стандартной консольной командой. Обычно ее вводят из привилегированного режима после команды enable:

show vlan brief

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Смотрим по столбцам:

  1. Тут находится номер нашего VLAN подключения. Чуть ниже вы видите другие номера с 1002 по 1005 – они зарезервированы и их удалить или поменять как-то НЕЛЬЗЯ!
  2. Далее идут имена.
  3. Статус – может быть активным или активным и одновременно не поддерживаемым – как на последних зарезервированных VLAN.
  4. И последняя строка – одна из самых главных. Тут мы видим, какие порты относятся к каждому VLAN, и тут мы «разделяем пространство» бухгалтеров от отдела кадров. FA0/1 переводится как «Fast Ethernet» – 1 порт. Как видите у нас тут 24 порта «Fast Ethernet» со скоростью 100 Мбит в секунду. И 2 порта: Gig0/1 и Gig0/2 – со скоростью 1000 Мбит (или 1 Гбит) в секунду (мы их пока трогать не будем).

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Для примера я буду использовать модель Cisco 2960 24TT, но принцип настройки, который буду показывать далее, одинаковый для многих аппаратов Cisco. Плюс вы поймете принцип VLAN сразу и на примере.

Далее назовем как-то нашего зверя:

Switch(config)#hostname SW1
SW1(config)#

Покажу настройку на примере нашей любимой картинки, которую я показывал в самом начале. Тут у нас есть:

  • Коммутаторы: CentrSW, SW1, SW2, SW3.
  • Компы: PC1, PC2, PC3, PC4, PC5, PC6.

Запомните примерно данные названия, чтобы было проще ориентироваться при вводе команд. Можете также иногда посматривать на эту картинку.

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Создаем 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-ой VLAN мы создали, осталось теперь привязать 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

Как бы вроде мы все сделали, но есть одна проблема: по умолчанию trunk может пропускать много VLAN, а нам в учебной схеме это не надо. Нам нужно прописать правило, которое разрешает проходить через 24 порт только кадрам VLAN2:

SW1(config-if)#switchport trunk allowed vlan 2

ВАЖНО! Команда без слова add заменяет список разрешенных VLAN. Если на порту уже были другие VLAN и вы хотите добавить еще одну, используйте вариант с add.

На всякий случай проверяем таблицу VLAN:

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Как видите, наш второй VLAN теперь имеет только два доступных пользовательских порта. Единственный минус данного вывода информации в том, что вы не можете посмотреть статус тегирования портов. Для этого есть отдельная команда:

show interfaces trunk

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Вот тут мы видим наш 24 порт, который нам нужен для связи с центральным коммутатором. Еще раз повторюсь, что статус тегирования (Trunk или Access) обязательно нужно настраивать для нужных портов. В противном случае не будет смысла вообще в настройке VLAN.

Первый коммутатор мы настроили, теперь давайте настроим центральный. В первую очередь нужно создать три 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

ПРИМЕЧАНИЕ! Дабы не запутаться, обязательно называем VLAN как на первом коммутаторе. Для железа важен номер VLAN, но человеку имя очень помогает не накосячить.

А теперь останется настроить 2-ой и 3-ий коммутатор по аналогии с первым. Описывать это тут я не стану, так как делается все одинаково. Только не забудьте обозвать их как «SW2» и «SW3». Далее нужно просто создать и прикрутить соответствующие VLAN: 3 и 4. Также не забудьте обозвать их теми же наименованиями, которые мы применили в центральном коммутаторе.

И тут мы подходим к следующей проблеме. VLAN мы создали и даже разделили на разные порты. Вроде разделение есть, но давайте взглянем на IP адреса наших компов:

  1. 192.168.1.2
  2. 192.168.1.3
  3. 192.168.1.4
  4. 192.168.1.5
  5. 192.168.1.6
  6. 192.168.1.7

Да – все компы находятся в одной IP-сети. Да, мы ограничили трафик на канальном уровне с помощью разбиения сегментов и портов на VLAN. Но правильно в реальной сети делать так: отдельная VLAN – отдельная IP-подсеть. Например, дирекция – 192.168.1.0/24, бухгалтерия – 192.168.2.0/24, отдел кадров – 192.168.3.0/24. Если подзабыли маску и подсети, можно освежить тему здесь: что такое маска подсети.

ПРИМЕЧАНИЕ! Если вы еще путаетесь в этих понятиях, то советую прочесть статью про OSI – ссылку я оставил в самом начале статьи.

Все я это сделал в учебных целях, и вообще нужно разделять сети и на канальном, и на сетевом уровне. Адреса можно прописывать вручную на компьютерах, но в нормальной сети чаще используют DHCP-сервер. Если интересно, у нас есть отдельная статья про DHCP простыми словами.

Теперь что будет происходить с отправлением данных? Если мы отправим широковещательный запрос из VLAN2, то он дойдет до первого коммутатора. Далее коммутатор отправит его только туда, где разрешен VLAN2: на нужный компьютер и на trunk к центральному Switch. После этого центральный коммутатор не должен отправлять этот кадр в те trunk-порты, где VLAN2 не разрешен. То есть данный пакет не дойдет до компов: 3, 4, 5 и 6.

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Ситуация с переездом сотрудника

Давайте рассмотрим ситуацию, что в отдел бухгалтерии нужно будет посадить сотрудника из совершенно другого отдела (на время). Допустим Елена Павловна не может сидеть в отделе дирекции летом, так как у нее сильно повышается давление, а там нет кондиционера. Начальство решает переселить ее на летнее время в бухгалтерию.

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

Итак, что мы будем делать?! В первую очередь мы подключим ее компьютер к следующему третьему порту второго свича. Теперь возникла проблема в том, что на втором коммутаторе и слухом не слыхивали про 2-ой VLAN и его надо создать:

SW2(config)#vlan 2
SW2(config-vlan)#name Dir-ya

Теперь нужно 3-порт настроить и добавить его в VLAN2. И также не забываем прописать ему режим access:

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 внешнего порта мы разрешили использовать сразу два VLAN. Теперь при отправке кадра он будет доходить до центрального коммутатора. Далее он будет отправлен на 2 свич, у которого уже прописано правило, разрешающее отправлять VLAN2 кадры только на выделенный 3 порт, где как раз и сидит переселенный сотрудник: Елена Павловна.

Общение между собой

Теперь мы подошли к вопросу использования VLAN – как видите это полезная вещь, которая строго разделяет трафик на канальном уровне и позволяет отправлять кадры только в нужную сторону. Таким образом организовывается работа больших организаций, где есть большое количество отделов, которые не должны видеть друг друга. Но одна из проблем у нас все же остается, а именно – проблема одной IP-сети. Все наши компьютеры находятся в первой подсети, что неправильно, и нам надо их разбить.

Но для этих целей нам также понадобится маршрутизатор, чтобы объединить сеть также и на сетевом уровне. Для этого мы подключим маршрутизатор Cisco 2811. Общий принцип настройки маршрутизатора Cisco можно посмотреть отдельно в этой инструкции.

Что такое VLAN – для абсолютных чайников на примере настройки коммутатора Cisco

В настройках нам также надо будет указать шлюзы, но они будут стандартные:

  1. 192.168.1.1 – для дирекции
  2. 192.168.2.1 – для бухгалтерии
  3. 192.168.3.1 – для отдела кадров

Маска будет везде одинаковая: 255.255.255.0 (/24). Компьютерам в разных VLAN нужно выдать адреса из разных подсетей: например, VLAN2 – 192.168.1.x, VLAN3 – 192.168.2.x, VLAN4 – 192.168.3.x.

Для чего вообще нужен маршрутизатор – он будет позволять общаться компьютерам, которые находятся в разных VLAN. Для этого будет использоваться адрес шлюза у каждой подсети. Такая схема часто называется «router-on-a-stick»: один физический кабель к маршрутизатору, а внутри несколько виртуальных подинтерфейсов.

Настройка маршрутизатора

Заходим в настройки и обзываем его исходя из картинки:

Router(config)#hostname Gateway
Gateway(config)#

Так как маршрутизатор подключен к центральному коммутатору, то шлюзы у нас будут не физические, а виртуальные (сабинтерфейсы), так как мы ведь не подключили компьютеры напрямую к маршрутизатору. Для этого надо на маршрутизаторе настроить три этих самых сабинтерфейса – ведь у нас 3 VLAN и 3 подсети:

Gateway(config)#interface fastEthernet 0/0
Gateway(config-if)#no shutdown
Gateway(config-if)#exit

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 порту центрального коммутатора. Теперь нам нужно разрешить отправлять кадры всех VLAN на маршрутизатор через 24 порт, к которому мы и подключились:

CentrSW(config)#interface fastEthernet 0/24

Не забываем указать «транковое» тегирование, ведь кадры будут идти на сетевое устройство, а не на компьютер:

CentrSW(config-if)#switchport mode trunk

Все VLAN можно прописать просто через запятую:

CentrSW(config-if)#switchport trunk allowed vlan 2,3,4

После настройки полезно быстро проверить интерфейсы и trunk:

show interfaces trunk
show ip interface brief

И не забываем сохранить конфигурацию, чтобы после перезагрузки все не улетело в небытие:

copy running-config startup-config

Теперь, например, если отправить пакет данных из первого компьютера к пятому, произойдет следующее:

  1. Отправка будет осуществлена с IP-адреса PC1 192.168.1.2 на адрес PC5 192.168.3.2.
  2. PC1 видит, что получатель находится в другой подсети, поэтому не ищет PC5 напрямую, а отправляет кадр на свой шлюз 192.168.1.1.
  3. Чтобы отправить кадр шлюзу, PC1 сначала через ARP узнает MAC-адрес интерфейса маршрутизатора в VLAN2.
  4. Кадр доходит до центрального свича, далее идет по trunk к маршрутизатору.
  5. Маршрутизатор смотрит IP-адрес назначения и понимает, что сеть 192.168.3.0/24 находится на подинтерфейсе VLAN4.
  6. Если маршрутизатор еще не знает MAC-адрес PC5, он делает ARP-запрос уже в VLAN4.
  7. Коммутатор SW3 доставляет кадр до PC5, а PC5 отправляет ответ обратно через свой шлюз 192.168.3.1.

Именно так заполняются ARP-таблицы на устройствах и MAC-таблицы на коммутаторах. А таблица маршрутизации у маршрутизатора появляется не «из воздуха» – сети добавляются как напрямую подключенные после настройки IP-адресов на сабинтерфейсах.

Видео

Более детально про VLAN рассказывается в данном видео, оно достаточно долгое, но максимально информативное.

Автор статьи
Бородач 2924 статей
Сенсей по решению проблем с WiFiем. Обладатель оленьего свитера, колчана витой пары и харизматичной бороды. Любитель душевных посиделок за танками.
WiFiGid
Комментарии: 4
  1. Денис

    Главное года не бойтесь, он там простой – самое главное просто читайте. Автор не обманул и правда очень все доступно и понятно. Спасибо!

  2. Рома

    Да также код сначала напугал, но оказалось все куда проще чем кажется. Благодарю…

  3. Дима

    Ничего так и не понял. :sad:

  4. Аноним

    Все хорошо, но лучше не паясничать с фразами, чтобы не путаться, например как с картинками вначале и потом (они разные). Потому как это не литературный опус, а статья из точной науки и здесь все должно соответствовать, а не мы должны гадать – “зверь” это ШО? Ну и тд и тп….

Добавить комментарий
После отправки комментарий может не отображаться - это нормально. Сразу же после модерации он будет опубликован. Если Вы хотите быстро узнать о получении ответа, рекомендуем оставить свой e-mail (это необязательно). E-mail используется исключительно для Вашего оповещения, мы не занимаемся спамом.

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.