Настройка VLAN на коммутаторах Cisco

 

В предыдущих постах мы провели базовую настройку маршрутизатора, так же настроили NAT для выхода в интернет и DHCP что бы упростить задачу выдачи ip адресов пользователям. По сути дела базовые вещи для работы нашей сети готовы. Что же будем делать дальше? Предлагаю рассмотреть такой вопрос как настройка VLAN-ов на коммутаторах и заодно рассмотреть зачем нам это нужно.
Представим ситуацию когда нам нужно размещать всех пользователей и сервера не в одной подсети как мы это делали в предыдущих статьях, а в нескольких. К примеру мы хотим разделить наших пользователей в разные подсети в зависимости от отдела (маркетинг в 192.168.0.0, бухгалтерию в 192.168.1.0, юр. отдел в 192.168.2.0, и т.д.) или мы хотим создать несколько сетей в зависимости от задач (сервера в 192.168.0.0, пользователи в 192.168.1.0, wifi сеть в 192.168.2.0, система видеонаблюдения в 192.168.3.0 и т.д.). Если бы не существовало такой вещи как VLAN нам пришлось бы ставить отдельно свитчи для серверов, отдельно свитчи для пользователей, отдельно для wi-fi точек доступа, отдельно для видекамер и видеорегистраторов. Причем для осуществления связи между этими подсетями понадобится маршрутизатор, с количеством портов равным количеству наших подсетей. Технология VLAN позволит выполнить разделение логически, т.е. мы сможем говорить коммутаторам в какую сеть какой порт нужно будет включить.
Давайте разберем простой пример на рис.1 представленный ниже.
b2ap3_thumbnail_6.1.png
Рис.1
Перед нами сеть организованная посредством маршрутизатора и трех коммутаторов. Предлагаю решить следующую задачу. Мы хотим организовать систему так, что бы компьютеры PC0 и PC2 (это будут наши «обычные» пользователи) находились в сети 192.168.1.0 и имели доступ в интернет, а компьютеры PC1 и РС3 (это будут «секретные» пользователи) находились в сети 192.168.2.0 и жили своей отдельной жизнью в рамках свой подсети без какого-либо интернета.
Решить нашу задачи позволит технология VLAN. Каждому VLAN-у создаваемому на коммутаторах присваивается уникальный номер (это будет видно в дальнейшем из настройки). По умолчанию все порты на всех коммутаторах принадлежат к VLAN-у номер 1. Давайте для начала зайдем на каждый коммутатор и настроим два VLAN-а с номерами 7 и 13 (номера придуманы произвольно)
Switch1>en — заходим в режим привилегированного пользователя
Switch1#conf t — заходим в режим конфигурации
Switch1(config)#vlan 7 —создаем vlan с номером 7
Switch1(config-vlan)#exit — возвращаемся в режим глобальной конфигурации
Switch1(config)#vlan 13 — создаем vlan c номером 13
Switch1(config-vlan)#exit — возвращаемся в режим глобальной конфигурации
Тоже самое проделаем на двух других свитчах
Switch2>en
Switch2#conf t
Switch2(config)#vlan 7
Switch2(config-vlan)#exit
Switch2(config)#vlan 13
Switch2(config-vlan)#exit
Switch2(config)#
Switch3>en
Switch3#conf t
Switch3(config)#vlan 7
Switch3(config-vlan)#exit
Switch3(config)#vlan 13
Switch3(config-vlan)#exit
Switch3(config)#
Теперь VLAN-ы на коммутаторах созданы, посмотреть список VLAN-ов на коммутаторе можно командой show vlan.
Следующим этапом нам необходимо связать наши коммутаторы таким образом, что бы через них могли проходить соответствующие VLAN-ы. Для этого нужно настроить порты между коммутаторами.
Коммутатор Switch1 подключен к Switch2 и Switch3 через порты FastEthernet0/1 и FastEthernet0/2
Коммутатор Switch2 подключен к Switch1 через порт FastEthernet0/1
Коммутатор Switch3 подключен к Switch1 через порт FastEthernet0/1
Перейдем к настройке:
Switch1(config)#int fa0/1 — заходим в настройки порта подключенного к Switch2
Switch1(config-if)#switchport mode trunk — выбираем режим работы trunk
Switch1(config-if)#switchport trunk encapsulation dot1q — выбираем режим инкапсуляции 802.1q
Switch1(config-if)#exit
Switch1(config)#int fa0/2 — заходим в настройки порта подключенного к Switch3
Switch1(config-if)#switchport mode trunk — выбираем режим работы trunk
Switch1(config-if)#switchport trunk encapsulation dot1q
Switch1(config-if)#exit
Switch1(config)#
Мы настроили порты работать в режиме trunk. Это делается для того, что бы при отправке пакетов через этот порт свитч делал пометку на соответствующий номер VLAN-а. Таким образом свитч получающий пакет сможет понять к какой сети относится полученный пакет. Обратите внимание на строчку switchport trunk encapsulation dot1q. Таким образом задается стандарт, по которому будут ставиться пометки в пакетах. Мы настроили использовать стандарт 802.1q, который является общедоступным и поддерживается всем оборудованием, которое поддерживает работу с VLAN-ами. Рекоммендую использовать его всегда, не смотря на то, что на коммутаторах cisco по умолчанию поддерживается их собственный стандарт ISL. Проведем настройку на оставшихся свитчах.
Switch2(config)#int fa0/1
Switch2(config-if)#switchport mode trunk
Switch2(config-if)#switchport trunk encapsulation dot1q

