Каталог провайдеров Волгограда

Настройка VLAN

  1. Рассмотрим настройку VLAN на коммутаторах Cisco и Dlink
  2. Сначала для коммутаторов DLink
  3. Теперь для коммутаторов Cisco Catalyst
  4. Работа с VLAN для маршрутизаторов
  5. Создать виртуальный интерфейс принадлежащий VLAN с номером 100, для маршрутизаторов Cisco
  6. Создать виртуальный интерфейс принадлежащий VLAN с номером 100, для маршрутизаторов Juniper
  7. Создать виртуальный интерфейс принадлежащий VLAN с номером 100, для FreeBSD

Виртуальная локально-вычислительная сеть - Virtual Local Area Network (произносится как ВиЛАН или ВЛАН, первый вариант, по моим наблюдениям, более характерен для профессиональной среды). VLAN - технология позволяющая с определённой степенью надежности изолировать две вычислительные среды друг от друга, при этом использующие одну физическую среду. Определённая степень надёжности это широковещательный домен Ethernet, то есть два устройства с одинаковыми MAC-адресами подключенные к одному коммутатору или даже к общей шине никогда не пересекутся, если при этом они находятся в разных VLAN-ах. Домен коллизий при этом не будет ограничен VLAN, т.к. условия распространения в физической среде не поменялись и в общую физическую среду в данный момент времени по прежнему может передавать только одно устройство. В настоящее время (с приходом повсеместно коммутаторов вместо повторителей (хабов)) это не является проблемой, т.к. в домен коллизий входят только два устройство одно из которых коммутатор, а второе то которое мы подключаем и они используют для передачи и приёма разные физические соединения.

Разделение по VLAN-ам организовано на уровне кадров Ethernet и не предусматривает шифрования, аутентификации и любых других способов сокрытия информации между разными виртуальными сетями. То есть при наличии в физической сети разных VLAN получить (перехватить) данные передаваемые в любой из них является тривиальной задачей и решить её можно с помощью практически любого активного сетевого оборудования. Единственным условием является наличие в данном сегменте именно разных VLAN, т.к. в большинстве случаев это возможно только для магистральных каналов, к которым не подключаются конечные пользователи. Например, если мы точно знаем что наши компьютеры принадлежат к VLAN номер 1, а в соседнем кабинете к VLAN номер 2, то получить данные из VLAN номер 2 скорее всего не получится, т.к. они просто не попадают (физически) в наш сегмент сети.

Технология VLAN стандартизирована IEEE комитет 802.1q (дот 1 ку — часто можно слышать как синоним технологии VLAN) и включает 4 байта в кадре Ethernet в дополнительном поле, что не нарушает структуру самого кадра: используется часть поля данных стандартного кадра Данный подход позволяет применять сетевое оборудование не поддерживающее VLAN без любых дополнительных изменений. Отдельные виртуальные сети нумеруются числами от 0 до 4095, всего 4096 сетей, для этого отводится 12 бит. Остальные биты кодируют тип тегирования — что это именно VLAN по стандарту 802.1q первые два байта должны быть 0x8100, приоритет кадра для QoS (3 бита, стандарт 802.1p) и что используемый адрес Ethernet имеет общепринятый вид (1 бит). В результате внесения номера VLAN, кадр Ethernet будет обрабатываться в соответствии с этим номером тем оборудованием которое поддерживает работу по протоколу 802.1q, сам кадр при этом будет называться tagged (тегированный, отмеченный). Процедура внесения информации о номере VLAN есть тегирование. Существует также и обратная процедура растегирование, и кадр который не имеет информации о VLAN untagged (не тегированный, не отмеченный). VLAN номер 1 — сеть по умолчанию, обычно совпадает с физической сетью и часто принимается как номер VLAN при настройке портов, если не указан никакой другой номер.

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

