Что такое VLANs? Сети VLAN. Что такое vlan: технология и настройка

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

Как настраивать VLAN на Cisco роутере можно посмотреть в статье Cisco VLAN - настройка vlan на маршрутизаторе Cisco . Здесь речь пойдёт о настройке VLAN на коммутаторах Cisco Catalyst.

Перед настройкой VLAN на коммутаторе, необходимо определиться будет ли в сети использоваться протокол VTP (VLAN Trunking Protocol) или нет. Использование VTP облегчает управление (создание, удаление, переименовывание) VLAN-ами в сети. В случае с VTP изменение (информацию о VLAN) можно внести централизованно, на одном коммутаторе, и эти изменения распространятся на другие коммутаторы в сети. Если не использовать VTP, то изменения нужно вносить на каждом коммутаторе.

VTP накладывает свои ограничения: протокол VTP версии 1 и 2 поддерживает только базовый диапазон VLAN (c 1 по 1005), поддержка расширенного диапазона (с 1006 по 4094) возможна только в версии протокола 3. Поддержка протокола VTP 3 версии начинается с Cisco IOS версии 12.2(52)SE и выше. Настройку протокола VTP рассмотрим в другой статье, а в этой будем подразумевать, что не используем VTP.

Настройку VLAN на коммутаторе можно выделить в три этапа: создание VLAN, настройка портов, проверка.

1. Создание VLAN на Cisco Catalyst

Номера VLAN (VLAN ID) могут быть в диапазоне от 1 до 4094:

1 - 1005 базовый диапазон (normal-range)

1002 - 1005 зарезервированы для Token Ring и FDDI VLAN

1006 - 4094 расширенный диапазон (extended-range)

При создании или изменении VLAN можно задать следующие параметры:

VLAN ID Номер VLAN
VLAN name (name ) Имя VLAN
VLAN type (media ) Тип VLAN (Ethernet, Fiber Distributed Data Interface , FDDI network entity title , TrBRF, или TrCRF, Token Ring, Token Ring-Net)
VLAN state (state ) Состояние VLAN (active или suspended)
VLAN MTU (mtu ) Максимальный размер блока данных, который может быть передан на канальном уровне
SAID (said ) Security Association Identifier - идентификатор ассоциации безопасности (стандарт IEEE 802.10)
Remote SPAN (remote-span ) Создание VLAN для удаленного мониторинга трафика (В дальнейшем в такой VLAN можно зеркалировать трафик с какого-нибудь порта, и передать его через транк на другой коммутатор, в котором из этого VLAN трафик отправить на нужный порт с подключенным снифером)
Bridge identification number для TrBRF VLAN (bridge ) Идентификатор номера моста для функции TrBRF (Token Ring Bridge Relay Function). Цель функции - создание моста из колец.
Ring number для FDDI и TrCRF VLAN (ring ) Номер кольца для типов VLAN FDDI и TrCRF (Token Ring concentrator relay functions). TrCRF называют кольца, которые включены в мост.
Parent VLAN number для TrCRF VLAN (parent ) Номер родительского VLAN для типа VLAN FDDI или Token Ring
Spanning Tree Protocol (STP) type для TrCRF VLAN (stp type ) Тип протокола связующего дерева (STP) для VLAN типа TrCRF
Translational VLAN number 1 (tb-vlan1 ) Номер VLAN для первичного преобразования одного типа VLAN в другой
Translational VLAN number 2 (tb-vlan2 ) Номер VLAN для вторичного преобразования одного типа VLAN в другой

На практике чаще всего, при создании VLAN задаётся только VLAN ID и VLAN name

Значения по умолчанию:

Для создания VLAN нужно:

1. Войти в привилегированный режим и ввести необходимый пароль (команда «enable «)

Sw1> sw1>enable Password: sw1#

2. Переключиться в режим глобального конфигурирования (команда «configure terminal «)

Sw1# sw1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw1(config)#

3. Создать VLAN командой «vlan id «, где id - номер VLAN (После создания, консоль окажется в режиме конфигурирования VLAN, где можно задать перечисленные выше параметры для VLAN)

Sw1(config)# sw1(config)#vlan 200 sw1(config-vlan)#

4. Задать необходимые параметры, для созданного VLAN (например имя)

Sw1(config-vlan)# sw1(config-vlan)#name TESTVLAN sw1(config-vlan)#

Если, в режиме конфигурирования VLAN, ввести знак вопроса, то отобразятся параметры, которые можно задать для данного VLAN:

Sw1(config-vlan)#? VLAN configuration commands: are Maximum number of All Route Explorer hops for this VLAN (or zero if none specified) backupcrf Backup CRF mode of the VLAN bridge Bridging characteristics of the VLAN exit Apply changes, bump revision number, and exit mode media Media type of the VLAN mtu VLAN Maximum Transmission Unit name Ascii name of the VLAN no Negate a command or set its defaults parent ID number of the Parent VLAN of FDDI or Token Ring type VLANs private-vlan Configure a private VLAN remote-span Configure as Remote SPAN VLAN ring Ring number of FDDI or Token Ring type VLANs said IEEE 802.10 SAID shutdown Shutdown VLAN switching state Operational state of the VLAN ste Maximum number of Spanning Tree Explorer hops for this VLAN (or zero if none specified) stp Spanning tree characteristics of the VLAN tb-vlan1 ID number of the first translational VLAN for this VLAN (or zero if none) tb-vlan2 ID number of the second translational VLAN for this VLAN (or zero if none)

5. Выйти из режима конфигурирования vlan (команда «exit «, либо «end » - выход из режима глобального конфигурирования)

Sw1(config-vlan)# sw1(config-vlan)#end sw1#

Не забываем сохранять конфигурацию командой «copy running-config startup-config » в привилегированном режиме

Sw1# sw1#copy running-config startup-config Destination filename ? Building configuration...

Удалить VLAN можно командой «no vlan id » в режиме глобального конфигурирования:

Sw1(config)# sw1(config)#no vlan 200 sw1(config)#

2. Настройка портов на Cisco Catalyst

Порт на коммутаторе Cisco может находиться в одном из режимов:

access - порт предназначен для подключения оконечного устройства. Принадлежит только одному VLAN. Входящий трафик от подключенного к порту устройства, маркируется заданным на порту VLAN.

trunk - порт предназначен для подключения к другому коммутатору или маршрутизатору. Порт передаёт тегированный трафик. Может передавать трафик как одного, так и нескольких VLAN через один физический кабель.

На Cisco Catalyst можно самому задать режим порта (trunk или access), либо задать автоопределение. При автоопределении режима, порт будет согласовываться с соседом (подключенным к этому порту коммутатором или иным устройством). Согласование режима порта происходит путём передачи DTP (Dynamic Trunking Protocol) фреймов. Для успешной работы протокола DTP, необходимо, что бы интерфейсы были в одном VTP домене (либо один из VTP доменов был null, неточно)

Автоопределение режима порта задаётся командой «switchport mode dynamic auto » или «» в режиме конфигурации интерфейса.

switchport mode dynamic auto trunk» или «dynamic desirable «

Если на интерфейсе установлено «switchport mode dynamic desirable » - то порт переходит в режим trunk, только, если порт соседнего коммутатора установлен в режим «trunk » или «dynamic desirable » или «dynamic auto «

Не все устройства поддерживают DTP, либо могут некорректно передавать DTP фреймы, в таком случае лучше задать режим (access или trunk) принудительно командами «switchport mode access » или «switchport mode trunk » в режиме конфигурации интерфейса, и отключить передачу DTP фреймов командой «switchport nonegotiate «.

Конфигурация порта по умолчанию:

Настройка порта в режим автоопределения.

Действия:

enable «)

configure terminal «)

interface interface-id «, где interface-id - имя и номер интерфейса, например «interface GigabitEthernet0/21″)

— задать динамический режим порта/интерфейса (команда: «switchport mode dynamic auto » или «switchport mode dynamic desirable «)

— (не обязательно) задать VLAN, который будет на интерфейсе, если порт перейдёт из режима trunk в режим access, по умолчанию VLAN 1 (команда: «switchport access vlan vlan-id «, где vlan-id - номер VLAN)

— (не обязательно) задать Native VLAN, для IEEE 802.1q транка, по умолчанию Native VLAN 1 (команда: «switchport trunk native vlan vlan-id «, где vlan-id - номер Native VLAN)

— добавить/удалить VLAN в транке, по умолчанию все номера VLAN разрешены (команды: «switchport trunk allowed vlan add vlan-list » - добавить в транк VLAN-ы перечисленные в vlan-list, «switchport trunk allowed vlan remove vlan-list » - удалить из транка VLAN-ы, перечисленные в vlan-list, в vlan-list вланы перечисляются через запятую без пробелов, а диапазоны через дефис, например 2,20,30-40,50 ). Можно сразу задать список необходимых VLAN (командой: «switchport trunk allowed vlan vlan-list «)

