- Рассмотрим настройку VLAN на коммутаторах Cisco и Dlink
- Сначала для коммутаторов DLink
- Теперь для коммутаторов Cisco Catalyst
- Работа с VLAN для маршрутизаторов
- Создать виртуальный интерфейс принадлежащий VLAN с номером 100, для маршрутизаторов Cisco
- Создать виртуальный интерфейс принадлежащий VLAN с номером 100, для маршрутизаторов Juniper
- Создать виртуальный интерфейс принадлежащий 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 выполняет несколько основных задач:
- Назначает отметку VLAN кадрам пришедшим в коммутатор по заданному условию (отдельный порт коммутатора отдельный VLAN);
- Снимает отметку о VLAN, при передаче кадров в подключённый сегмент по условию (отдельный порт коммутатора отдельный VLAN);
- Пропускает кадры с отметкой VLAN при необходимости (данная функция работает на всех коммутаторах которые не поддерживают VLAN, для коммутаторов с поддержкой VLAN данную функцию надо настраивать отдельно).
Дополнительно могут присутствовать функции фильтрации VLAN, обмен информацией о VLAN с другими устройствами, а также и другие функции.
В терминах Cisco порт коммутатора который должен пропускать кадры с разными отметками о VLAN называется trunk (транковый) и tagged (тегированный) в терминах DLink. Порт к которому подключается сегмент сети который коммутатор должен отметить номером VLAN называется access (порт доступа) в терминах Cisco и untagged (не тегированный) в терминах Dlink. Транковый порт также может является и портом доступа, для этого ему надо назначить номер его собственной (native в терминах Cisco) VLAN.
Алгоритм работы коммутатора достаточно прост:
- При получении кадра без отметки о VLAN на порт доступа, данный кадр помечается требуемой отметкой о VLAN и передаётся дальше в соответствии с таблицей коммутации;
- При получении кадра с отметкой о VLAN на порт доступа, данный кадр отбрасывается, либо может быть обработан как в первом пункте, что сильно зависит от типа и версии программного обеспечения коммутатора;
- При получении кадра с отметкой о VLAN на транковом порту, кадр будет обработан если номер данной VLAN задан в настройках порта коммутатора;
- При получении кадра без отметки о VLAN на транковом порту, кадр будет обработан в соответствии с пунктами 1 или 2, если задан собственный номер VLAN этого порта, или принят в обработку с номером VLAN по умолчанию, или отброшен эти действия в значительной степени зависят от типа и версии программного обеспечения коммутатора. Кроме того, собственный номер VLAN на trunk порту может присутствовать по умолчанию, об этом следует узнать в документации к устройству.
Настроим первый порт как порт доступа для VLAN 100 и порт 2 как магистральный порт для работы с сетями 100 и 1.
Сначала для коммутаторов DLink
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, данный трюк обычно приводит к нужному результату.
- Под физической средой и физической сетью понимается отдельное оборудование и кабельные соединения организующую сеть. Виртуальные сети в этом случае две и более сети построенные полностью на одном и том же оборудовании и кабельных соединениях и разделяемые по другим признакам.
- Предполагается что читателю известно о семиуровневой модели ISO/OSI
- Описанная функциональность была опробована на оборудовании: Cisco Catalyst 3750, 2950, 2960, Cisco Router 2801,2821,7201,7206,7301, DLink DES 3526,3028, DGS 3024, 3624, Juniper JunOS 9.3, FreeBSD 7.2
- Часто задаваемые вопросы про управляемые коммутаторы DLink
- Часто задаваемые вопросы по оборудованию DLink очень много полезного
- http://dlink.ru/ru/faq/62/185.html
- http://dlink.ru/ru/faq/62/212.html
- http://dlink.ru/ru/faq/62/188.html
- http://dlink.ru/ru/faq/62/185.html
- http://www.cisco.com/en/US/tech/tk389/tk815/technologies_configuration_example09186a00800949fd.shtml
- http://blog.plastilin.org.ua/2008/12/vlan-freebsd.html
- http://www.juniper.net/techpubs/software/junos/junos56/swconfig56-interfaces/html/interfaces-ethernet-config12.html