В первом случае используется одна физическая среда для передачи данных двух различных сетей, т.е. их взаимное влияние стремится к 0. Полностью исключить это влияние не получится, потому что при проблемах с физической средой пострадают обе сети и потому что пропускная способность этих двух сетей не будет выше пропускной способности физической среды, т.е. при глобальном пакетном шторме вероятно что не будет работать ни одна из них. Во всём остальном это две различные сети, взаимный трафик, включая широковещательный на уровне Ethernet, передаваться между сетями не будет.

Во втором случае мы экономим на вычислительной мощности, т.к. за счёт использования VLAN вместо двух и более физических портов используем только один. Но для этого необходимо первоначально пометить и свести в одну физическую среду кадры из разных физических сетей и это потребует от нас иметь достаточное количество портов, по одному для каждого физического сегмента сети, для чего используется более дешёвое, по сравнению с маршрутизаторами, оборудование — коммутаторы которые как правило уже имеются и служат для той же цели — объединение различных сегментов сети. Также можно использовать сетевые карты с поддержкой VLAN на абонентском оборудовании и для каждой из них настраивать принадлежность к определённой VLAN, но это решение не совсем оптимально при большом количестве обслуживаемой техники. Маршрутизатор подключается всего одной связью к коммутатору и способен обрабатывать запросы из всех сетей (помним про физическую пропускную способность сети).

Виртуальные сети — это разные сети, и для того чтобы данные попадали из одной в другую необходимо наличие маршрутизатора, другими средствами объединить две виртуальные сети (также как и две обычные сети) не получится.

Рассмотрим настройку VLAN на коммутаторах Cisco и Dlink

Коммутатор при работе с VLAN выполняет несколько основных задач:

  1. Назначает отметку VLAN кадрам пришедшим в коммутатор по заданному условию (отдельный порт коммутатора отдельный VLAN);
  2. Снимает отметку о VLAN, при передаче кадров в подключённый сегмент по условию (отдельный порт коммутатора отдельный VLAN);
  3. Пропускает кадры с отметкой VLAN при необходимости (данная функция работает на всех коммутаторах которые не поддерживают VLAN, для коммутаторов с поддержкой VLAN данную функцию надо настраивать отдельно).

Дополнительно могут присутствовать функции фильтрации VLAN, обмен информацией о VLAN с другими устройствами, а также и другие функции.

В терминах Cisco порт коммутатора который должен пропускать кадры с разными отметками о VLAN называется trunk (транковый) и tagged (тегированный) в терминах DLink. Порт к которому подключается сегмент сети который коммутатор должен отметить номером VLAN называется access (порт доступа) в терминах Cisco и untagged (не тегированный) в терминах Dlink. Транковый порт также может является и портом доступа, для этого ему надо назначить номер его собственной (native в терминах Cisco) VLAN.

Алгоритм работы коммутатора достаточно прост:

  1. При получении кадра без отметки о VLAN на порт доступа, данный кадр помечается требуемой отметкой о VLAN и передаётся дальше в соответствии с таблицей коммутации;
  2. При получении кадра с отметкой о VLAN на порт доступа, данный кадр отбрасывается, либо может быть обработан как в первом пункте, что сильно зависит от типа и версии программного обеспечения коммутатора;
  3. При получении кадра с отметкой о VLAN на транковом порту, кадр будет обработан если номер данной VLAN задан в настройках порта коммутатора;
  4. При получении кадра без отметки о VLAN на транковом порту, кадр будет обработан в соответствии с пунктами 1 или 2, если задан собственный номер VLAN этого порта, или принят в обработку с номером VLAN по умолчанию, или отброшен эти действия в значительной степени зависят от типа и версии программного обеспечения коммутатора. Кроме того, собственный номер VLAN на trunk порту может присутствовать по умолчанию, об этом следует узнать в документации к устройству.

Настроим первый порт как порт доступа для VLAN 100 и порт 2 как магистральный порт для работы с сетями 100 и 1.

create vlan 100 tag 100
conf vlan default delete untagged 1
conf vlan 100 add untagged 1
conf vlan 100 add tagged 2

show vlan