no shutdown «)

exit » или «end »)

Sw1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw1(config)#interface gigabitEthernet 0/23 sw1(config-if)#switchport mode dynamic desirable sw1(config-if)#switchport access vlan 50 sw1(config-if)#switchport trunk native vlan 100 sw1(config-if)#switchport trunk allowed vlan 2,30-35,40 sw1(config-if)#no shutdown sw1(config-if)#end sw1#

В данном примере порт 23 переведётся в режим trunk, если порт на соседнем коммутаторе установлен в режиме dynamic auto или dynamic disirable или trunk . В транке будут передаваться только VLAN 2, VLAN с 30 по 35 и VLAN 40. При работе порта в режиме trunk, приходящий на него не тегированный (native) трафик будет помещаться (маркироваться) в VLAN 100. Если порт на соседнем коммутаторе работает в режиме access, то интерфейс будет помещён в VLAN 50.

Настройка access порта.

VLAN на access порту может задаваться статически либо автоматически. Автоматическое назначение VLAN основывается на МАК адресе источника, используя протокол VQP (VLAN Query Protocol) и сервер VMPS (VLAN Management Policy Server). Сервером VMPS могут выступать коммутаторы только старших моделей, такие серии как Catalyst 4000, 5000 и 6500. Автоматическую настройку access порта через VQP в данной статье рассматривать не будем. Здесь будет показано только статическое задание VLAN на access порту.

Для включения access порта в необходимый VLAN, нужно сделать:

— войти в привилегированный режим (команда: «enable «)

— войти в режим глобального конфигурирования (команда: «configure terminal «)

— войти в режим конфигурирования сетевого интерфейса (команда: «interface interface-id «, где interface-id - имя и номер интерфейса)

— задать режим порта/интерфейса «access» (команда: «switchport mode access «)

— задать VLAN на порту/интерфейсе (команда: «switchport access vlan vlan-id «, где vlan-id - номер VLAN)

— включить порт/интерфейс (команда: «no shutdown «)

— выйти из режима конфигурирования интерфейса (команда: «exit » или «end »)

Пусть к 22-му порту коммутатора подключен сервер, который необходимо поместить в 200-й VLAN

Настройка порта:

Sw1> sw1>enable Password: sw1# sw1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw1(config)#interface GigabitEthernet0/22 sw1(config-if)#switchport mode access sw1(config-if)#switchport access vlan 200 sw1(config-if)#no shutdown sw1(config-if)#exit sw1(config)#exit sw1#

Настройка trunk порта.

Настройка порта в режиме trunk идентична настройки порта в режиме автоопределения, за исключением того, что режим нужно указать не dynamic а trunk.

Sw6# sw6#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw6(config)#interface gigabitEthernet 0/23 sw6(config-if)#switchport mode trunk sw6(config-if)#switchport trunk allowed vlan 2,30-35,40 sw6(config-if)#no shutdown sw6(config-if)#end sw6#

В примере задаётся транк на 23-м порту, в транке разрешены только VLAN 2, VLAN с 30 по 35 и VLAN 40

Добавление VLAN в транковый порт выполняет команда: «switchport trunk allowed vlan add VLAN_NUM «

Пример добавления вланов 100 и 200 к существующим, в транковом порту 23:

Sw6# sw6#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw6(config)#interface Gi0/23 sw6(config-if)#switchport trunk allowed vlan add 100,200 sw6(config-if)# sw6(config-if)#end sw6#

УдалениеVLAN из транкового порта выполняет команда: «switchport trunk allowed vlan remove VLAN_NUM «

Пример удаления вланов 100 и 200 из существующих, в транковом порту 23:

Sw6# sw6#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw6(config)#interface Gi0/23 sw6(config-if)#switchport trunk allowed vlan remove 100,200 sw6(config-if)# sw6(config-if)#end sw6#

Некоторые cisco коммутаторы поддерживают два протокола для работы с VLAN это IEEE 802.1q и ISL. Протокол ISL уже устарел и на многих современных коммутаторах не поддерживается. Поэтому предпочтительнее использовать протокол IEEE 802.1q

На таких коммутаторах, перед настройкой порта в режиме транка, нужно выбрать тип инкапсуляции dot1q (комана: «switchport trunk encapsulation dot1q » в режиме конфигурации интерфейса)

3. Проверка настройки VLAN

Посмотреть информацию о VTP протоколе: «show vtp status «

Показать информацию обо всех VLAN на коммутаторе: «show vlan «

Посмотреть информацию об конкретном VLAN, и узнать на каких он портах: «show vlan id vlan-id «

Посмотреть режим работы порта, native vlan, access vlan и прочее: «show interfaces interface-id switchport «

Иногда, необходимо на коммутаторе создать интерфейс 3-го уровня для VLAN. Например, для маршрутизации и фильтрации IP трафика между разными VLAN (должна быть поддержка L3 уровня как самой моделью коммутатора так и версией IOS). Либо просто создать интерфейс для управления этим коммутатором в специальном VLAN.

Сетевой интерфейс для VLAN создаётся в режиме глобального конфигурирования командой: «interface vlan-id «, где vlan-id - это номер VLAN.

Пример создания L3 интерфейса для VLAN 200.


9) Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP.
10) Трансляция сетевых адресов: NAT и PAT.
11) Протоколы резервирования первого перехода: FHRP.
12) Безопасность компьютерных сетей и виртуальные частные сети: VPN.
13) Глобальные сети и используемые протоколы: PPP, HDLC, Frame Relay.
14) Введение в IPv6, конфигурация и маршрутизация.
15) Сетевое управление и мониторинг сети.

P.S. Возможно, со временем список дополнится.


В предыдущих статьях мы уже работали с многими сетевыми устройствами, поняли, чем они друг от друга отличаются и рассмотрели из чего состоят кадры, пакеты и прочие PDU. В принципе с этими знаниями можно организовать простейшую локальную сеть и работать в ней. Но мир не стоит на месте. Появляется все больше устройств, которые нагружают сеть или что еще хуже - создают угрозу в безопасности. А, как правило, «опасность» появляется раньше «безопасности». Сейчас я на самом простом примере покажу это.

Мы пока не будем затрагивать маршрутизаторы и разные подсети. Допустим все узлы находятся в одной подсети.

Сразу приведу список IP-адресов:

  1. PC1 – 192.168.1.2/24
  2. PC2 – 192.168.1.3/24
  3. PC3 – 192.168.1.4/24
  4. PC4 – 192.168.1.5/24
  5. PC5 – 192.168.1.6/24
  6. PC6 – 192.168.1.7/24
У нас 3 отдела: дирекция, бухгалтерия, отдел кадров. У каждого отдела свой коммутатор и соединены они через центральный верхний. И вот PC1 отправляет ping на компьютер PC2.






Кто хочет увидеть это в виде анимации, открывайте спойлер (там показан ping от PC1 до PC5).

Работа сети в одном широковещательном домене


Красиво да? Мы в прошлых статьях уже не раз говорили о работе протокола ARP, но это было еще в прошлом году, поэтому вкратце объясню. Так как PC1 не знает MAC-адрес (или адрес канального уровня) PC2, то он отправляет в разведку ARP, чтобы тот ему сообщил. Он приходит на коммутатор, откуда ретранслируется на все активные порты, то есть к PC2 и на центральный коммутатор. Из центрального коммутатора вылетит на соседние коммутаторы и так далее, пока не дойдет до всех. Вот такой не маленький трафик вызвало одно ARP-сообщение. Его получили все участники сети. Большой и не нужный трафик - это первая проблема. Вторая проблема - это безопасность. Думаю, заметили, что сообщение дошло даже до бухгалтерии, компьютеры которой вообще не участвовали в этом. Любой злоумышленник, подключившись к любому из коммутаторов, будет иметь доступ ко всей сети. В принципе сети раньше так и работали. Компьютеры находились в одной канальной среде и разделялись только при помощи маршрутизаторов. Но время шло и нужно было решать эту проблему на канальном уровне. Cisco, как пионер, придумала свой протокол, который тегировал кадры и определял принадлежность к определенной канальной среде. Назывался он ISL (Inter-Switch Link) . Идея эта понравилась всем и IEEE решили разработать аналогичный открытый стандарт. Стандарт получил название 802.1q . Получил он огромное распространение и Cisco решила тоже перейти на него.
И вот как раз технология VLAN основывается на работе протокола 802.1q. Давайте уже начнем говорить про нее.