Switch2(config-if)#exit
Switch2(config)#

Switch3(config)#int fa0/1
Switch3(config-if)#switchport mode trunk
Switch2(config-if)#switchport trunk encapsulation dot1q

Switch3(config-if)#exit
Switch3(config)#

По умолчанию выбирая режим работы trunk мы говорим, что бы коммутатор помечал и пропускал пакеты всех VLAN-ов.
При желании можно пропускать только те VLAN-ы которые мы хотим. Сделать это можно добавив в настройку порта команду switchport trunk allowed vlan «vlan-id» указав нужные нам VLAN-ы через запятую, к примеру switchport trunk allowed vlan 7, 13
Итак связь между свитчами настроена. Перейдем к настройке портов, к которым подключены наши компьютеры следующим образом:
PC0 подключен к Switch2, порт FastEthernet0/2
PC1 подключен к Switch2, порт FastEthernet0/3
РС2 подключен к Switch3, порт FastEthernet0/2
PC3 подключен к Switch3, порт FastEthernet0/3
Собственно давайте настроим соответствующие порты на нужные VLAN-ы. PC0 и РС2 нужно подключить к VLAN 7, а PC1 и PC3 подключить к VLAN 13.
Switch2(config)#int fa0/2 — заходим в настройку порта подключенного к РС0

Switch2(config-if)#switchport mode access — выбираем режим access. Это означает что к порту подключен компьютер

Switch2(config-if)#switchport access vlan 7 — настраиваем порт на VLAN 7
Switch2(config-if)#exit