VID             : 1          VLAN Name     : default
VLAN TYPE       : static     Advertisement : Enabled
Member ports    : 2-26         
Static ports    : 2-26         
Current Untagged ports : 2-26         
Static Untagged ports  : 2-26         
Forbidden ports :                     

VID             : 100       VLAN Name     : 100
VLAN TYPE       : static     Advertisement : Disabled
Member ports    : 1-2
Static ports    : 1-2
Current Untagged ports : 1
Static Untagged ports  : 1
Forbidden ports :

Первая команда создает VLAN с именем 100 и номером 100.

Вторая команда удаляет из первой VLAN с именем default порт доступа 1, который присутствует там по умолчанию.

Третья команда назначает первый порт как порт доступа для VLAN 100. То есть если приходит не отмеченный кадр, то он отмечается как VLAN 100.

Четвёртая команда настраивает порт два для пропуска кадров из VLAN 100. По умолчанию данный порт уже настроен как порт доступа для VLAN 1, поэтому получается что при приходе отмеченных пакетов VLAN 100 они пропускаются дальше, если приходит не отмеченный пакет он помечается как VLAN 1.

Последняя команда выводит все настроенные VLAN на коммутаторе.

Теперь для коммутаторов Cisco Catalyst

#conf t
(config)#vlan 100
(config-vlan)#exit

(config)#int fa0/1
(config-if)#switchport trunk encapsulation dot1q
(config-if)#switchport mode access
(config-if)#switchport access vlan 100
(config-if)#exit

(config)#int fa0/2
(config-if)#switchport trunk encapsulation dot1q
(config-if)#switchport mode trunk
(config-if)#switchport trunk allowed vlan 1,100
(config-if)#switchport trunk native vlan 1
(config-if)#^Z

#show vlan brief
VLAN Name                             Status    Ports

---- -------------------------------- --------- -------------------------------

1    default                          active    Fa0/2, Fa0/3, Fa0/4,
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8,
                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12,
                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16,
                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20
                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24
100  VLAN0100                         active    Fa0/1
...


#show int status
Port   Name    Status       Vlan    Duplex   Speed  Type
Fa0/1          notconnect   100     auto     auto   10/100BaseTX
...

Создаём VLAN 100

Настраиваем первый порт как порт доступа. В Cisco может поддерживаться несколько типов VLAN поэтому указываем что мы используем стандарт IEEE 802.1q

Второй порт будет магистральным портом, но для начала также указываем что используем IEEE 802.1q стандарт. Кроме этого мы формируем какие из виртуальных сетей будут пропускаться сквозь этот интерфейс и настраиваем собственную VLAN.

Отличие настройки коммутаторов DLink и Cisco в подходе к формированию настроек VLAN: в DLink настройки в первую очередь ориентированы на оперирование с VLAN, т.е. порты добавляются к VLAN, в Cisco первую роль в формировании играют интерфейсы, которые переводятся из одной VLAN в другую.

В коммутаторах Cisco Catalyst существует возможность настроить работу с каждой VLAN также как и при использовании маршрутизаторов, т.е. создать интерфейс принадлежащей каждой VLAN, работающий на сетевом уровне:

#conf t
(config)#int vlan1
(config-if)#ip address 192.168.0.1 255.255.255.0
(config-if)#no shutdown
(config-if)#^Z

#show ip int brief
Interface        IP-Address         OK?    Method      Status      Protocol 
Vlan1            192.168.0.1        YES    manual        up           up 

Работа с VLAN для маршрутизаторов

Для маршрутизаторов отдельный виртуальный интерфейс принадлежащий VLAN – то же что и отдельный физический интерфейс. Как правило интерфейсы разделяемые при помощи технологии VLAN имеют следующее обозначение <номер/имя интерфейса/порта>.<номер VLAN>, впрочем, для многих операционных систем и маршрутизаторах имя можно задавать любое.