В я показал, как выглядит ethernet-кадр. Посмотрите на него и освежите в памяти. Вот так выглядит не тегированный кадр.

Теперь взглянем на тегированный.

Как видим, отличие в том, что появляется некий Тег . Это то, что нам и интересно. Копнем глубже. Состоит он из 4-х частей.

1) TPID (англ. Tag Protocol ID) или Идентификатор тегированного протокола - состоит из 2-х байт и для VLAN всегда равен 0x8100.
2) PCP (англ. Priority Code Point) или значение приоритета - состоит из 3-х бит. Используется для приоритезации трафика. Крутые и бородатые сисадмины знают, как правильно им управлять и оперирует им, когда в сети гуляет разный трафик (голос, видео, данные и т.д.)
3) CFI (англ. Canonical Format Indicator) или индикатор каноничного формата - простое поле, состоящее из одного бита. Если стоит 0, то это стандартный формат MAC-адреса.
4) VID (англ. VLAN ID) или идентификатор VLAN - состоит из 12 бит и показывает, в каком VLAN находится кадр.

Хочу заострить внимание на том, что тегирование кадров осуществляется между сетевыми устройствами (коммутаторы, маршрутизаторы и т.д.), а между конечным узлом (компьютер, ноутбук) и сетевым устройством кадры не тегируются. Поэтому порт сетевого устройства может находиться в 2-х состояниях: access или trunk .

  • Access port или порт доступа - порт, находящийся в определенном VLAN и передающий не тегированные кадры. Как правило, это порт, смотрящий на пользовательское устройство.
  • Trunk port или магистральный порт - порт, передающий тегированный трафик. Как правило, этот порт поднимается между сетевыми устройствами.
Сейчас я покажу это на практике. Открываю ту же лабу. Картинку повторять не буду, а сразу открою коммутатор и посмотрю, что у него с VLAN.

Набираю команду show vlan .


Выстраиваются несколько таблиц. Нам по сути важна только самая первая. Теперь покажу как ее читать.

1 столбец - это номер VLAN. Здесь изначально присутствует номер 1 - это стандартный VLAN, который изначально есть на каждом коммутаторе. Он выполняет еще одну функцию, о которой чуть ниже напишу. Также присутствуют зарезервированные с 1002-1005. Это для других канальных сред, которые вряд ли сейчас используются. Удалить их тоже нельзя.

Switch(config)#no vlan 1005 Default VLAN 1005 may not be deleted.
При удалении Cisco выводит сообщение, что этот VLAN удалить нельзя. Поэтому живем и эти 4 VLANа не трогаем.

2 столбец - это имя VLAN. При создании VLAN, вы можете на свое усмотрение придумывать им осмысленные имена, чтобы потом их идентифицировать. Тут уже есть default, fddi-default, token-ring-default, fddinet-default, trnet-default.

3 столбец - статус. Здесь показывается в каком состоянии находится VLAN. На данный момент VLAN 1 или default в состоянии active, а 4 следующих act/unsup (хоть и активные, но не поддерживаются).

4 столбец - порты. Здесь показано к каким VLAN-ам принадлежат порты. Сейчас, когда мы еще ничего не трогали, они находятся в default.

Приступаем к настройке коммутаторов. Правилом хорошего тона будет дать коммутаторам осмысленные имена. Чем и займемся. Привожу команду.

Switch(config)#hostname CentrSW CentrSW(config)#
Остальные настраиваются аналогично, поэтому покажу обновленную схему топологии.


Начнем настройку с коммутатора SW1. Для начала создадим VLAN на коммутаторе.

SW1(config)#vlan 2 - создаем VLAN 2 (VLAN 1 по умолчанию зарезервирован, поэтому берем следующий). SW1(config-vlan)#name Dir-ya - попадаем в настройки VLAN и задаем ему имя.
VLAN создан. Теперь переходим к портам. Интерфейс FastEthernet0/1 смотрит на PC1, а FastEthernet0/2 на PC2. Как говорилось ранее, кадры между ними должны передаваться не тегированными, поэтому переведем их в состояние Access.

SW1(config)#interface fastEthernet 0/1 - переходим к настройке 1-ого порта. SW1(config-if)#switchport mode access - переводим порт в режим access. SW1(config-if)#switchport access vlan 2 - закрепляем за портом 2-ой VLAN. SW1(config)#interface fastEthernet 0/2 - переходим к настройке 2-ого порта. SW1(config-if)#switchport mode access - переводим порт в режим access. SW1(config-if)#switchport access vlan 2 - закрепляем за портом 2-ой VLAN.
Так как оба порта закрепляются под одинаковым VLAN-ом, то их еще можно было настроить группой.

SW1(config)#interface range fastEthernet 0/1-2 - то есть выбираем пул и далее настройка аналогичная. SW1(config-if-range)#switchport mode access SW1(config-if-range)#switchport access vlan 2
Настроили access порты. Теперь настроим trunk между SW1 и CentrSW.

SW1(config)#interface fastEthernet 0/24 - переходим к настройке 24-ого порта. SW1(config-if)#switchport mode trunk - переводим порт в режим trunk. %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/24, changed state to down %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/24, changed state to up
Сразу видим, что порт перенастроился. В принципе для работы этого достаточно. Но с точки зрения безопасности разрешать для передачи нужно только те VLAN, которые действительно нужны. Приступим.

SW1(config-if)#switchport trunk allowed vlan 2 - разрешаем передавать только 2-ой VLAN.
Без этой команды передаваться будут все имеющиеся VLAN. Посмотрим, как изменилась таблица командой show vlan .


Появился 2-ой VLAN с именем Dir-ya и видим принадлежащие ему порты fa0/1 и fa0/2.

Чтобы вывести только верхнюю таблицу, можно воспользоваться командой show vlan brief .


Можно еще укоротить вывод, если указать определенный ID VLANа.


Или его имя.


Вся информациях о VLAN хранится в flash памяти в файле vlan.dat.


Как вы заметили, ни в одной из команд, нет информации о trunk. Ее можно посмотреть другой командой show interfaces trunk .


Здесь есть информация и о trunk портах, и о том какие VLAN они передают. Еще тут есть столбец Native vlan . Это как раз тот трафик, который не должен тегироваться. Если на коммутатор приходит не тегированный кадр, то он автоматически причисляется к Native Vlan (по умолчанию и в нашем случае это VLAN 1). Native VLAN можно, а многие говорят, что нужно менять в целях безопасности. Для этого в режиме настройки транкового порта нужно применить команду - switchport trunk native vlan X , где X - номер присваиваемого VLAN. В этой топологии мы менять не будем, но знать, как это делать полезно.

Осталось настроить остальные устройства.

CentrSW:
Центральный коммутатор является связующим звеном, а значит он должен знать обо всех VLAN-ах. Поэтому сначала создаем их, а потом переводим все интерфейсы в транковый режим.

CentrSW(config)#vlan 2 CentrSW(config-vlan)# name Dir-ya CentrSW(config)#vlan 3 CentrSW(config-vlan)# name buhgalter CentrSW(config)#vlan 4 CentrSW(config-vlan)# name otdel-kadrov CentrSW(config)#interface range fastEthernet 0/1-3 CentrSW(config-if-range)#switchport mode trunk
Не забываем сохранять конфиг. Команда copy running-config startup-config.

SW2(config)#vlan 3 SW2(config-vlan)#name buhgalter SW2(config)#interface range fastEthernet 0/1-2 SW2(config-if-range)#switchport mode access SW2(config-if-range)#switchport access vlan 3 SW2(config)#interface fastEthernet 0/24 SW2(config-if)#switchport mode trunk SW2(config-if)#switchport trunk allowed vlan 3
SW3:

SW3(config)#vlan 4 SW3(config-vlan)#name otdel kadrov SW3(config)#interface range fastEthernet 0/1-2 SW3(config-if-range)#switchport mode access SW3(config-if-range)#switchport access vlan 4 SW3(config)#interface fastEthernet 0/24 SW3(config-if)#switchport mode trunk SW3(config-if)#switchport trunk allowed vlan 4
Обратите внимание на то, что мы подняли и настроили VLAN, но адресацию узлов оставили такой же. То есть, фактически все узлы в одной подсети, но разделены VLAN-ами. Так делать нельзя. Каждому VLAN надо выделять отдельную подсеть. Я это сделал исключительно в учебных целях. Если бы каждый отдел сидел в своей подсети, то они бы априори были ограничены, так как коммутатор не умеет маршрутизировать трафик из одной подсети в другую (плюс это уже ограничение на сетевом уровне). А нам нужно ограничить отделы на канальном уровне.
Снова отправляю ping с PC1 к PC3.