Switch2(config)#int fa0/3 — заходим в настройку порта подключенного к PC1
Switch2(config-if)#switchport mode access — выбираем режим access
Switch2(config-if)#switchport access vlan 13 — настраиваем порт на VLAN 13
Switch2(config-if)#exit
Switch2(config)#
В данном случае мы настроили  порт работать в режиме access. Данный режим означает, что к порту подключен компьютер и на нем может работать только один VLAN, который мы соответственно назначили следующей командой.
Аналогичные настройки произведем на другом свитче.
Switch3(config)#int fa0/2
Switch3(config-if)#switchport mode access
Switch3(config-if)#switchport access vlan 7
Switch3(config-if)#exit
Switch3(config)#int fa0/3
Switch3(config-if)#switchport mode access
Switch3(config-if)#switchport access vlan 13
Switch3(config-if)#exit
Switch3(config)#
Мы разбили нашу сетевую инфраструктуру на две подсети (VLAN 7 и VLAN 13).
Давайте назначим нашим компьютера соответствующие ip адреса и проверим работоспособность.
РС0: 192.168.1.11 маска 255.255.255.0 шлюз 192.168.1.1
РС1: 192.168.2.11 маска 255.255.255.0 шлюз 192.168.2.1
РС2: 192.168.1.12 маска 255.255.255.0 шлюз 192.168.1.1
РС3: 192.168.2.12 маска 255.255.255.0 шлюз 192.168.2.1
PC0>ping 192.168.1.12
Pinging 192.168.1.12 with 32 bytes of data:
Reply from 192.168.1.12: bytes=32 time=14ms TTL=128
Reply from 192.168.1.12: bytes=32 time=16ms TTL=128
Reply from 192.168.1.12: bytes=32 time=17ms TTL=128
Reply from 192.168.1.12: bytes=32 time=15ms TTL=128
PC1>ping 192.168.2.12
Pinging 192.168.2.12 with 32 bytes of data:
Reply from 192.168.2.12: bytes=32 time=30ms TTL=128
Reply from 192.168.2.12: bytes=32 time=15ms TTL=128
Reply from 192.168.2.12: bytes=32 time=16ms TTL=128
Reply from 192.168.2.12: bytes=32 time=17ms TTL=128
Как можно видеть из результатов ping-a все работает. Если поменять к примеру на компьютере PC0 ip адрес с 192.168.1.11 на 192.168.2.13 и попробовать пропинговать компьютеры PC1 и PC3, то результат будет неудачным, т.к. PC0 принадлежит к VLAN 7, а РС1 и РС3 принадлежат к VLAN 13.
Главное понять принцип того что делает VLAN. На рис.1 мы видим, что все компьютеры подключены к одним и тем же свитчам, но при этом разделены логически и в рамках одной подсети связаны только те компьютеры которые находятся в одном VLAN-е.
Чего-то не хватает. Исходя из условий нашей задачи необходимо было подсеть 192.168.1.0 выпустить в интернет. Для этого нужно настроить связь коммутатора Switch1 с маршрутизатором Router на нужный VLAN + настроить на маршрутизаторе NAT. Switch 1 подключен к маршрутизатору Router через порт GigabitEthernet1/1, который нужно настроить на работу в режиме trunk-a.
Switch(config)#int gi1/1
Switch(config-if)#switchport mode trunk
Switch1(config-if)#switchport trunk encapsulation dot1q

Switch(config-if)#exit
Switch(config)#

Маршрутизатор Router подключен к свитчу через порт FastEthernet0/0. На этом порту нужно создать так называемый sub-интерфейс (виртуальный интерфейс внутри физического). Дальнейшие настройки применяются уже на sub-интерфейс. Создать его можно указав имя интерфейса + номер sub-интерфейса через точку, например FastEthernet0/0.7
В качестве номера sub-интерфеса я выбрал номер VLAN-а, но это не принципиально, просто так потом будет проще читать конфигурацию. Давайте произведем настройки и разберемся по ходу.
Router>enable
Router#conf t
Router(config)#int fa0/0
Router(config-if)#no shut
 — на забываем включить физический порт FastEthernet0/0, по умолчанию порты маршрутизатора выключены
Router(config-if)#exit
Router(config)#int fa0/0.7 — создаем наш sub-интерфейс

Router(config-subif)#encapsulation dot1q 7 — выбираем режим преобразования как на коммутаторах. Он должен совпадать с номером VLAN-а
Router(config-subif)#ip address 192.168.1.1 255.255.255.0 — зададим ip адрес. Этот адрес будет выступать шлюзом для наших компьютеров.

Router(config-subif)#exit
Router(config)#exit

Router(config)#exit
Router#ping 192.168.1.12

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.12, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 11/12/14 ms