Маршрутизатор работает с пакетами и для него интерфейс подключённый к VLAN ничем не отличается от любого другого интерфейса. Пакеты обрабатываются в соответствии с правилами маршрутизации в которых в качестве интерфейсов фигурируют в том числе и виртуальные VLAN-интрефейсы. Если какому либо интерфейсу, явно не назначен номер VLAN, то скорее всего будет VLAN номер 1, но на это не стоит полагаться, а назначить номер VLAN сомостоятельно.

Создать виртуальный интерфейс принадлежащий VLAN с номером 100, для маршрутизаторов Cisco

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

#conf t
(config)#int fa0/0.100
(config-subif)#encapsulation dot1q 100
(config-subif)#ip address 192.168.0.1 255.255.255.0
(config-subif)#^Z

#show int fa0/0.100

FastEthernet0/0.100 is up, line protocol is up
  Hardware is DEC21140, address is ca02.17a0.0000 (bia ca02.17a0.0000)
  Internet address is 192.168.0.1/24
  MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation 802.1Q Virtual LAN, Vlan ID  100.
  ARP type: ARPA, ARP Timeout 04:00:00
  Last clearing of "show interface" counters never

#show ip route

Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.0.0/24 is directly connected, FastEthernet0/0.100

Создать виртуальный интерфейс принадлежащий VLAN с номером 100, для маршрутизаторов Juniper

Переходим в режим конфигурации. Устанавливаем режим поддержки VLAN на физическом интерфейсе. Далее также как и в предыдущем случае, выбираем номер подинтрефейса затем назначаем номер VLAN и другие необходимые параметры:

>configure
#set interfaces ge-0/0/0 vlan-tagging
#set interfaces ge-0/0/0 unit 100 vlan-id 100
#set interfaces ge-0/0/0 unit 100 family inet address 192.168.0.1/24
#commit
#exit
>show interfaces ge-0/0/0.100

Logical interface ge-0/0/0.100 (Index 75) (SNMP ifIndex 214)
	    Flags: SNMP-Traps 16384 VLAN-Tag [ 0x8100.100 ] Encapsulation: ENET2
	  Input packets : 0
	  Output packets: 0
	    Protocol inet, MTU: 1500
	      Flags: None
	      Addresses, Flags: Is-Preferred Is-Primary
	        Destination: 192.168.0/24, Local: 192.168.0.1, Broadcast: 192.168.0.255

>show route

inet.0: 10 destinations, 10 routes (2 active, 0 holddown, 1 hidden)
+ = Active Route, - = Last Active, * = Both
192.168.0.0/24   *[Direct/0] 2w4d 13:11:14
                    > via ge-0/0/0.100

Создать виртуальный интерфейс принадлежащий VLAN с номером 100, для FreeBSD

Сначала создаём интерфейс, потом назначаем ему номер VLAN и физический интерфейс, на который сходятся наши виртуальные сети:

#ifconfig vlan100 create
#ifconfig vlan100 vlan 100 vlandev eth0

#ifconfig vlan100

vlan100: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 08:00:27:2f:61:f8
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
        vlan: 100 parent interface: eth0

После этого с данными интерфейсом можно работать также как и с обычным:

#ifconfig vlan100 alias 192.168.0.1/24

#ifconfig vlan100


vlan100: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 08:00:27:2f:61:f8
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
        vlan: 100 parent interface: eth0

#netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
127.0.0.1          127.0.0.1          UH          0       28    lo0
192.168.0.0/24     link#4             UC          0        0 vlan10

Создать интерфейс принадлежащий VLAN 100 можно и так (в этом случае номер VLAN задаётся автоматически):

#ifconfig eth0.100 create

#ifconfig eth0.100

eth0.100: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 08:00:27:2f:61:f8
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
        vlan: 100 parent interface: eth0

Данный способ не всегда корректно срабатывает: если в системе нет ни одного виртуального интерфейса, то с большой вероятностью интерфейс вида eth0.X не будет создан. Для решения этой проблемы, можно создать сначала интерфейс с произвольным именем, потом удалить его и создать интерфейс вида eth0.X, данный трюк обычно приводит к нужному результату.