Идет в ход ARP, который нам и нужен сейчас. Откроем его.

Пока что ничего нового. ARP инкапсулирован в ethernet.

Кадр прилетает на коммутатор и тегируется. Теперь там не обычный ethernet, а 802.1q. Добавились поля, о которых я писал ранее. Это TPID , который равен 8100 и показывающий, что это 802.1q. И TCI , которое объединяет 3 поля PCP, CFI и VID . Число, которое в этом поле - это номер VLAN. Двигаемся дальше.


После тега он отправляет кадр на PC2 (т.к. он в том же VLAN) и на центральный коммутатор по транковому порту.


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


PC1 ожидает ответ, который так и не приходит. Можно под спойлером посмотреть в виде анимации.

Анимация


Теперь следующая ситуация. В состав дирекции нанимают еще одного человека, но в кабинете дирекции нет места и на время просят разместить человека в отделе бухгалтерии. Решаем эту проблему.


Подключили компьютер к порту FastEthernet 0/3 коммутатора и присвою IP-адрес 192.168.1.8/24.
Теперь настрою коммутатор SW2 . Так как компьютер должен находиться во 2-ом VLAN, о котором коммутатор не знает, то создам его на коммутаторе.

SW2(config)#vlan 2 SW2(config-vlan)#name Dir-ya
Дальше настраиваем порт FastEthernet 0/3, который смотрит на PC7.

SW2(config)#interface fastEthernet 0/3 SW2(config-if)#switchport mode access SW2(config-if)#switchport access vlan 2
И последнее - настроить транковый порт.

SW2(config)#interface fastEthernet 0/24 SW2(config-if)#switchport trunk allowed vlan add 2 - обратите внимание на эту команду. А именно на ключевое слово "add". Если не дописать это слово, то вы сотрете все остальные разрешенные к передаче VLAN на этом порту. Поэтому если у вас уже был поднят транк на порту и передавались другие VLAN, то добавлять надо именно так.
Чтобы кадры ходили красиво, подкорректирую центральный коммутатор CentrSW.

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
Время проверки. Отправляю ping с PC1 на PC7.



Пока что весь путь аналогичен предыдущему. Но вот с этого момента (с картинки ниже) центральный коммутатор примет другое решение. Он получает кадр и видит, что тот протегирован 2-ым VLAN-ом. Значит отправлять его надо только туда, где это разрешено, то есть на порт fa0/2.


И вот он приходит на SW2. Открываем и видим, что он еще тегированный. Но следующим узлом стоит компьютер и тег надо снимать. Нажимаем на «Outbound PDU Details», чтобы посмотреть в каком виде кадр вылетит из коммутатора.


И действительно. Коммутатор отправит кадр в «чистом» виде, то есть без тегов.


Доходит ARP до PC7. Открываем его и убеждаемся, что кадр не тегированный PC7 узнал себя и отправляет ответ.


Открываем кадр на коммутаторе и видим, что на отправку он уйдет тегированным. Дальше кадр будет путешествовать тем же путем, что и пришел.



ARP доходит до PC1, о чем свидетельствует галочка на конверте. Теперь ему известен MAC-адрес и он пускает в ход ICMP.


Открываем пакет на коммутаторе и наблюдаем такую же картину. На канальном уровне кадр тегируется коммутатором. Так будет с каждым сообщением.




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

Логика работы VLAN



Вот в принципе самое популярное применение VLAN-ов. Независимо от физического расположения, можно логически объединять узлы в группы, там самым изолируя их от других. Очень удобно, когда сотрудники физически работают в разных местах, но должны быть объединены. И конечно с точки зрения безопасности VLAN не заменимы. Главное, чтобы к сетевым устройствам имели доступ ограниченный круг лиц, но это уже отдельная тема.
Добились ограничения на канальном уровне. Трафик теперь не гуляет где попало, а ходит строго по назначению. Но теперь встает вопрос в том, что отделам между собой нужно общаться. А так как они в разных канальных средах, то в дело вступает маршрутизация. Но перед началом, приведем топологию в порядок. Самое первое к чему приложим руку - это адресация узлов. Повторюсь, что каждый отдел должен находиться в своей подсети. Итого получаем:
  • Дирекция - 192.168.1.0/24
  • Бухгалтерия - 192.168.2.0/24
  • Отдел кадров - 192.168.3.0/24


Раз подсети определены, то сразу адресуем узлы.
  1. PC1:
    IP: 192.168.1.2
    Маска: 255.255.255.0 или /24
    Шлюз: 192.168.1.1
  2. PC2:
    IP: 192.168.1.3
    Маска: 255.255.255.0 или /24
    Шлюз: 192.168.1.1
  3. PC3:
    IP: 192.168.2.2
    Маска: 255.255.255.0 или /24
    Шлюз: 192.168.2.1
  4. PC4:
    IP: 192.168.2.3
    Маска: 255.255.255.0 или /24
    Шлюз: 192.168.2.1
  5. PC5:
    IP: 192.168.3.2
    Маска: 255.255.255.0 или /24
    Шлюз: 192.168.3.1
  6. PC6:
    IP: 192.168.3.3
    Маска: 255.255.255.0 или /24
    Шлюз: 192.168.3.1
  7. PC7:
    IP: 192.168.1.4
    Маска: 255.255.255.0 или /24
    Шлюз: 192.168.1.1
Теперь про изменения в топологии. Видим, что добавился маршрутизатор. Он как раз и будет перекидывать трафик с одного VLAN на другой (иными словами маршрутизировать). Изначально соединения между ним и коммутатором нет, так как интерфейсы выключены.
У узлов добавился такой параметр, как адрес шлюза. Этот адрес они используют, когда надо отправить сообщение узлу, находящемуся в другой подсети. Соответственно у каждой подсети свой шлюз.

Осталось настроить маршрутизатор, и я открываю его CLI. По традиции дам осмысленное имя.

Router(config)#hostname Gateway Gateway(config)#
Далее переходим к настройке интерфейсов.

Gateway(config)#interface fastEthernet 0/0 - переходим к требуемому интерфейсу. Gateway(config-if)#no shutdown - включаем его. %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Теперь внимание! Мы включили интерфейс, но не повесили на него IP-адрес. Дело в том, что от физического интерфейса (fastethernet 0/0) нужен только линк или канал. Роль шлюзов будут выполнять виртуальные интерфейсы или сабинтерфейсы (англ. subinterface). На данный момент 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 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
Маршрутизатор настроен. Переходим к центральному коммутатору и настроим на нем транковый порт, чтобы он пропускал тегированные кадры на маршрутизатор.

CentrSW(config)#interface fastEthernet 0/24 CentrSW(config-if)#switchport mode trunk CentrSW(config-if)#switchport trunk allowed vlan 2,3,4
Конфигурация закончена и переходим к практике. Отправляю ping с PC1 на PC6 (то есть на 192.168.3.3).


PC1 понятия не имеет, кто такой PC6 или 192.168.3.3, но знает, что они находятся в разных подсетях (как он это понимает описано в статье). Поэтому он отправит сообщение через основной шлюз, адрес которого указан в его настройках. И хоть PC1 знает IP-адрес основного шлюза, для полного счастья не хватает MAC-адреса. И он пускает в ход ARP.




Обратите внимание. Как только кадр прибывает на CentrSW, коммутатор не рассылает его кому попало. Он рассылает только на те порты, где разрешен пропуск 2-го VLAN. То есть на маршрутизатор и на SW2 (там есть пользователь, сидящий во 2-ом VLAN).


Маршрутизатор узнает себя и отправляет ответ (показан стрелочкой). И обратите внимание на нижний кадр. Когда SW2 получил ARP от центрального коммутатора, он аналогично не стал рассылать его на все компьютеры, а отправил только PC7, который сидит во 2-ом VLAN. Но PC7 его отбрасывает, так как он не для него. Смотрим дальше.



ARP дошел до PC1. Теперь ему все известно и можно отправлять ICMP. Еще раз обращу внимание на то, что в качестве MAC-адреса назначения (канальный уровень), будет адрес маршрутизатора, а в качестве IP-адреса назначения (сетевой уровень), адрес PC6.




Доходит ICMP до маршрутизатора. Он смотрит в свою таблицу и понимает, что не знает никого под адресом 192.168.3.3. Отбрасывает прибывший ICMP и пускает разведать ARP.





PC6 узнает себя и отправляет ответ.




Доходит до маршрутизатора ответ и он добавляет запись в своей таблице. Посмотреть таблицу ARP можно командой show arp .
Двигаемся дальше. PC1 недоволен, что ему никто не отвечает и отправляет следующее ICMP-сообщение.