После проведенных настроек мы попробовали пропинговать один их хостов в VLAN-е 7. Результат успешный.
Если попробовать пропинговать хост из VLAN-a 13 то результат будет безуспешен, т.к. на этот VLAN на маршрутизаторе нет никаких настроек.
Осталось только настроить NAT, что бы выпускать сеть 192.168.1.0 в интернет. Детально данная процедура описана в одном из предыдущих постов, поэтому я приведу только саму конфигурацию с краткими пометками.
Router(config)#int fa0/1
Router(config-if)#ip address 1.1.1.1 255.255.255.0 —
 задаем внешний ip адрес, на порт, который смотрит в интернет.
Router(config-if)#no shut
Router(config-if)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.2 — настроим маршрут по умолчанию
Router(config)#ip nat pool internet 1.1.1.1 1.1.1.1 netmask 255.255.255.0 — создаем пул внешних адресов для NAT
Router(config)#access-list 10 permit 192.168.1.0 0.0.0.255 — создаем список доступа, в котором указываем нашу внутренную подсеть, которую нужно выпустить в интернет.
Router(config)#ip nat inside source list 10 pool internet overload — связываем наш пул и список доступа.
Router(config)#int fa0/0 
Router(config-if)#ip nat inside —  назначаем внутренний NAT интерфейс, который смотрит в нашу сеть
Router(config-if)#exit
Router(config)#int fa0/1
Router(config-if)#ip nat outside
    — назначаем внешний NAT интерфейс, который смотрит в интернет
Router(config-if)#exit
Router(config)#exit
Router#wr
Building configuration…
[OK]
Router#
Все. Настройка закончена. В итоге мы имеет две подсети которые принадлежат к разным VLAN-ам. Одна из подсетей имеет возможность выхода в интернет.
Вы можете задать вопрос как осуществлять связь между VLAN-ами. К примеру есть VLAN пользовательский и VLAN серверный. Соответственно нужно обеспечить между ними сетевую доступность.
Ответ: Это можно сделать через маршрутизатор. В нашем примере мы настраивали на маршрутизаторе sub-интерфейс FastEthernet0/0.7. Аналогичным образом можно настроить на маршрутизаторе sub-интерфейс FastEthernet0/0.13 и назначить ему ip адрес 192.168.2.1. Прикинем как в такой схеме пойдет пакет с одного компьютера на другой.
Компьютер из VLAN 7 захочет отправить пакет компьютеру из VLAN 13. Не найдя в своей таблице маршрутизации подсети 192.168.2.0 он отправит пакет шлюзу (Router 192.168.1.1). Который получив пакет, по таблице маршрутизации поймет, что он предназначен сети, которая у него подключена через sub-интерфейс FastEthernet0/0.13 и направит его в нужном направлении. Обратно связь осуществится аналогичным образом.
У кого-то может возникнуть вопрос зачем все это нужно. Могу сказать что есть ряд причин делить сеть на VLAN-ы:
1) Проще управлять. Когда ваша структура разбита логически на несколько VLAN-ом значительно упрощается процесс мониторинга и администрирования. Зная ip адрес вы можете сразу определить к чему относится устройство (сервер, рабочая станция, телефон, ip камера и т.д.).
2) Снижает общую нагрузку на сеть. Вы должны понимать что когда вы к примеру начинаете пинговать адрес внутри вашей подсети, если компьютер не знает mac адреса устройства то делает широковещательный arp запрос который получают все устройства в рамках одной подсети. Соотвественно зачем вашей ip камере которая смотрит на кассу этот пакет? Разделив  подсети на VLAN-ы вы автоматически снизите нагрузку такого рода запросов на вашу сеть.
3) Безопасность. Разделив сеть логически на VLAN-ы намного проще регулировать такой вопрос как безопасность. Вы можете управлять доступом к тем или иным сегментам как вам захочется через маршрутизатор (списки доступа) или использую более продвинутые решения.

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

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