Технологии VLAN. Что такое VLAN

К сожалению, многие современные предприятия и организации практически не используют такую полезную, а часто просто необходимую возможность, предоставляемую большинством современных коммутаторов локальных вычислительных сетей (ЛВС), как организация виртуальных ЛВС (ВЛВС, VLAN) в рамках сетевой инфраструктуры. Трудно сказать, чем это вызвано. Возможно, недостатком информации о преимуществах, предоставляемых технологией VLAN, ее кажущейся сложностью, или нежеланием использовать “сырое” средство, не гарантирующее интероперабельность между сетевыми устройствами различных производителей (хотя технология VLAN уже год как стандартизована, и все ведущие производители активного сетевого оборудования поддерживают этот стандарт). Поэтому данная статья посвящена технологии VLAN. В ней будут рассмотрены преимущества от использования VLAN, наиболее распространенные способы организации VLAN и взаимодействия между ними, а также особенности построения VLAN при использовании коммутаторов некоторых известных производителей.

зачем это нужно

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

Использование VLAN дает три основных преимущества. Это значительно более эффективное использование пропускной способности, чем в традиционных ЛВС, повышенный уровень защиты передаваемой информации от несанкционированного доступа и упрощение сетевого администрирования.

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

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

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

способы организации VLAN

Ведущие производители коммутаторов уровня отдела и рабочей группы используют в своих устройствах, как правило, один из трех способов организации VLAN: на базе портов, МАС-адресов или протоколов третьего уровня. Каждый из этих способов соответствует одному из трех нижних уровней модели взаимодействия открытых систем OSI: физическому, канальному и сетевому соответственно. Существует четвертый способ организации VLAN - на основе правил. В настоящее время он используется редко, хотя обеспечивает большую гибкость при организации VLAN, и, возможно, будет широко использоваться в устройствах ближайшего будущего. Давайте вкратце рассмотрим каждый из перечисленных выше способов организации VLAN, их достоинства и недостатки.

VLAN на базе портов. Как следует из названия способа, VLAN организуются путем логического объединения выбранных физических портов коммутатора. Например, сетевой администратор может указать, что порты коммутатора с номерами 1, 2, 5 образуют VLAN1, а порты с номерами 3, 4, 6 образуют VLAN2 и т.д.. К одному порту коммутатора может быть подключено несколько компьютеров (например, через хаб). Все они будут принадлежать к одной VLAN - к той, к которой приписан обслуживающий их порт коммутатора. Такая жесткая привязка членства в VLAN является недостатком способа организации виртуальных сетей на базе портов.

VLAN на базе МАС-адресов. Этот способ позволяет строить VLAN, основываясь на уникальном шестнадцатеричном адресе канального уровня, который имеет каждый сетевой адаптер сервера или рабочей станции сети. Это более гибкий способ организации VLAN по сравнению с предыдущим, так как к одному порту коммутатора могут быть подключены устройства, принадлежащие к разным VLAN. Кроме того, перемещения компьютеров с одного порта коммутатора на другой отслеживаются коммутатором автоматически и позволяют сохранить принадлежность переместившегося компьютера к определенной VLAN без вмешательства сетевого администратора. Действует это довольно просто: коммутатор поддерживает таблицу соответствия МАС-адресов компьютеров виртуальным сетям. Как только компьютер переключается на другой порт коммутатора, сравнивая поле МАС-адреса отправителя в заголовке первого переданного после перемещения компьютером кадра с данными своей таблицы, коммутатор делает правильный вывод о принадлежности переместившегося компьютера к VLAN. Недостатком данного способа организации VLAN является изначальная трудоемкость конфигурирования VLAN, которая чревата ошибками. Хотя таблица МАС-адресов коммутаторами строится автоматически, сетевому администратору нужно всю ее просмотреть и определить, что данный шестнадцатеричный адрес МАС соответствует такой-то рабочей станции, после чего приписать его к соответствующей виртуальной сети. Правда, последующая реконфигурация VLAN на базе МАС-адресов потребует значительно меньше усилий, чем в случае VLAN на базе портов.

