Создание VLAN по сути есть добавление виртуального коммутатора второго уровня внутри аппаратного коммутатора. VLAN это отдельный широковещательный домен, два компьютера помещенные в разные VLAN не смогут обмениваться данными без настройки шлюза по умолчанию для подсети каждого VLAN. Поэтому компьютеры подключенные в один VLAN должны иметь адреса из одной подсети, например:
10.0.0.1 255.255.255.0 и 10.0.0.100 255.255.255.0
По умолчанию, в каждом коммутаторе абсолютно любого производителя все порты находятся в VLAN 1. Если рабочие станции будут общаться только между собой то никаких дополнительных настроек на коммутаторе можно не производить(при этом на рабочих станциях внутри L2 VLAN могут быть прописаны IP из разных диапазонов, но тогда общаться смогут лишь те кто принадлежит одной подсети, например 192.168.0.0/24 и 172.16.0.0/24 - но между 192.168.0.1 и 172.16.0.1 связи не будет).
Однако если нам надо разделить подключаемое оборудование и ограничить их взаимодействие на основе списков доступа то необходимо вводить различные VLAN. Принцип разделение на VLAN может быть различным - по административному делению компании (HR,Бухгалтерия, Руководство и т.д) или по функциональному назначению (принтеры,сервера,пользователи).
Диапазон номеров VLAN доступных к использованию - 1-4094
Максимальное количество VLAN доступных к использованию на коммутаторе можно уточнить из документации оборудования. Например, для Cisco Catalyst 2960:
Количество доступных к использованию VLAN отличается у разных моделей и уровней прошивки.При этом номера VLAN можно использовать любые из доступного диапазона. Такие ограничения присутствуют только у коммутаторов доступа начального класса. У старших моделей таких ограничений нет. Также необходимо отметить, что номера VLAN 1002-1005 в коммутаторах Cisco IOS и IOS XE нельзя использовать, так они зарезервированы для FDDI и Token Ring и их невозможно удалить:
Switch#sh vlan
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Et0/0, Et0/1, Et0/2, Et0/3
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1 enet 100001 1500 - - - - - 0 0
1002 fddi 101002 1500 - - - - - 0 0
1003 tr 101003 1500 - - - - - 0 0
1004 fdnet 101004 1500 - - - ieee - 0 0
1005 trnet 101005 1500 - - - ibm - 0 0
Итак, для того чтобы добавить vlan на коммутатор Cisco необходимо:
1. Войти в режим конфигурирования:
Switch#conf t
2.Прописать VLAN с нужным номером:
Switch(config)#vlan 2
Switch(config-vlan)#exit
3. VLAN добавлен:
Switch(config)# do sh vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Et0/0, Et0/1, Et0/2, Et0/3
2 VLAN0002 active
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
4.Созданному VLAN автоматически было присвоено имя VLAN0002, это можно изменить дав ему имя соответствующее его назначению. Для этого снова заходим в режим настройки VLAN:
Switch(config)#vlan 2
Switch(config-vlan)#name USERS
Switch(config-vlan)#exit
Switch(config)#do sh vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Et0/0, Et0/1, Et0/2, Et0/3
2 USERS active
(Изменения применяются только после выхода из режима конфигурирования VLAN)
5. VLAN создан и ему присвоено имя отражающее его назначение, но в нем пока все еще нет ни одного порта, все 4 порта находятся в VLAN 1.
Порты на коммутаторах Cisco могут быть двух типов - транк (trunk) или доступ (access).
Разница в том, что порты доступа могут быть членами только одного какого-то VLAN. Такие порты подключаются ПК, принтеры - оконечные устройства.
Транковые порты поддерживают передачу тегированного трафика, то есть трафика разных VLAN. Тег это заголовок который вставляется в заголовок кадра вместо части поля тип протокола. Для тегирования сегодня повсеместно используется протокол IEEE 802.1Q (по-русски звучит как "дот ку". В этом заголовке для обозначения VLAN используется поле VLAN Identifier длиной 12 бит. Именно отсюда ограничение в количестве VLAN: 212= 4096.
Тегированные порты используются для подключения устройств использующих несколько VLAN - коммутаторов друг к другу, серверов с виртуализацией, IP телефонов, WiFi точек доступа.
Добавим порт e0/2 с VLAN 2 как порт доступа:
Switch(config)#int e0/2Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 2
Switch(config-if)#do sh vlan bri
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Et0/0, Et0/1, Et0/3
2 USERS active Et0/2
Команда switchport mode access необходима чтобы явно указать, что порт в режиме доступа, и выключить на порту DTP протокол.
Теперь USER1 находится в VLAN2, а USER2 и USER3 в VLAN1. Для того чтобы все пользователи были в одном пользовательском VLAN переместим порты e0/1 и e0/3 в VLAN2:
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#int ra e0/1,e0/3
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 2
Switch(config-if-range)#^Z
Switch#sh vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Et0/0
2 USERS active Et0/1, Et0/2, Et0/3
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
Проверим (для эмуляции USER используется Cisco Router):
USER1#sh ip int bri | ex una
Interface IP-Address
ocol
Ethernet0/0 10.0.0.10
USER1#ping 10.0.0.20
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.20, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/2/4 ms
USER1#ping 10.0.0.30
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.30, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/2/4 ms
Первый пинг пропадает на резолв MAC адреса протоколом ARP.
Далее допустим, что у нас появился сервер, который необходимо поместить в отдельный VLAN, например №3 и дать ему адрес из другой подсети - 10.0.1.1 с маской 255.255.255.0.
Итак, последовательность действий следующая:
1. Создаем VLAN 3 и даем ему имя SERVERS
2. Делаем порт e0/0 портом доступа и помещаем его в VLAN 3.
Switch(config)#vlan 3
Switch(config-vlan)#name SERVERS
Switch(config-vlan)#exit
Switch(config)#int e0/0
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 3
Switch(config-if)#description SERVER
Switch(config-if)#^Z
Switch#sh run int e0/0
Building configuration...
Current configuration : 99 bytes
!
interface Ethernet0/0
description SERVER
switchport access vlan 3
switchport mode access
end
Switch#sh vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active
2 USERS active Et0/1, Et0/2, Et0/3
3 SERVERS active Et0/0
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
Теперь сервер с адресом 10.0.1.1 находится в третьем VLAN. В данный момент общаться участники разных VLAN не могут, это станет возможно только после того как в сети появится устройство способное организовать IP маршрутизацию, т.е. понимать протокол IP и пересылать пакеты между различными IP сетями.
USER1#ping 10.0.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
В роли такого устройства может выступать коммутатор третьего уровня (L3 коммутатор), маршрутизатор или сервер с соответствующим ПО.
Не все коммутаторы Cisco поддерживают маршрутизацию, и тем более маршрутизацию в полном объёме, аналогично маршрутизаторам. Ограничения есть как в максимальном количестве записей в таблице маршрутизации(маршрутов) так и поддерживаемых протоколов динамической маршрутизации. Ограничения распространяются на коммутаторы доступа начального и среднего уровня.
Рассмотрим вариант маршрутизации на коммутаторе. Для включения маршрутизации на коммутаторе необходимо выполнить команду:
ip routing (в последних поколениях Catalyst 9000 маршрутизация включена по умолчанию)
Затем создаем SVI (Switch Virtual Interface) интерфейсы для каждого VLAN. Конечно же номер SVI должен совпадать с номером соответствующего VLAN, IP адрес VLAN будет шлюзом по умолчанию для узлов в этом VLAN. Создадим два SVI интерфейса для VLAN 2 и 3, с адресами 10.0.0.254 и 10.0.1.254 соответственно:
interface Vlan2
description USERS
ip address 10.0.0.254 255.255.255.0
no shutdown
interface Vlan3
description SERVERS
ip address 10.0.1.254 255.255.255.0
no shutdown
Для того чтобы эти логические интерфейсы перешли в состояние UP необходимо чтобы хотя бы один физический порт в этом VLAN был в состоянии UP. Во VLAN 2 у нас три таких порта, в VLAN 3 один, поэтому оба интерфейса немедленно доступны к использованию.
*Dec 16 13:22:59.707: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan2, changed state to up
*Dec 16 13:22:59.707: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan3, changed state to up
Проверим таблицу маршрутизации:
Switch#sh ip route
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.0.0.0/24 is directly connected, Vlan2
L 10.0.0.254/32 is directly connected, Vlan2
C 10.0.1.0/24 is directly connected, Vlan3
L 10.0.1.254/32 is directly connected, Vlan3
Маршруты установлены как C - Connected т.е. непосредственно подключенные к коммутатору. Проверим пинги между пользователем и сервером:
USER1#ping 10.0.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.1.1, timeout is 2 seconds:
!!!!!
Теперь пользователи и сервера находятся в разных VLAN и IP подсетях. Для ограничения доступа к серверу можно применить списки доступа (ACL). Например, USER1 может обращаться к серверу только по 22 и 80 порту tcp, USER2 может только по 80 порту tcp, а USER3 может только пинговать сервер. Список доступа назовем SRV-ACCESS.
*Обратите внимание, что для названий и описаний предпочтительней использовать все заглавные буквы в словах.
ip access-list extended SRV-ACCESS
permit tcp host 10.0.0.10 host 10.0.1.1 eq 22
permit tcp host 10.0.0.10 host 10.0.1.1 eq www
permit tcp host 10.0.0.20 host 10.0.1.1 eq www
permit icmp host 10.0.0.30 host 10.0.1.1
Теперь применим его на интерфейс VLAN3:
interface Vlan3
ip access-group SRV-ACCESS out
Проверим:
USER1#telnet 10.0.1.1 80
Trying 10.0.1.1, 80 ... Open
^C
HTTP/1.1 400 Bad Request
Date: Mon, 16 Dec 2019 14:03:43 GMT
Server: cisco-IOS
Accept-Ranges: none
USER1#ssh -l admin 10.0.1.1
Password:
Password:
SERVER#exit
А вот пинг не работает с USER1:
USER1#ping 10.0.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.1.1, timeout is 2 seconds:
U.U.U
Для USER2 открыт только 80 порт TCP:
USER2#telnet 10.0.1.1 80
Trying 10.0.1.1, 80 ... Open
^C
HTTP/1.1 400 Bad Request
Date: Mon, 16 Dec 2019 14:06:25 GMT
Server: cisco-IOS
Accept-Ranges: none
400 Bad Request
[Connection to 10.0.1.1 closed by foreign host]
Попробуем другой порт:
USER2#telnet 10.0.1.1 81
Trying 10.0.1.1, 81 ...
% Destination unreachable; gateway or host down
И только USER3 может пинговать сервер, но более ничего:
USER3#ping 10.0.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
USER3#telnet 10.0.1.1 80
Trying 10.0.1.1, 80 ...
% Destination unreachable; gateway or host down
При настройке списков доступа на коммутаторе нужно помнить, что коммутатор в отличии от межсетевого экрана, не запоминает проходящие через него сессии, и проверяет каждый пакет приходящий на интерфейс по всему списку доступа в поисках совпадения. Поэтому сервер тоже сможет пинговать только USER3, потому что пакеты icmp echo reply от USER1 и USER2 будут отброшены коммутатором т.к. нет совпадений в списке доступа (implicit deny). А если бы на месте коммутатора стоял stateful firewall, например Cisco ASA, то сервер смог бы пинговать USER1 и USER2, т.к. ASA отслеживает сессии и "помнит", что пинг инициировал 10.0.1.1 у которого ограничений нет и ожидает от USER1 и USER2 пакетов icmp echo reply в ответ на icmp echo request.
Напоследок обязательно сохраняем конфигурацию:
Напоследок обязательно сохраняем конфигурацию:
Switch#write
Building configuration...
Compressed configuration from 1485 bytes to 888 bytes[OK]
Building configuration...
Compressed configuration from 1485 bytes to 888 bytes[OK]
Комментариев нет:
Отправить комментарий