Настройка Private VLANs на Cisco

от автора

В данной статье рассмотрим такую интересную, на мой взгляд, технологию, как Private VLANs в теории и практике.

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

Обычно сеть делится на VLANы, далее c помощью router-on-the-stick либо многоуровнего свича (любого устройства 3 уровня) включается маршрутизация (разрешается весь трафик), а потом, с помощью списков контроля доступа, прописывается кому, с кем и по какому протоколу разрешено “общаться” (или применяется контроль трафика исходя из требований политики безопасности вашей организации, как было бы написано в учебнике Cisco:)).

Но что же делать когда, например, сеть уже разделена, сегментирована, но возникла необходимость изолировать серверы либо группы хостов друг от друга?

У Cisco, как и других вендоров, есть дополнительные инструменты, помогающие ограничивать пересылку трафика между хостами, находящимися в пределах одной подсети или контроля трафика внутри VLAN. Для этого чаще всего используются Private VLANs (частные VLANы), VLAN access list и protected ports.

Следует отметить, что Private VLANы на Cisco поддерживаются на моделях Nexus, а так же Catalyst начиная с 3560 и старше.

Первый пример.

На свичах младших моделей есть такое понятие как private vlan edge. Настраивается очень просто – из режима конфигурации интерфейса прописываем команду (config-if)#switchport protected, в результате чего, хосты подключенные к этим портам буду изолированы друг от друга на 2 уровне (т.е. физически они будут подключены к одному свичу, находиться в одной подсети, но не будут “видеть” друг друга, при этом будут “видеть” все остальные хосты). Один из недостатков этого механизма, это то, что он имеет локальное значение для свича, и не масштабируется.( т.е. если мы соединим свич А и свич В транком, например, то protected порт свича А сможет “увидеть” protected порт свича B).

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

Второй пример.

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

image
Рис. – Изоляция серверов в DMZ.

Третий пример.

Вы работаете в провайдере и предоставляете услуги web-хостинга для большого количества клиентов, вы поместили веб-серверы в одну сеть, при этом получается, что нет никакой изоляции, все они могут “слышать” броадкасты друг друга, т.е. передавать трафик без фильтрации через межсетевой экран. Если хакер сможет попасть на один из серверов, то он сможет развернуть атаку на все серверы, ”положить” всю серверную ферму. И, конечно же, клиенты хотят изоляции своих серверов друг от друга. Особенно PVLANы актуальны для провайдеров, предоставляющих layer 2 подключения как вид услуги, для разделения клиентов, клиент А конечно же не захочет, что бы его широковещательная рассылка попадала к клиенту Б, сами понимаете, какая дыра в безопасности здесь открывается. Традиционный выход из положения методом добавления нового VLANа здесь не подойдет (метод один VLAN на клиента), “упираемся” в масштабируемость максимальное количество VLANов 4094 минус зарезервированные. Вторая проблема, т.к. VLAN – отдельная подсеть, нужно заниматься subnetting и откидывать еще по 2 адреса на каждую подсеть (subnet и broadcast) жалко, так как это “белые” адреса :).

В данных ситуациях на помощь приходят частные VLANы.

Немного терминологии. Частные VLANы делятся на:

  • Primary – основная, главная VLAN
  • Secondary – второстепенные VLANы (бывают 2 видов isolated и community), все они должны принадлежать primary VLAN

Порты делятся на:

  • Promiscuous – этот порт “видят” все и он “видит” всех, должен быть привязан к основному и всем второстепенным VLANам.
  • Private vlan host может принадлежать:
    • Isolated VLAN- “видит” только promiscuous порт, не “видит” другие порты даже в своей isolated vlan. Должен быть привязан к своему isolated VLANу и primary VLANу
    • Community VLAN- “видит” только порты в данной community vlan, которой он принадлежит и promiscuous порт. Должен быть привязан к своему community VLANу и primary VLANу.

Общие правила

Только один isolated vlan может быть привязан к одному promiscuous порту. Если хотите несколько isolated vlan, тогда к каждому vlan должен быть привязан отдельный promiscuous порт.

Обычно создается только один isolated vlan, не важно, сколько там хостов, все равно они не будут видеть друг друга.

В отличие от isolated VLAN, несколько community VLAN может быть привязано к одному promiscuous порту.

Рассмотрим следующую топологию:

— Все устройства находятся в одной подсети 10.0.0.0/24 VLAN 10.
— R2 и R3 должны быть изолированы друг от друга и R4, R5 – т.е. должны иметь доступ только к интерфейсу маршрутизатора.
— R4 и R5 должны быть изолированы от R2, R3, но видеть друг друга и маршрутизатор.

image

Сперва создадим 2 второстепенных VLANа, 101 community VLAN и 102 isolated VLAN. VLAN 10 сделаем основной и привяжем к ней второстепенные( порядок ввода команд не имеет значения).

image

Проверим:

image

Далее, мы должны ассоциировать порты c VLANами.

Из режима конфигурации интерфейса делаем его сначала private vlan host (говорим ему, что он необычный порт), второй командой привязываем его к isolated и primary VLANам

image

По аналогии настраиваем интерфейс fa1/0/4

image

То же самое прописываем на fa1/0/9 – сначала говорим ему, что он private vlan host и для того, что бы он понял, что он принадлежит community vlan 102, привязываем его к ней, а так же не забываем привязать его к основному VLANу.

image

Аналогично настраиваем fa1/0/9

image

Интерфейсу fa2/0/2, так как мы хотим, что бы все хосты его “видели” и он всех “видел”, задаем режим promiscuous и по правилу привязываем его к основному и всем второстепенным VLANам.

image

Проверяем ассоциацию портов:

image

Следующее действие не обязательное, создаем L3 SVI, для проверки, что isolated и community хосты могут его “видеть” так же, как и promiscuous port.

image

И теперь самое интересное – как это все работает.

Взглянем на таблицу MAC-адресов на свиче, выглядит она необычно. Оказывается, MAC-адреса хостов на портах, с которых они были получены, одновременно ассоциируются с основным и второстепенным VLANами!

Почему хосты R4 и R5 в isolated vlan 102 не могут ничего “видеть” кроме интерфейса маршрутизатора? Обратите внимание, что MAC-адреса этих хостов в пределах 102 isolated vlan свич пометил, как BLOCKED, в то же время MAC-адрес promiscuous интерфейса маршрутизатора в пределах vlan 102, как обычный DYNAMIC.

Теперь давайте посмотрим, почему интерфейс маршрутизатора, помеченный, как promiscuous может “общаться” со всеми интерфейсами, дело в том, что он их может видеть через primary VLAN 10 (первые 5 строчек в таблице MAC-адресов).

image

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

ссылка на оригинал статьи http://habrahabr.ru/post/165195/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *