431

Администрирование #03. VLAN.

Первая часть

Вторая часть

VLAN — Virtual Local Area Network

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

Основные термины:

Сетевая топология — способ описания конфигурации сети, схема расположения и соединения сетевых устройств.

Физическая топология — описывает реальное расположение и связи между узлами сети.

Логическая топология — описывает хождение сигнала в рамках физической топологии.


Общая идеология:

VLAN переводится как «виртуальные локальные сети». Эта штука работает на канальном уровне модели OSI. Она позволяет делать

1) Локальную сеть, физически состоящую из нескольких железок (aka коммутаторов), но которая видится как сеть, в которой одна многопортовая железка.

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

3) Комбинацию из 1 и 2:

То есть, мы можем создавать логическую топологию сети не зависимо от физической топологии.

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

На картинке выше комп с адресом 172.16.1.1 вполне увидит комп 172.16.1.2 без всяких дополнительных настроек. Также как и все компы с адресами из сетки 192.168.1.0/24 увидят друг друга. Но все эти компы из обеих сетей будут находится в одном широковещательном домене (в изначальном смысле этого термина – второй уровень модели OSI). То есть, все широковещательные запросы (например, DHCP), направленные на MAC-адрес FF:FF:FF:FF:FF:FF попадут на все порты. А вот если вы разделите сеть на VLAN’ы, то у вас будет свой широковещательный домен на каждый VLAN.

Когда и зачем это нужно:

1) Когда вы создаёте 50 локальных сетей на 47 коммутаторах, то есть когда ваша сеть начинает загибаться под массой широковещательных запросов. Например, как говорят учебники, сеть общежития. Советую прочитать про broadcast storm

2) Когда вы параноик хотите защититься от arp-spoofing атак

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

4) Когда вы хотите развести всех этих людей по подсетям. Бухи налево, юристы прямо, маркетологи направо. Может, им не стоит видеть друг друга в целях безопасности, кто знает?


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

Здесь :

VLAN1 — зеленый, в него входят порты 1, 7, 12, 14, 16 на switch1 и порты 1, 3, 4, 7, 8, 9, 11, 15 на switch2.

VLAN2 — синий, в него входят порты 3, 4, 6, 8, 9, 11, 13, 15, 16 на switch1 и порты 2, 5, 8, 13, 14, 16 на switch2.

VLAN3 — красный, в него входят порты 2, 5, 10, 16 на switch1 и порты 6, 8, 10, 12 на switch2.

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

Сейчас свитчи соединены патч-кордом, который воткнут в 16 порт на первом свитче и в 8 порт на втором. Чтобы по нему могли ходить пакеты всех трёх VLAN'ов и не перемешиваться, патч-корд должен быть воткнут в тегированные порты. Порты 16 на первом и 8 на втором свитче — тегированные, каждый из них принадлежит всем трём VLAN'ам (также говорят и наоборот – три VLAN есть в этих портах). На входе в эти порты метка ставится (если нету), но на выходе не снимается.

Порты, помеченные одним цветом — нетегированные, в них нет меток, так как метки внутри одной сети не нужны. То есть, метка на входе в порт снимается (если есть) и на выходе не ставится.

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


И вот у вас несколько VLAN’ов, все счастливы, но друг друга сети совсем не видят. А надо. Чтобы настроить между ними маршрутизацию, нужен (тссс!) маршрутизатор. Ну или хотя бы L3-switch.

Пара ссылок с красивыми картинками от cisco: раз и два.


По просьбам трудящихся подписчиков несколько команд:

VLAN на компе с Debian:

Можно настраивать с помощью vconfig или с помощью ip link.

Создать VLAN на интерфейсе eth0. Имя VLAN'a – eth0.80, оно по-хорошему должно быть именно в таком формате: интерфейс.тег, ну и тег тут 80, уже понятно:

# ip link add link eth0 name eth0.80 type vlan id 80

# ifconfig eth0.80 up

Добавить IP:

# ip a a 172.16.1.1/24 dev eth0.80


VLAN на D-Link:

Создать VLAN с названием 45 и тегом 45:

# create vlan 45 tag 45

Добавить нетегированные порты с 8 по 11:

# config vlan 45 add untagged 8-11

Добавить тегированный порт 14:

# config vlan 45 add tagged 14

Удалить 10 порт из VLAN:

# config vlan 45 delete 10

Посмотреть информацию о VLAN:

# show vlan


VLAN на Cisco

У Cisco тегированные порты называются транковыми (trunk), а нетегированные native. Предупреждение: vlan 1 занят под native vlan. Также на коммутаторах cisco есть interface vlan1, который является интерфейсом управления – на него назначаете IP, чтобы заходить на свичи по сети

создать VLAN:

# vlan 2

# name vlan2

Добавить тегированные порты:

# config vlan2 add tagged 2,25

# exit

Изменить что-то с VLAN'ом:

# interface vlan2

добавить IP:

# ip address 10.1.2.1 255.255.255.0

Чтоб перевести порт в тегированный режим:

$ conf t

# interface fa0/24

# switchport trunk encapsulation dot1q

# swichport mode trunk

Разрешить VLAN'ы 1 и 2:

# switchport trunk allowed vlan 1,2

Включение нетегированного VLAN'а:

# switchport trunk native vlan 1

Режим по умолчанию, в этом порту не может быть тегированных пакетов:

# interface fa0/1

# switcport access vlan 1


В рамках cisco еще полезно ознакомиться с протоколом VTP.


Ну и напоследок: не стоит наслушавшись цискокурсов или начитавшись статей пилить свою сеть на VLAN’ы, если вы не понимаете, зачем вам это надо. Если у вас в широковещательном домене пару сотен устройств и все в одной сети, то не стоит заморачиваться (это моё личное мнение).

Лига Сисадминов

2.4K постов18.9K подписчиков

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.