VLAN на базе протоколов третьего уровня. Данный способ редко используется в коммутаторах уровня отдела и рабочей группы. Он характерен для магистральных маршрутизирующих коммутаторов, имеющих встроенные средства маршрутизации основных протоколов ЛВС - IP, IPX и AppleTalk. Согласно этому способу, группа портов коммутатора, принадлежащих к определенной VLAN, ассоциируется с определенной подсетью IP или сетью IPX. Гибкость здесь обеспечивается тем, что перемещения пользователя на другой порт, принадлежащий той же VLAN, отслеживается коммутатором и не требует его переконфигурации. Преимуществом данного способа является также простота конфигурации VLAN, которая может осуществляться автоматически, поскольку коммутатор анализирует сетевые адреса компьютеров, соотносимых с каждой VLAN. К тому же, как уже упоминалось, поддерживающие способ организации VLAN на базе протоколов третьего уровня устройства имеют встроенные средства маршрутизации, что обеспечивает возможность взаимодействия между различными VLAN без использования дополнительных средств. Недостаток у этого способа, пожалуй, всего один - высокая цена коммутаторов, в которых он реализован.

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

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

построение распределенных VLAN

Современные ЛВС нередко содержат более одного коммутатора. Принадлежащие к одной VLAN компьютеры могут быть подключены к разным коммутаторам. Таким образом, чтобы правильно направлять трафик, должен существовать механизм, позволяющий коммутаторам обмениваться информацией о принадлежности подключенных к ним устройств к VLAN. Раньше каждый производитель в своих устройствах реализовывал фирменные механизмы обмена такой информацией. Например, у 3Com эта технология носила название VLT (Virtual LAN Trunk), у Cisco Systems - ISL (Inter-Switch Link). Поэтому для построения распределенных VLAN необходимо было использовать устройства от одного производителя. Ситуация коренным образом улучшилась, когда был принят стандарт на построение тегированных VLAN - IEEE 802.1Q, который сайчас и господствует в мире VLAN. Помимо всего прочего, он регламентирует и механизм обмена информацией о VLAN между коммутаторами. Этот механизм позволяет дополнять передаваемые между коммутаторами кадры полями, указывающими на принадлежность к той или иной VLAN. На сегодняшний день все ведущие производители коммутаторов ЛВС поддерживают в своих устройствах стандарт 802.1Q. Следовательно, сегодня уже можно строить виртуальные сети, используя коммутаторы от разных производителей. Хотя, как вы увидите позже, даже работая в соответствии с 802.1Q, коммутаторы разных производителей предоставляют далеко не одинаковые возможности по организации VLAN.

организация взаимодействия между VLAN

Находящиеся в разных VLAN компьютеры не могут непосредственно взаимодействовать друг с другом. Для организации такого взаимодействия необходимо использовать маршрутизатор. Раньше для этого использовались обычные маршрутизаторы. Причем требовалось, чтобы маршрутизатор имел столько физических сетевых интерфейсов, сколько имеется VLAN. Помимо этого, на коммутаторах приходилось выделять по одному порту из каждой VLAN для подключения маршрутизатора. Учитывая дороговизну портов маршрутизатора, стоимость такого решения была очень высокой. Кроме того, обычный маршрутизатор вносил существенную задержку в передачу данных между VLAN. Сегодня для передачи данных между VLAN используют маршрутизирующие коммутаторы, которые имеют невысокую цену за порт и осуществляют аппаратную маршрутизацию трафика со скоростью работы канала связи. Маршрутизирующие коммутаторы также соответствуют стандарту IEEE 802.1Q, и для организации взаимодействия между распределенными VLAN им необходимо использовать всего по одному порту для подключения каждого из коммутаторов рабочих групп, осуществляющих подключение к сети устройств, соответствующих разным VLAN. Иными словами, через один порт современного маршрутизирующего коммутатора может происходить обмен информацией между устройствами из разных VLAN.

использование общих сетевых ресурсов компьютерами разных VLAN

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

Самый простой способ дать доступ к одному серверу пользователям из разных VLAN - это установить в сервер несколько сетевых адаптеров и подключить каждый из этих адаптеров к портам коммутатора, принадлежащим разным VLAN. Однако такой подход имеет ограничение по количеству VLAN (в сервер нельзя установить много сетевых адаптеров), предъявляет строгие требования к компонентам сервера (драйверы сетевых адаптеров требуют увеличения количества ОЗУ, создается большая нагрузка на ЦПУ и шину ввода-вывода сервера и т.д.) и не способствует экономии денежных средств (использование нескольких сетевых адаптеров и дополнительных портов коммутатора).

С появлением стандарта IEEE 802.1Q стало возможным через один порт коммутатора передавать информацию, относящуюся ко всем или нескольким VLAN. Как уже упоминалось выше, для этого в передаваемый по сети кадр коммутатор (или другое устройство, поддерживающее 802.1Q) добавляет поле, однозначно определяющее принадлежность кадра к определенной VLAN. К такому порту как раз можно подключить всего одной линией связи общий для всех VLAN сервер. Единственное условие при этом - сетевой адаптер сервера должен поддерживать стандарт 802.1Q, чтобы сервер мог знать, из какой VLAN пришел запрос и, соответственно, куда направить ответ. Так реализуется разделение сервера между VLAN в управляемых коммутаторах уровня отдела и рабочей группы у 3Com, Hewlett-Packard и Cisco Systems.

заключение

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

Олег Подуков, начальник технического отдела Компании «КОМПЛИТ»


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. Давайте уже начнем говорить про нее.

В 3-ей части я показал, как выглядит 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». Добавить метки

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

Данный материал является своего рода «вступительным словом», и здесь мы рассмотрим, что такое VLAN и как технология VLAN помогает в настройке сети.

Vlan: что это такое?

VLAN – технология, позволяющая сконфигурировать несколько виртуальных широковещательных доменов в рамках одного физического широковещательного домена.

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

В таком случае решаются одновременно несколько проблем:

  • - уменьшается количество широковещательных запросов, ;
  • - улучшается , т.к. исключается возможность прослушивания трафика сторонними сотрудниками, не входящими в данный конкретный VLAN;
  • - появляется возможность территориально разнести разные отделы и подразделения по признаку принадлежности. То есть, например, сотрудники Отдела кадров, не находясь в одном здании, смогут «видеть» друг друга в рамках своей подсети.

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

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

Для чего нужен vlan?

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

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

Технология VLAN также помогает создать несколько сетей 3-го уровня модели OSI в одной физической инфраструктуре. Например, если , раздающий ip-адреса, включен в коммутатор в определенном VLAN – устройства будут получать адреса только в рамках данного VLAN. Если же DHCP-сервер включен транком с набором из нескольких VLAN – устройства из всех этих VLAN смогут получить адреса.

VLAN работает на 2-м, канальном, уровне сетевой модели OSI, аналогично IP-подсетям, которые оперируют на 3-м, сетевом, уровне. Обычно каждому VLAN соответствует своя IP-подсеть, хотя бывают и исключения, когда в одном VLAN могут существовать несколько разных подсетей. Такая технология у Cisco известна как «ip secondary», а в Linux как «ip alias».

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

Технология VLAN предоставляет гибкую адаптацию к изменениям в сети и упрощает администрирование.

Примеры использования vlan

Пример разделения сети на несколько VLAN по сегментам в зависимости от ролей и используемых технологий:

  1. 1) Продуктивный VLAN
  2. 2) VoIP
  3. 3) Управление сетью
  4. 4) SAN – сеть хранилищ данных
  5. 5) Гостевая сеть
  6. 6) DMZ-зоны
  7. 7) Разделение клиентов (в случае с сервис провайдером или дата-центром)

Наиболее часто используемым стандартом для конфигурации VLAN является IEEE 802.1Q, в то время как Cisco имеет свой собственный стандарт ISL, а 3Com – VLT. И IEEE 802.1Q и ISL имеют схожий механизм работы, называемый “явным тегированием” – фрейм данных тегируется информацией о принадлежности к VLAN. Отличие между ними в том, что ISL использует внешний процесс тегирования без модификации оригинального Ethernet-фрейма, а 802.1Q – внутренний, с модификацией фрейма.

VLAN (Virtual Local Area Network, виртуальная локальная вычислительная сеть) - это функция в роутерах и коммутаторах, позволяющая на одном физическом сетевом интерфейсе (Ethernet, Wi-Fi интерфейсе) создать несколько виртуальных локальных сетей.

VLAN является частью большего LAN . Простейший механизм изоляции различных подсетей на Что такое Ethernet , WI-FI интерфейсах. Для того, чтобы организовывать VLAN, сетевой коммутатор (Как выбрать сетевой коммутатор (свитч, свич, англ. switch)) должен поддерживать технологию VLAN и протокол 802.1q.

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

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

    уменьшает усилия администраторов на создание подсетей;

    уменьшает количество оборудования, так как сети могут быть разделены логически, а не физически;

    улучшает управление различными типами трафика.