На этот раз ICMP доходит без проблем. Обратно он проследует тем же маршрутом. Я лишь покажу конечный результат.


Первый пакет затерялся (в результате работы ARP), а второй дошел без проблем.
Кому интересно увидеть в анимации, добро пожаловать под спойлер.

InterVLAN Routing



Итак. Мы добились того, что если узлы находятся в одной подсети и в одном VLAN, то ходить они будут напрямую через коммутаторы. В случае, когда нужно передать сообщение в другую подсеть и VLAN, то передавать будут через роутер Gateway, который осуществляет «межвлановую» маршрутизацию. Данная топология получила название «router on a stick» или «роутер на палочке» . Как вы поняли она очень удобна. Мы создали 3 виртуальных интерфейса и по одному проводу гоняли разные тегированные кадры. Без использования сабинтерфейсов и VLAN-ов, пришлось бы для каждой подсети задействовать отдельный физический интерфейс, что совсем не выгодно.

Кстати очень хорошо этот вопрос разобран в этом видео (видео идет около 3-х часов, поэтому ссылка с привязкой именно к тому моменту времени). Если после прочтения и просмотра видео захочется добить все собственными руками, прикладываю ссылку на скачивание.

Разобрались с VLAN-ами и переходим к одному из протоколов, работающего с ним.
DTP (англ. Dynamic Trunking Protocol) или на русском динамический транковый протокол - проприетарный протокол компании Cisco, служащий для реализации trunk режима между коммутаторами. Хотя в зависимости от состояния, они могут согласоваться и в режим access.

В DTP есть 4 режима: Dynamic auto, Dynamic desirable, Trunk, Access. Рассмотрим как они согласуются.

Режимы Dynamic auto Dynamic desirable Trunk Access
Dynamic auto Access Trunk Trunk Access
Dynamic desirable Trunk Trunk Trunk Access
Trunk Trunk Trunk Trunk Отсутствие соединения
Access Access Access Отсутствие соединения Access

То есть левая колонка это 1-ое устройство, а верхняя строка 2-ое устройство. По-умолчанию коммутаторы находятся в режиме «dynamic auto». Если посмотреть таблицу сопоставления, то два коммутатора в режиме «dynamic auto» согласуются в режим «access». Давайте это и проверим. Создаю я новую лабораторную работу и добавлю 2 коммутатора.


Соединять их пока не буду. Мне надо убедиться, что оба коммутатора в режиме «dynamic auto». Проверять буду командой show interfaces switchport .


Результат этой команды очень большой, поэтому я его обрезал и выделил интересующие пункты. Начнем с Administrative Mode . Эта строка показывает, в каком из 4-режимов работает данный порт на коммутаторе. Убеждаемся, что на обоих коммутаторах порты в режиме «Dynamic auto». А строка Operational Mode показывает, в каком режиме работы они согласовали работу. Мы пока их не соединяли, поэтому они в состоянии «down».

Сразу дам вам хороший совет. При тестировании какого либо протокола, пользуйтесь фильтрами. Отключайте показ работы всех ненужных вам протоколов.

Перевожу CPT в режим simulation и отфильтрую все протоколы, кроме DTP.



Думаю здесь все понятно. Соединяю коммутаторы кабелем и, при поднятии линков, один из коммутаторов генерирует DTP-сообщение.


Открываю и вижу, что это DTP инкапсулированный в Ethernet-кадр. Отправляет он его на мультикастовый адрес «0100.0ccc.cccc», который относится к протоколам DTP, VTP, CDP.
И обращу внимание на 2 поля в заголовке DTP.

1) DTP Type - сюда отправляющий вставляет предложение. То есть в какой режим он хочет согласоваться. В нашем случае он предлагает согласовать «access».
2) Neighbor MAC-address - в это поле он записывает MAC-адрес своего порта.

Отправляет он и ждет реакции от соседа.


Доходит до SW1 сообщение и он генерирует ответный. Где также согласует режим «access», вставляет свой MAC-адрес и отправляет в путь до SW2.


Успешно доходит DTP. По идее они должны были согласоваться в режиме «access». Проверю.


Как и предполагалось, согласовались они в режим «access».
Кто то говорит, что технология удобная и пользуется ею. Но я крайне не рекомендую использовать этот протокол в своей сети. Рекомендую это не только я, и сейчас объясню почему. Смысл в том, что этот протокол открывает большую дыру в безопасности. Я открою лабораторку, в которой разбиралась работа «Router on a stick» и добавлю туда еще один коммутатор.


Теперь зайду в настройки нового коммутатора и жестко пропишу на порту работу в режиме trunk.

New_SW(config)#interface fastEthernet 0/1 New_SW(config-if)#switchport mode trunk
Соединяю их и смотрю, как они согласовались.


Все верно. Режимы «dynamic auto» и «trunk» согласуются в режим trunk . Теперь ждем, когда кто- то начнет проявлять активность. Допустим PC1 решил кому то отправить сообщение. Формирует ARP и выпускает в сеть.


Пропустим его путь до того момента, когда он попадет на SW2.


И вот самое интересное.


Он отправляет его на вновь подключенный коммутатор. Объясняю, что произошло. Как только мы согласовали с ним trunk, он начинает отправлять ему все пришедшие кадры. Хоть на схеме и показано, что коммутатор отбрасывает кадры, это ничего не значит. К коммутатору или вместо коммутатора можно подключить любое перехватывающее устройство (sniffer) и спокойно просматривать, что творится в сети. Вроде перехватил он безобидный ARP. Но если взглянуть глубже, то можно увидеть, что уже известен MAC-адрес «0000.0C1C.05DD» и IP-адрес «192.168.1.2». То есть PC1 не думая выдал себя. Теперь злоумышленник знает о таком компьютере. Вдобавок он знает, что он сидит во 2-ом VLAN. Дальше он может натворить многого. Самое банальное - это подменить свой MAC-адрес, IP-адрес, согласоваться быстро в Access и и выдавать себя за PC1. Но самое интересное. Ведь сразу можно этого не понять. Обычно, когда мы прописываем режим работы порта, он сразу отображается в конфигурации. Ввожу show running-config .


Но здесь настройки порта пустые. Ввожу show interfaces switchport и проматываю до fa0/4.


А вот здесь видим, что согласован trunk. Не всегда show running-config дает исчерпывающую информацию. Поэтому запоминайте и другие команды.

Думаю понятно почему нельзя доверять этому протоколу. Он вроде облегчает жизнь, но в то же время может создать огромную проблему. Поэтому полагайтесь на ручной метод. При настройке сразу же обозначьте себе какие порты будут работать в режиме trunk, а какие в access. И самое главное - всегда отключайте согласование. Чтобы коммутаторы не пытались ни с кем согласоваться. Делается это командой «switchport nonegotiate».

Переходим к следующему протоколу.

VTP (англ. VLAN Trunking Protocol) - проприетарный протокол компании Cisco, служащий для обмена информацией о VLAN-ах.

Представьте ситуацию, что у вас 40 коммутаторов и 70 VLAN-ов. По хорошему нужно вручную на каждом коммутаторе их создать и прописать на каких trunk-ых портах разрешать передачу. Дело это муторное и долгое. Поэтому эту задачу может взвалить на себя VTP. Вы создаете VLAN на одном коммутаторе, а все остальные синхронизируются с его базой. Взгляните на следующую топологию.


Здесь присутствуют 4 коммутатора. Один из них является VTP-сервером, а 3 остальных клиентами. Те VLAN, которые будут созданы на сервере, автоматически синхронизируются на клиентах. Объясню как работает VTP и что он умеет.

Итак. VTP может создавать, изменять и удалять VLAN. Каждое такое действие влечет к тому, что увеличивается номер ревизии (каждое действие увеличивает номер на +1). После он рассылает объявления, где указан номер ревизии. Клиенты, получившие это объявление, сравнивают свой номер ревизии с пришедшим. И если пришедший номер выше, они синхронизируют свою базу с ней. В противном случае объявление игнорируется.

Но это еще не все. У VTP есть роли. По-умолчанию все коммутаторы работают в роли сервера. Расскажу про них.

  1. VTP Server . Умеет все. То есть создает, изменяет, удаляет VLAN. Если получает объявление, в которых ревизия старше его, то синхронизируется. Постоянно рассылает объявления и ретранслирует от соседей.
  2. VTP Client - Эта роль уже ограничена. Создавать, изменять и удалять VLAN нельзя. Все VLAN получает и синхронизирует от сервера. Периодически сообщает соседям о своей базе VLAN-ов.
  3. VTP Transparent - эта такая независимая роль. Может создавать, изменять и удалять VLAN только в своей базе. Никому ничего не навязывает и ни от кого не принимает. Если получает какое то объявление, передает дальше, но со своей базой не синхронизирует. Если в предыдущих ролях, при каждом изменении увеличивался номер ревизии, то в этом режиме номер ревизии всегда равен 0.
