суббота, 25 августа 2018 г.

Использование приватных виртуальных локальных сетей (Private VLAN)

   Все знают про возможность разграничивать доступ с помощью спиcков контроля доступа (Access Control Lists, ACL). Списки контроля доступа есть практически на любом устройстве и в любой системе в том или ином виде.
   Однако, иногда в реальной жизни могут возникнуть ситуации, когда доступ разграничить нужно, но ACL тут не подходит. Например, когда нужно сделать так, чтобы два устройства, находящихся в одном широковещательном домене, не могли видеть друг друга. Проблема с ACL в этом случае в том, что они работают на уровне 3 модели OSI, а мы находимся в одном адресном пространстве, и нам нужно сделать какое-либо разделение на втором уровне. Для решения такой проблемы можно использовать приватные виртуальные локальные сети (Privat VLAN, PVLAN).

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

- Primary VLAN - основной VLAN, с которым (или даже через который) будут взаимодействовать все остальные VLAN'ы в создаваемом домене приватных VLAN.

- Secondary VLAN -  вторичные вланы. Делятся на два типа - изолированные (Isolated) и VLAN-сообщество (Community).

   а) Изолированные VLAN (Isolated)  - это VLAN, который изолирован от всех других VLAN и портов, в том числе находящихся с ним в одном VLAN. Порт в таком VLAN может передавать трафик только между собой и портом общего назначения (promiscuous port).

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

   В соответствии с принадлежностью к тому или иному VLAN порты коммутатора делятся на:

- Promiscuous - порт общего назначения, который находится в Primary VLAN;
- Isolated - изолированный порт, находящийся в соответствующем типе VLAN;
- Community - порт, принадлежащий комьюнити VLAN.

   Небольшой пример: на коммутаторе есть vlan 10 - primary и 3 ассоциированных с ним VLAN:
- 20 - Isolated
- 30 - Community A
- 40 - Community B
   Порты разделены следующим образом:
- Порт 1 - promisuous port;
- Порты 2 и 3 - изолированные - т.е. находятся в VLAN 20;
- Порты 4 и 5 - ассоциированы с VLAN 30;
- Порты 6 и 7 - ассоциированы с VLAN 40;

   Трафик будет проходить следующим образом:
- Порт 2 - может связываться только с портом 1;
- Порт 3 - может связываться только с портом 1;
- Порт 4 - может связываться с портом 5 и с портом 1;
- Порт 5 - может связываться с портом 4 и с портом 1;
- Порты 6 и 7 могут перегонять трафик между собой и связываться с портом 1.

   В части настройки все тоже довольно просто. Для начала необходимо создать все интересующие нас VLAN и задать им соответствующий тип.

vlan 10
private-vlan primary
!
vlan 20
private-vlan isolated
!
vlan 30
private-vlan community
vlan 40
private-vlan community 

   Далее ассоциируем все VLAN с нашим основным VLAN:

vlan 10 
private-vlan association 20,30,40 

   После этого настроим порты соответствующим образом. Первым будет общедоступный порт:

interface FastEthernet0/1
 switchport private-vlan mapping 10 20,30,40
 switchport mode private-vlan promiscuous

   Другие порты настраиваем аналогичным образом, только ставим соответствующие VLAN и типы портов:

interface FastEthernet0/2
 switchport private-vlan host-association 10 20
 switchport mode private-vlan host
!
interface FastEthernet0/3
 switchport private-vlan host-association 10 20
 switchport mode private-vlan host
!
interface FastEthernet0/4
 switchport private-vlan host-association 10 30
 switchport mode private-vlan host
! 
interface FastEthernet0/5
 switchport private-vlan host-association 10 30
 switchport mode private-vlan host
!
interface FastEthernet0/6
 switchport private-vlan host-association 10 40
 switchport mode private-vlan host
!
interface FastEthernet0/7
 switchport private-vlan host-association 10 40
 switchport mode private-vlan host

   Готово. Теперь можно проверить связность между портами в соответствующих VLAN, и убедиться, что они будут работать по-разному. Важным замечанием здесь служит то, что для всех этих VLAN используется одна подсеть. Т.е. все хосты, сидящие в VLAN 20, 30 и 40 - из одной подсети L3, например, 10.10.0.0/24. Изоляция хостов осуществляется на втором уровне модели OSI.

   ПРАКТИЧЕСКАЯ ЗАДАЧА


   Четно говоря, можно сказать, что PVLAN - это одна из тех технологий, которые были придуманы, но не используются практически нигде. При этом в курсе CCNA Security приватные VLAN изучаются.
   В своей практике я встретил только один реальный случай, в котором PVLAN помогли избежать большого количества проблем. И вот, в чем он заключался.
   Имеется промышленная сеть АСУ ТП с кучей различных подсистем. Сеть строилась людьми не то, чтобы далекими от сетей, но быстро и не связанно между собой. В итоге в двух подсистемах АСУ ТП адресация была взята из одной и той же сети - 192.168.0.0/24. Хостов в сетях было мало, но они были очень критичными - фактически их нельзя было трогать, а для какой-либо перенастройки требовалось заполнить миллионы бумаг по согласованию временного вывода из работы, а так же согласовать с различными внешними службами перенастройку, что было очень накладно. При этом нарушение работы этих хостов могло привести к остановке всего предприятия.
   Плюсом в этом всем было то, что сети были полностью изолированными друг от друга. Физически. Никак не соприкасались. При этом из обоих сетей был свой отдельный канал связи с внешними приемниками информации, в общем все было хорошо. Пока не пришла модернизация и оптимизация. Каждая из систем генерировала довольно небольшой объем трафика. Поэтому было принято решение свести все на одно устройство для работы через один общий канал связи с внешним миром. И вот тут-то и возникла проблема с изоляцией сетей друг от друга. Нужно было сделать так, чтобы в этих подсетях был общий шлюз, но хосты друг друга не видели и дойти друг до друга не могли.
   Именно в этой ситуации и было принято решение использовать приватные VLAN.

Комментариев нет:

Отправить комментарий