Термины VLAN

    Что такое Native VLAN - это понятие в стандарте 802.1Q, которое обозначает VLAN на коммутаторе, где все кадры идут без тэга, т.е. трафик передается нетегированным. По умолчанию это VLAN 1. В некоторых моделях коммутаторов, например, cisco, это можно изменить, указав другой VLAN как native.

    Термин untagged : только одна VLAN может получать все пакеты, не отнесённые ни к одной VLAN (в терминологии 3Com, Planet, Zyxel - untagged , в терминологии Cisco - native VLAN ). Свитч будет добавлять метки данной VLAN ко всем принятым кадрам не имеющих никаких меток.

    Транк VLAN - это физический канал, по которому передается несколько VLAN каналов, которые различаются тегами (метками, добавляемыми в пакеты). Транки обычно создаются между «тегированными портами» VLAN-устройств: свитч-свитч или свитч-маршрутизатор. (В документах Cisco термином «транк» также называют объединение нескольких физических каналов в один логический: Link Aggregation, Port Trunking). Маршрутизатор (свитч третьего уровня) выступает в роли магистрального ядра сети (backbone) для сетевого трафика разных VLAN.

    Сказать проще, vlan – это логический канал внутри физического канала (кабеля), а trunk это множество логических каналов (vlan`ов) внутри одного физического канала (кабеля) .

Сети VLAN могут быть определены по:

    Порту (наиболее частое использование). VLAN, базирующиеся на номере порта позволяют определить конкретный порт в VLAN. Порты могут быть определены индивидуально, по группам, по целым рядам и даже в разных коммутаторах через транковый протокол. Это наиболее простой и часто используемый метод определения VLAN. Это наиболее частое применение внедрения VLAN, построенной на портах, когда рабочие станции используют протокол Динамической Настройки TCP/IP (DHCP). Ниже рисунок VLAN на основе портов:

    MAC -адрес - адресу (очень редко). VLAN, базирующиеся на MAC адресах позволяет пользователям находиться в той же VLAN, даже если пользователь перемещается с одного места на другое. Этот метод требует, чтобы администратор определил MAC адрес каждой рабочей станции и затем внес эту информацию в коммутатор. Этот метод может вызвать большие трудности при поиске неисправностей, если пользователь изменил MAC адрес. Любые изменения в конфигурации должны быть согласованы с сетевым администратором, что может вызывать административные задержки.

    Идентификатору пользователя User ID (очень редко)

VLAN Linux и D-Link DGS-1100-08P

Настройка DGS-1100-08P . Подключимся к нему в первый порт. Присвоим ему IP 10.90.91.2. Создадим 3 VLAN: vlan1 (порт 1 (tagged)) для служебного использования, то есть только для настройки коммутатора, vlan22(порт 1 (tagged); порты 2,3,4 (untagged)), vlan35(порт 1 (tagged); порты 5,6 (untagged)). Порты 7,8 не используются и выключены через меню Port Settings(Speed: Disabled).
Укажем, что в дальнейшем управлять D-Link DGS-1100-08P (IP 10.90.91.2) можно управлять только через vlan1, то есть в нашем случае системный администратор должен подключиться в первый порт DGS-1100-08P(При подключении в иной порт - коммутатор не разрешит доступ к 10.90.91.2).

    Создать VLAN с именем vlan22 привязанный к порту сетевой карты eth4. Присвоим ему IP:192.168.122.254. ip link add link eth4 name vlan22 type vlan id 22 ip addr add 192.168.122.254/ 24 dev vlan22 ifconfig vlan22 up

    Служебный vlan только для настройки коммутатора:

    ip link add link eth4 name vlan44 type vlan id 1 ip addr add 10.90.91.254/ 24 dev vlan44 ifconfig vlan44 up ip link add link eth4 name vlan35 type vlan id 35 ip addr add 192.168.35.254/ 24 dev vlan34 ifconfig vlan35 up
  • Параметры созданных vlan смотрим в файлах ls -l / proc/ net/ vlan/ итого 0 -rw------- 1 root root 0 Авг 17 15 :06 config -rw------- 1 root root 0 Авг 17 15 :06 vlan1 -rw------- 1 root root 0 Авг 17 15 :06 vlan22

    Создание vlan через vconfig и автоматическая загрузка через /etc/network/interfaces не заработала, потому создаем запускной файлик и прописываем в атозагрузку сервера. vlan_create.sh #!/bin/sh -e ip link add link eth4 name vlan22 type vlan id 22 ip addr add 192.168.122.254/ 24 dev vlan22 ifconfig vlan22 up

VLAN (от англ. Virtual Local Area Network) – логическая («виртуальная») локальная компьютерная сеть, имеющая те же свойства, что и физическая локальная сеть.

Проще говоря, VLAN – это логический канал внутри физического.

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

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

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

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

Применение данной технологии дает нам следующие преимущества:

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

Приведу простой пример : допустим, есть хосты, включенные в коммутатор, который, в свою очередь, подсоединен к маршрутизатору (рис. 1). Предположим, у нас есть две локальные сети, соединенные одним коммутатором и выходящие в интернет через один роутер. Если не разграничить сети по VLAN’ам, то, во-первых, сетевой шторм в одной сети будет оказывать влияние на вторую сеть, во-вторых, с каждой сети можно будет «вылавливать» трафик другой сети. Теперь же, разбив сеть на VLAN’ы, мы фактически получили две отдельные сети, связанные между собой роутером, то есть L3 (сетевым уровнем). Весь трафик проходит из одной сети в другую через роутер, а доступ теперь работает только на уровне L3, что значительно облегчает работу администратора.

Тегирование

Тегирование – процесс добавления метки VLAN’a (он же тег) к фреймам трафика.

Как правило, конечные хосты не тегируют трафик (например, компьютеры пользователей). Этим занимаются коммутаторы, стоящие в сети. Более того, конечные хосты и не подозревают о том, что они находятся в таком-то VLAN’е. Строго говоря, трафик в разных VLAN’ах чем-то особенным не отличается.

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

Наибольшее распространение получила технология, описанная в спецификации IEEE 802.1Q. Также существую и другие проприетарные протоколы (спецификации).

802.1q

802.1q – это открытый стандарт, описывающий процедуру тегирования трафика.

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

Размер метки (тега) всего 4 байта. Состоит из 4-х полей (рис.3):

  • 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.

Если трафик теггируется, или наоборот — метка убирается, то контрольная сумма фрейма пересчитывается(CRC).

Native VLAN(нативный VLAN)

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

802.1ad

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

Так же наличие двух меток позволяет организовывать более гибкие и сложные сети оператора. Так же, бывают случаи, когда оператору нужно организовать L2 соединение для двух разных клиентов в двух разных городах, но трафик клиенты посылают трафик с одним и тем же тегом(рис.5).

Клиент-1 и клиент-2 имеют филиалы в городе А и Б, где имеется сеть одного провайдера. Обоим клиентам необходимо связать свои филиалы в двух разных городах. Кроме того, для своих нужд каждый клиент тегирует трафик 1051 VLAN’ом. Соответственно, если провайдер будет пропускать трафик обоих клиентов через себя в одном единственном VLAN’е, авария у одного клиента может отразиться на втором клиенте. Более того, трафик одного клиента сможет перехватить другой клиент. Для того, чтобы изолировать трафик клиентов, оператору проще всего использовать Q-in-Q. Добавив дополнительный тег к каждому отдельному клиенту (например, 3083 к клиенту-1 и 3082 к клиенту-2), оператор изолирует клиентов друг от друга, и клиентам не придется менять тег.

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

Порты коммутатора, в зависимости от выполняемой операции с VLAN’ами, делятся на два вида:

  • тегированный (он же транковый порт , trunk , в терминалогии cisco) - порт, который пропускает трафик только с определенным тегом;
  • нетегированный (он же аксесный , access , в терминалогии cisco) - входя в данный порт, нетегированный трафик «обертывается» в тег.

По назначению порта в определённый VLAN существует два подхода:

  • Статическое назначение - когда принадлежность порта VLAN’у задаётся администратором;
  • Динамическое назначение - когда принадлежность порта VLAN’у определяется в ходе работы коммутатора с помощью процедур, описанных в специальных стандартах, таких, например, как 802.1X.

Таблица коммутации

Таблица коммутации при использовании VLAN’ов выглядит следующим образом (ниже приведена таблица коммутации коммутатора, не поддерживающего работу во VLAN’ах):

Порт MAC-адрес
1 A
2 B
3 C

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

Порт VLAN MAC-адрес
1 345 A
2 879 B
3 default C

где default — native vlan.

Протоколы, работаю с VLAN

GVRP (его аналог у cisco — VTP) — протокол, работающий на канальном уровне, работа которого сводиться к обмену информации об имеющихся VLAN’ах.

MSTP (PVSTP, PVSTP++ у cisco) — протокол, модификация протокола STP, позволяющее строить «дерево» с учетом различных VLAN’ов.

LLDP (CDP, у cisco) — протокол, служащий для обмена описательной информацией о сети, в целом, кроме информации о VLAN’ах также распространяет информацию и о других настройках.



В продолжение темы:
Android

Веб-сервисы в 1СВ данной статье будет рассмотрены вопросы интеграции 1С с уже существующими веб-сервисами и использование самой 1С как веб-сервиса. При этом под веб-сервисами...