Это все, что касается VTP версии 2. В VTP 3-ей версии добавилась еще одна роль - VTP Off . Он не передает никакие объявления. В остальном работа аналогична режиму Transparent .

Начитались теории и переходим к практике. Проверим, что центральный коммутатор в режиме Server. Вводим команду show vtp status .


Видим, что VTP Operating Mode: Server. Также можно заметить, что версия VTP 2-ая. К сожалению, в CPT 3-ья версия не поддерживается. Версия ревизии нулевая.
Теперь настроим нижние коммутаторы.

SW1(config)#vtp mode client Setting device to VTP CLIENT mode.
Видим сообщение, что устройство перешло в клиентский режим. Остальные настраиваются точно также.

Чтобы устройства смогли обмениваться объявлениями, они должны находиться в одном домене. Причем тут есть особенность. Если устройство (в режиме Server или Client) не состоит ни в одном домене, то при первом полученном объявлении, перейдет в объявленный домен. Если же клиент состоит в каком то домене, то принимать объявления от других доменов не будет. Откроем SW1 и убедимся, что он не состоит ни в одном домене.


Убеждаемся, что тут пусто.

Теперь переходим центральному коммутатору и переведем его в домен.

CentrSW(config)#vtp domain cisadmin.ru Changing VTP domain name from NULL to cisadmin.ru
Видим сообщение, что он перевелся в домен cisadmin.ru.
Проверим статус.


И действительно. Имя домена изменилось. Обратите внимание, что номер ревизии пока что нулевой. Он изменится, как только мы создадим на нем VLAN. Но перед созданием надо перевести симулятор в режим simulation, чтобы посмотреть как он сгенерирует объявления. Создаем 20-ый VLAN и видим следующую картинку.


Как только создан VLAN и увеличился номер ревизии, сервер генерирует объявления. У него их два. Сначала откроем тот, что левее. Это объявление называется «Summary Advertisement» или на русском «сводное объявление». Это объявление генерируется коммутатором раз в 5 минут, где он рассказывает о имени домена и текущей ревизии. Смотрим как выглядит.


В Ethernet-кадре обратите внимание на Destination MAC-адрес. Он такой же, как и выше, когда генерировался DTP. То есть, в нашем случае на него отреагируют только те, у кого запущен VTP. Теперь посмотрим на следующее поле.


Здесь как раз вся информация. Пройдусь по самым важным полям.
  • Management Domain Name - имя самого домена (в данном случае cisadmin.ru).
  • Updater Identity - идентификатор того, кто обновляет. Здесь, как правило, записывается IP-адрес. Но так как адрес коммутатору не присваивали, то поле пустое
  • Update Timestamp - время обновления. Время на коммутаторе не менялось, поэтому там стоит заводское.
  • MD5 Digest - хеш MD5. Оно используется для проверки полномочий. То есть, если на VTP стоит пароль. Мы пароль не меняли, поэтому хэш по-умолчанию.
Теперь посмотрим на следующее генерируемое сообщение (то, что справа). Оно называется «Subset Advertisement» или «подробное объявление». Это такая подробная информация о каждом передаваемом VLAN.
Думаю здесь понятно. Отдельный заголовок для каждого типа VLAN. Список настолько длинный, что не поместился в экран. Но они точно такие, за исключением названий. Заморачивать голову, что означает каждый код не буду. Да и в CPT они тут больше условность.
Смотрим, что происходит дальше.


Получают клиенты объявления. Видят, что номер ревизии выше, чем у них и синхронизируют базу. И отправляют сообщение серверу о том, что база VLAN-ов изменилась.


Принцип работы протокола VTP



Вот так в принципе работает протокол VTP. Но у него есть очень большие минусы. И минусы эти в плане безопасности. Объясню на примере этой же лабораторки. У нас есть центральный коммутатор, на котором создаются VLAN, а потом по мультикасту он их синхронизирует со всеми коммутаторами. В нашем случае он рассказывает про VLAN 20. Предлагаю еще раз глянуть на его конфигурацию.

Обратите внимание. До сервера доходит VTP-сообщение, где номер ревизии выше, чем у него. Он понимает, что сеть изменилась и надо под нее подстроиться. Проверим конфигурацию.


Конфигурация центрального сервера изменилась и теперь он будет вещать именно ее.
А теперь представьте, что у нас не один VLAN, а сотни. Вот таким простым способом можно положить сеть. Конечно домен может быть запаролен и злоумышленнику будет тяжелее нанести вред. А представьте ситуацию, что у вас сломался коммутатор и срочно надо его заменить. Вы или ваш коллега бежите на склад за старым коммутатором и забываете проверить номер ревизии. Он оказывается выше чем у остальных. Что произойдет дальше, вы уже видели. Поэтому я рекомендую не использовать этот протокол. Особенно в больших корпоративных сетях. Если используете VTP 3-ей версии, то смело переводите коммутаторы в режим «Off». Если же используется 2-ая версия, то переводите в режим «Transparent».
  • dtp
  • trunk
  • access
  • Добавить метки Статья раскрывает особенности настройки технологии VLAN на примере конкретного оборудования.

    Доброго времени суток, уважаемый посетитель. Сегодня я, как обычно, по нашей доброй традиции, буду рассказывать кое-что интересное. А рассказ сегодня пойдет про замечательную штуку в локальных сетях под названием VLAN. В природе не мало разновидностей данной технологии, про все рассказывать не будем, а только про те, которые решили бы стоящую перед нашей компанией задачу. Данная технология уже не раз применялась нашими специлистами в нашей практике ИТ аутсорсинга в регионе , Но в этот раз, всё было несколько интереснее, т.к. оборудование с которым пришлось работать - несколько "урезанное" (прошлая похожая задача релизовывалась на коммутаторе D-link DES-1210-28). Но, обо всем по порядку.

    Что же такое VLAN ?

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

    Данная технология позволяет выполнять две задачи:

    1) группировать устройства на канальном уровне (т.е. устройства, находящиеся в одном VLAN’е), хотя физически при этом они могут быть подключены к разным сетевым коммутаторам (расположенным, к примеру, географически отдаленно);

    2) разграничивать устройства (находящиеся в разных VLAN’ах), подключенные к одному коммутатору.

    Иначе говоря, VLAN ‘ы позволяют создавать отдельные широковещательные домены, снижая, тем самым, процент широковещательного трафика в сети.

    Port - Base VLAN

    Port-Base VLAN – представляет собой группу портов или порт в коммутаторе, входящий в один VLAN. Порты в таком VLAN называются не помеченными (не тегированными), это связанно с тем, что кадры приходящие и уходящие с порта не имеют метки или идентификатора. Данную технологию можно описать кратко – VLAN ’ы только в коммутаторе. Эту технологию мы будем рассматривать на управляемом коммутаторе D-link DGS-1100-24.

    IEEE 802.1Q

    IEEE 802.1Q - открытый стандарт, который описывает процедуру тегирования трафика для передачи информации о принадлежности к VLAN. Для этого в тело фрейма помещается тег, содержащий информацию о принадлежности к VLAN’у. Т.к. тег помещается в тело, а не в заголовок фрейма, то устройства, не поддерживающие VLAN’ы, пропускают трафик прозрачно, то есть без учета его привязки к VLAN’у.

    Немного наркомании, а именно - процедура помещения тега в кадр называется – инъекция.

    Размер тега - 4 байта. Он состоит из таких полей:

    • Tag Protocol Identifier (TPID, идентификатор протокола тегирования). Размер поля - 16 бит. Указывает какой протокол используется для тегирования. Для 802.1Q используется значение 0x8100.
    • Priority (приоритет). Размер поля - 3 бита. Используется стандартом IEEE 802.1p для задания приоритета передаваемого трафика.
    • Canonical Format Indicator (CFI, индикатор канонического формата). Размер поля - 1 бит. Указывает на формат MAC-адреса. 0 - канонический, 1 - не канонический. CFI используется для совместимости между сетями Ethernet и Token Ring.
    • VLAN Identifier (VID, идентификатор VLAN). Размер поля - 12 бит. Указывает какому VLAN принадлежит фрейм. Диапазон возможных значений от 0 до 4095.

    Порты в 802.1Q

    Порты могут быть в одном из следующих режимов:

    • Tagged port (в терминологии CISCO - trunk-port) - порт пропускает пакеты маркированные указанными номерами VLAN, но при этом сам никак не маркирует пакеты
    • Untagged port (в терминологии CISCO - access-port) - порт прозрачно пропускает немаркированный трафик для указанных VLAN, если трафик уходит в другие порты коммутатора за пределы указанного VLAN, то там он уже виден как маркированный номером этой VLAN.
    • Порт не принадлежит никаким VLAN и не учувствует в работе коммутатора

    Пример. Имеется офисное помещение, в котором отдел кадров разделен на два этажа, нужно, чтобы сотрудники были отделены от общей сети. Имеется два коммутатора. Создадим VLAN 3 на одном и втором, порты, которые будут в одном из VLAN укажем как Untagget Port. Для того, чтобы коммутаторы понимали в какой VLAN адресуется кадр, нужен порт, через который будет пересылаться трафик в этот же VLAN другого коммутатора. Выделим, к примеру, один порт и укажем его как Tagget. Если у нас, помимо VLAN 3, есть еще и другие, и ПК-1 расположенный в VLAN 3 будет искать ПК-2, то широковещательный трафик не будет «ходить» по всей сети, а только в VLAN 3. Прибежавший кадр будет пропускаться через MAC-таблицу, если же адрес получателя не будет найдет, такой кадр будет отправлен через все порты такого VLAN откуда он прибежал и порт Tagget с меткой VLAN, чтобы другой коммутатор воспроизвел широковещание на ту группу портов, которые указаны в поле VID. Данный пример описывает VLAN – один порт может быть только в одном VLAN.

    IEEE 802.1 ad

    802.1ad - это открытый стандарт (аналогично 802.1q), описывающий двойной тег. Также известен как Q-in-Q, или Stacked VLANs. Основное отличие от предыдущего стандарта - это наличие двух VLAN’ов - внешнего и внутреннего, что позволяет разбивать сеть не на 4095 VLAN’ов, а на 4095х4095.

    Сценарии могут быть различны – провайдеру надо “пробросить” транк клиента, не затрагивая схему нумерации VLAN’ов, надо балансировать нагрузку между субинтерфейсами внутри сети провайдера, либо просто – маловато номеров. Самое простое – сделать ещё одну такую же метку (tag).

    Асимметричный VLAN

    В терминологиях D-Link, а также в настройках VLAN, есть понятие асимметричный VLAN – это такой VLAN, в котором один порт может быть в нескольких VLAN.

    Состояние портов меняется

    • Tagged порты работают прежним образом
    • Появляется возможность назначать как Untagged несколько портов на несколько VLAN. Т.е. один порт сразу работает в нескольких VLAN как Untagged
    • У каждого порта появляется еще один параметр PVID - это VLAN ID, которым маркируется трафик с этого порта, если он уходит на Tagged порты и за пределы коммутатора. У каждого порта может быть только один PVID

    Таким образом, мы получаем то, что внутри устройства один порт может принадлежать сразу нескольким VLAN, но при этом, уходящий в tagged (TRUNK) порт, трафик будет маркироваться номером, который мы задаем в PVID.

    Ограничение: Функция IGMP Snooping не работает при использовании асимметричных VLAN.

    Создание VLAN на D- link DGS-1100-24.

    Что имеется. Два коммутатора, один из них D-link DGS-1100-24, к нему подключен коммутатор №2. В коммутатор №2 подключены машины пользователей – абсолютно всех, а также сервера, шлюз по умолчанию и сетевое хранилище.

    Задача. Ограничить отдел кадров от общей среды, так, чтобы при этом были доступны сервера, шлюз и сетевое хранилище.

    Ко всему прочему, коммутатор D-link DGS-1100-24 только что вынули из коробки. По умолчанию большинство управляемых коммутаторов компании D-Link имеют адрес 10.90.90.90/8. Нас не интересует физическое нахождение у коммутатора или смена адреса. Существует специальная утилита D-Link SmartConsole Utility, которая помогает найти наше устройство по сети. После установки запускаем утилиту.

    Прежде чем переходить к настройке, переключим порты должным образом:

    1) Переключим порт отдела кадров с коммутатора №2 в коммутатор №1

    2) Переключим сервера, шлюз и сетевое хранилище с коммутатора №2 в коммутатор №1

    3) Подключим коммутатор №2 в коммутатор №1

    После такого переключения видим следующую картину: сервера, шлюз, сетевое хранилище и отдел кадров подключены в коммутатор №1, а все остальные пользователи в коммутатор №2.

    Жмем кнопку «Discovery»

    Ставим галочку и жмем значок шестеренки, открывается окно настройки коммутатора. После задания адреса, маски и шлюза, пишем пароль, который по умолчанию admin.

    Жмем «Add VLAN» и указываем имя VLAN и порты

    Жмем «Apply»

    После создания нужных VLAN, сохраним настройку, для этого нажмем «Save», «Save configuration»

    Итак, мы видим, что VLAN 3 не имеет доступа к портам 01-08, 15-24 – следовательно, не имеет доступ к серверам, шлюзу, сетевому хранилищу, к VLAN2 и остальным клиентам – которые подключены к коммутатору №2. Тем не менее VLAN 2 имеет доступ к серверам, шлюзу, сетевому хранилищу, но не имеет к остальным машинам. И наконец, все остальные машины видят сервера, шлюз, сетевое хранилище, но не видят порты 05,06.]

    Таким образом, при наличии определенных знананий об особенностях оборудования и навыков ИТ-аутсорсинга , можно удовлетворить потребности клиента даже на таком бюджетном оборудовании как коммутатор D-Link DGS1100-24 .

    Все, люди, Мир Вам!

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

    Итак, помните, мы с вами говорили о таком понятии как ? Думаю помните. Так же мы с вами говорили о том, что адреса бывают нескольких видов: .

    Исходя из этого сделаем еще одно вводное понятие. Широковещательный домен. Что он из себя представляет?

    Если посылается фрейм/пакет, широковещательный (если это фрейм то поле Destination Address все биты равны единицы, или в 16-ом виде MAC адрес будет равен: FF FF FF FF FF FF), то этот фрейм будет переправлен во все порты коммутатора, исключая того, с которого был получен данный фрейм. Это произойдет в случае, когда например коммутатор у нас не управляемый, или если управляемый, но все находятся в одном VLAN (об этом позже).
    Вот такой список устройств, который получает эти широковещательные фреймы и называются — широковещательным доменом.

    Теперь определимся, а что же такое VLAN ?

    VLAN — Virtual Local Area Network, т.е. некая виртуальная сеть. Для чего же она нужна?

    VLAN позволяет разделить нам широковещательные домены в одном коммутаторе. Т.е. если у нас есть один коммутатор, мы одни порты отнесем к одному VLAN, другой к другому. И это у нас будут два разный broadcast domen. Конечно же этим не ограничиваются возможности. О них я буду рассказывать дальше, все постепенно.

    Если кратко сказать, то VLAN позволяет администратору более гибко создавать сеть, разбивая ее, на некоторые подсети (например сеть бухгалтеров, сеть менеджеров, и так далее), иными словами VLAN помогает объеденить устройства с каким-то общим набором требований в единую группу, и отделить ее от других таких же обособленных групп.

    Сразу оговорюсь, что VLAN работают на уровне OSI Layer 2.
    Вспомним, когда рассматривали кадр , то никакого поля для VLAN там не было. Как же тогда определить, к какому VLAN относится тот или иной фрейм?

    Существует несколько стандартов.

    1. IEEE 802.1Q — этот стандарт является открытым. Этот стандарт помечает тот или иной фрейм, который «привязан» к какому-то VLAN тэгированием.
    Тэгирование это функция коммутатора (или любого другого устройства, которое «понимает» VLAN), которая вставляет в фрейм ethernet некий тэг, состоящий из 4 байт. Процедура тэгирования не меняет данные заголовка, таким образом, оборудование, которое не поддерживает технологию VLAN, может без проблем передавать такой фрейм дальше по сети, сохраняя тэг.

    Вот так будет выглядеть фрейм, после вставки тэга VLAN.

    Исходя их рисунка, видим, что VLAN tag состоит из 4 полей, опишим их:

    — 2 байта Tag Protocol Identifier (TPID) — это идентификатор протокола, в нашем случае это 802.1Q, в 16-ом виде это поле будет выглядеть как: 0x8100.

    — Priority — поле для задания приоритета по стандарту 802.1p (о нем в следующих статьях). Размер этого поля составляет 3 бита (8 значений 0-7).

    — Canonical Format Indicator (CFI). Индикатор канонического формата, размер этого поля составляет 1 бит. Это поле указывает на формат mac адреса (1 — кононический, 0 не канонический.)

    — VLAN ID, собственно это то, ради чего мы сегодня собрались 🙂 Идентификатор VLAN. Размер поля 12 бит, может принимать значение от 0 до 4095.

    При использовании VLAN (тэгирования) по стандарту 802.1Q вносятся изменения в фрейм, следовательно необходимо пересчитать FCS значение, что собственно и делается коммутатором.

    В стандарте 802.1Q есть такое понятие как Native VLAN, по умолчанию Native VLAN ID равен единицы (можно менять), Native VLAN характеризуется тем, что этот VLAN не тэгируется.

    2. Inter-switch-link (ISL). Протокол, разработанный компанией Cisco и может использоваться только на своем оборудовании.
    Этот протокол был разработан еще до принятия 802.1Q.
    В настоящее время ISL уже не поддерживается на новом оборудовании, но тем не менее, вы можете столкнуться с работой этого протокола, поэтому нам необходимо с ним ознакомиться.

    В отличии от 802.1Q, где осуществлялось простое тэгирование кадра (вставка 4 байт внутрь фрейма), здесь используется технология инкапсуляции, тоесть добавляется некий заголовок, в котором содержится информация о VLAN. VLAN ISL, в отличии от 802.1Q поддерживает до 1000 VLAN.

    Рассмотрим фрейм в графическом виде, как же выглядит эта инкапсуляция.

    Здесь мы можем сразу увидеть первый и пожалуй самый основной недостаток ISL — это увеличение кадра на 30 байт (26 байт заголовок и 4 байта FCS).

    Рассмотрим ISL Header более подробно, посмотрим, что же там хранится в стольки то байтах!

    • Destination Address (DA) — адрес получателя, здесь указывается специальный мультикаст адрес, который и говорит о том, что используется кадр инкапсулирован с помощью ISL. Мультикаст адрес может быть 0x01-00-0C-00-00 или 0x03-00-0c-00-00.
    • Type — длина поля 4 бита, указывает протокол, который инкапсулирован в фрейм. Может принимать несколько значений:

    0000 — Ethernet
    0001 — Token-Ring
    0010 — FDDI
    0011 — ATM

    В нашем случае так как мы рассматриваем Ethernet , то это значение будет равен всем 0.

    • USER — некий такой «урезанный» аналог поля Priority в 802.1Q, служит для задания приоритета кадру. Хоть и поле занимает 4 бита, может принимать 4 значения (в 802.1Q — 8).
    • Source Address (SA) — адрес источника, на это место подставляется значение MAC адреса порта, с которого был отправлен данный инкапсулированный фрейм.
    • LEN — длина фрейма. Здесь не учитываются такие поля как: DA,TYPE,USER,SA,LEN,FCS. Таким образом получается что это значение равно инкапсулированному кадру — 18 байт.
    • AAAA03 (SNAP) — SNAP и LLC (данное поле содержит значение AAAA03).
    • HSA — High Bits of Source Address — 3 старшие байта MAC адреса (помним что в этих байтах содержится код производителя), для Cisco это 00-00-0C
    • VLAN — наконец-то добрались до самого главного поля. Здесь собственно указывается идентификатор VLAN. Поле имеет размер в 15 бит.
    • BPDU — Bridge Protocol Data Unit и Cisco Discovery Protocol. Поле для протоколов BPDU и CDP. Что это и для чего, мы познакомимся в следующих статьях.
    • INDX — Index, указывается индекс порта отправителя, используется в диагностических целях.
    • RES — Reserved for Token Ring and FDDI. Резервное поле для Token Ring и FDDI. Поле имеет 16 битный размер. Если используется протокол ethernet то в это поле помещаются все нули.
    • Encapsulated Frame — это обычный фрейм который был инкапсулирован. В данном фрейме есть сови собственные поля, такие как DA,SA, LEN, FCS и так далее.
    • FCS — собственный ISL FCS (так как кадр полностью меняется, нужна новая проверка фрейма, последние 4 байта для этого и предназначены).

    Можно сделать некоторые выводы, в пользую 802.1Q.

    1. Тэгирование добавляет к кадру всего 4 байта, в отличие от ISL (30 байт).
    2. 802.1Q поддерживается на любом оборудовании, которое поддерживает VLAN, тогда как ISL работает только на устройствах Cisco, и далеко не всех.

    В этой статье мы кратко ознакомились с понятием VLAN. Дальше будем разбираться в деталях.

    Реализация VLAN в устройствах CISCO

    В устройствах Cisco , протокол VTP (VLAN Trunking Protocol) предусматривает VLAN-домены для упрощения администрирования. VTP также выполняет «чистку» трафика, направляя VLAN трафик только на те коммутаторы, которые имеют целевые VLAN-порты (функция VTP pruning). Коммутаторы Cisco в основном используют протокол 802.1Q Trunk вместо устаревшего проприетарного ISL (Inter-Switch Link) для обеспечения совместимости информации.

    По умолчанию на каждом порту коммутатора имеется сеть VLAN1 или VLAN управления. Сеть управления не может быть удалена, однако могут быть созданы дополнительные сети VLAN и этим альтернативным VLAN могут быть дополнительно назначены порты.

    Native VLAN - это параметр каждого порта, который определяет номер VLAN, который получают все непомеченные (untagged) пакеты.

    Обозначение членства в VLAN

    Для этого существуют следующие решения:

    • по порту (Port-based, 802.1Q): порту коммутатора вручную назначается одна VLAN. В случае, если одному порту должны соответствовать несколько VLAN (например, если соединение VLAN проходит через несколько свитчей), то этот порт должен быть членом транка . Только одна VLAN может получать все пакеты, не отнесённые ни к одной VLAN (в терминологии 3Com , Planet, D-Link , Zyxel , HP - untagged , в терминологии Cisco - native VLAN ). Свитч будет добавлять метки данной VLAN ко всем принятым кадрам не имеющим никаких меток. VLAN, построенные на базе портов, имеют некоторые ограничения.
    • по MAC-адресу (MAC-based): членство в VLANe основывается на MAC-адресе рабочей станции . В таком случае свитч имеет таблицу MAC-адресов всех устройств вместе с VLANами, к которым они принадлежат.
    • по протоколу (Protocol-based): данные 3-4 уровня в заголовке пакета используются чтобы определить членство в VLANe. Например, -машины могут быть переведены в первую VLAN, а AppleTalk -машины во вторую. Основной недостаток этого метода в том, что он нарушает независимость уровней, поэтому, например, переход с IPv4 на IPv6 приведет к нарушению работоспособности сети.
    • методом аутентификации (Authentication based): устройства могут быть автоматически перемещены в VLAN основываясь на данных аутентификации пользователя или устройства при использовании протокола 802.1x .

    Преимущества

    • Облегчается перемещение, добавление устройств и изменение их соединений друг с другом.
    • Достигается большая степень административного контроля вследствие наличия устройства, осуществляющего между сетями VLAN маршрутизацию на 3-м уровне.
    • Уменьшается потребление полосы пропускания по сравнению с ситуацией одного широковещательного домена.
    • Сокращается непроизводственное использование CPU за счет сокращения пересылки широковещательных сообщений.
    • Предотвращение широковещательных штормов и предотвращение петель.

    См. также

    Источники

    • Эндрю Таненбаум , 2003, «Computer Networks», Pearson Education International, New Jersey.

    Ссылки

    • IEEE’s 802.1Q standard 1998 version (2003 version)(2005 version)
    • OpenWRT guide to VLANs : Provides a good beginners guide to all VLANS
    • Some FAQ about the VLANs
    • VLAN на Xgu.ru - подробная информация о настройке и использовании VLAN в активном сетевом оборудовании Cisco и HP ProCurve и в операционных системах Linux и FreeBSD
    • Виртуальные Локальные Сети: VLAN на примере Cisco Catalyst
    • Возможности современных коммутаторов по организации виртуальных сетей

    Wikimedia Foundation . 2010 .

    Смотреть что такое "VLAN" в других словарях:

      vlan - vlan … Dictionnaire des rimes

      - (от англ. Virtual Local Area Network) виртуальная локальная вычислительная сеть, известная так же как VLAN, представляет собой группу хостов с общим набором требований, которые взаимодействуют так, как если бы они были подключены к… … Википедия

      vlan - [ vlɑ̃ ] interj. 1803; onomat. ♦ Onomatopée imitant un bruit fort et sec. « Patatras ! vlan ! pif ! paf ! boum ! » (A. Daudet). Fig. (parole brutale) Et vlan ! dans les gencives (cf. Et toc). ⇒VLAN, onomat. et subst. masc. I. Onomat. }