Pull to refresh

Краткая инструкция по настройке Vlan-ов

Reading time 6 min
Views 78K
Для начала определимся что такое 802.1q vlan, дабы не изобретать велосипед маленькая вырезка из википедии:
VLAN (аббр. от англ. Virtual Local Area Network) — виртуальная локальная компьютерная сеть, представляет собой группу хостов с общим набором требований, которые взаимодействуют так, как если бы они были подключены к широковещательному домену, независимо от их физического местонахождения. VLAN имеет те же свойства, что и физическая локальная сеть, но позволяет конечным станциям группироваться вместе, даже если они не находятся в одной физической сети. Такая реорганизация может быть сделана на основе программного обеспечения вместо физического перемещения устройств.
На устройствах Cisco, протокол VTP (VLAN Trunking Protocol) предусматривает VLAN-домены для упрощения администрирования. VTP также выполняет «чистку» трафика, направляя VLAN трафик только на те коммутаторы, которые имеют целевые VLAN-порты. Коммутаторы Cisco в основном используют протокол ISL (Inter-Switch Link) для обеспечения совместимости информации.
По умолчанию на каждом порту коммутатора имеется сеть VLAN1 или VLAN управления. Сеть управления не может быть удалена, однако могут быть созданы дополнительные сети VLAN и этим альтернативным VLAN могут быть дополнительно назначены порты.
Native VLAN — это параметр каждого порта, который определяет номер VLAN, который получают все непомеченные (untagged) пакеты.


Для чего это надо?
Есть несколько ситуаций:
1. Банально представим ситуацию есть большая сеть, в районе покрытия этой сети у нас расположено два офиса, их необходимо объединить в одну физическую сеть, при этом общегородская сеть не должна видеть/иметь доступ к офисным тачкам. Данную ситуацию конешно можно разрулить VPN-ами, но на шифрованый трафик порядка 100 мегабит нужно не кислое железо, поэтому рулим vlan-aми.
2. Есть масса подсетей, территориально поделенных по городу, необходимо на каждую подсеть настроить интерфейс, по началу можно конечно обойтись сетевыми картами, но сети имеют свойства разростаться, и что прикажете делать, например в такой ситуации?:
serv:~# ifconfig | grep eth | wc -l
152
serv:~#

3. Клиенту необходимо выдать блок из 4,8,16 и т.д. и т.п. адресов.
4. Уменьшение количества широковещательного трафика в сети
Каждый VLAN — это отдельный широковещательный домен. Например, коммутатор — это устройство 2 уровня модели OSI. Все порты на коммутаторе, где нет VLANов, находятся в одном широковещательном домене. Создание VLAN на коммутаторе означает разбиение коммутатора на несколько широковещательных доменов. Если один и тот же VLAN есть на разных коммутаторах, то порты разных коммутаторов будут образовывать один широковещательный домен.
И множество других причин/ситуаций в которых это может понадобиться.
5. Увеличение безопасности и управляемости сети
Когда сеть разбита на VLAN, упрощается задача применения политик и правил безопасности. С VLAN политики можно применять к целым подсетям, а не к отдельному устройству. Кроме того, переход из одного VLAN в другой предполагает прохождение через устройство 3 уровня, на котором, как правило, применяются политики разрешающие или запрещающие доступ из VLAN в VLAN.

Как мне это все сделать?
Легко!

Тегирование трафика VLAN
Компьютер при отправке трафика в сеть даже не догадывается, в каком VLAN'е он размещён. Об этом думает коммутатор. Коммутатор знает, что компьютер, который подключен к определённому порту, находится в соответствующем VLAN'e. Трафик, приходящий на порт определённого VLAN'а, ничем особенным не отличается от трафика другого VLAN'а. Другими словами, никакой информации о принадлежности трафика определённому VLAN'у в нём нет.
Однако, если через порт может прийти трафик разных VLAN'ов, коммутатор должен его как-то различать. Для этого каждый кадр (frame) трафика должен быть помечен каким-то особым образом. Пометка должна говорить о том, какому VLAN'у трафик принадлежит.
Наиболее распространённый сейчас способ ставить такую пометку описан в открытом стандарте IEEE 802.1Q. Существуют проприетарные протоколы, решающие похожие задачи, например, протокол ISL от Cisco Systems, но их популярность значительно ниже (и снижается).

Настройка обычно происходит на серверах и на свитчах.
По умолчанию все сетевые устройства находятся в первом (1, default) vlan-e.
Поэтому подними 2-й vlan, с сетью 1
В зависимости от ОСи на сервере vlan-ы конфигурятся по разному.
В данной статье я попробую максимально коротко и четко описать различные способы настройки vlan-ов, на разных ОС.

И так поехали, попробуем на разных ОС сделать одну и ту же задачу — настроить 2-й vlan, с адресным пространством из 64-х адресов, 10.10.10.0/26
Для начала нам необходимо рассчитать маску, бродкастовый адрес и шлюз, в помощь прийдет ipcalc :)
Address: 10.10.10.0 00001010.00001010.00001010.00 000000
Netmask: 255.255.255.192 = 26 11111111.11111111.11111111.11 000000
Wildcard: 0.0.0.63 00000000.00000000.00000000.00 111111
=>
Network: 10.10.10.0/26 00001010.00001010.00001010.00 000000 (Class A)
Broadcast: 10.10.10.63 00001010.00001010.00001010.00 111111
HostMin: 10.10.10.1 00001010.00001010.00001010.00 000001
HostMax: 10.10.10.62 00001010.00001010.00001010.00 111110
Hosts/Net: 62 (Private Internet)

Шлюзом сделаем 10.10.10.1
Маска 255.255.255.192 или 26
Broadcast 10.10.10.63
Итого мы получаем на клиентов 61 адрес, 10.10.10.2 — 10.10.10.62

Debian-like:
Нам необходимо поставить пакет vlan
# apt-get install vlan
Далее переходим в /etc/network/
и правим файл с интерфейсами.
# nano interfaces
auto eth0.2 # автоматически поднимаем интерфейс после ребута. eth0 транковый интерфейс в которы подаем vlan
iface eth0.2 inet static
address 10.10.10.1
netmask 255.255.255.192
broadcast 10.10.10.63

поднимаем интерфес:
# ifup eth0.2

Red-Hat-like:
Для ред-хата необходима утилита настройки vlan'ов, ставим утилиту vconfig
[root@notebook ~]# yum search vconfig
vconfig.i686 : Linux 802.1q VLAN configuration utility
[root@notebook ~]# yum install -y vconfig

Добавим второй vlan в eth0.
[root@notebook ~]# vconfig add eth0 2
переходим в /etc/sysconfig/network-scripts, создадим файл интерфейса, редактируем его
[root@notebook ~]# cd /etc/sysconfig/network-scripts
[root@notebook ~]# touch ifcfg-eth0.2
[root@notebook ~]# nano ifcfg-eth0.2
DEVICE=eth0.2
VLAN_TRUNK_IF=eth0
BOOTPROTO=static
IPADDR=10.10.10.1
NETMASK=255.255.255.192
BROADCAST=10.10.10.63
ONBOOT=yes

поднимаем интерфейс
[root@notebook ~]# ifup eth0.2

В BSD-like:
ifconfig vlan_device vlan vlan_id vlandev parent_device
ifconfig vlan0 vlan 2 vlandev xl0
ifconfig vlan0 inet 10.10.10.1 netmask 255.255.255.192

Для того чтобы интерфейс автоматически загружался, правим /etc/rc.conf.
cloned_interfaces="vlan0" #You need a recent STABLE for this else use:
#network_interfaces="lo0 vlan0"
ifconfig_vlan0="inet 10.10.10.1 netmask 255.255.255.192 vlan 24 vlandev xl0"
#Note: If you do not assign an IP Adress to your parent device, you need to
#start it explicitly:
ifconfig_xl0="up"


Теперь перейдем к более интересному пункту, настройка сетевых коммутаторов.
т.к. коммутаторы 2-го уровня бывают разные я приведу несколько примеров по настройке, на разных коммутаторах разное меню соответственно по разному настраивается, обычно ничего сложного нет, и принцип настройки одинаковый. ситуация серв включен в 1-й порт, необходимо подать 2-й влан в 4,5,6 порты, и во втором порту подать его тегированным.

На D-Link-е:
config vlan default delete 1-26
config vlan default add untagged 1,3,7-24
create vlan Offices tag 2
config vlan Offices add tagged 1,2
config vlan Offices add untagged 4,5,6
save

Пробуем воткнуться в 4 дырочку сетевым устройством и прописать адрес из диапазона 10.10.10.0/26 и банально пингами проверить.

На Asotel-ях
set 1qvlan create 2 Offices #создадим 2-й влан
set 1qvlan modify -4-5-6 1 0 #уберем первый с 4,5,6-го портов
set 1qvlan modify +1+2 2 1 #подадим тегированный 2-й влан в 1,2 порты
set 1qvlan modify +4+5+6 2 0 #подадим нетегированный 2-й влан в 4,5,6 порты
set 1qvlan pvid 4 2 # скажем свитчу что 4 дырка пренадлежит 2-му влану, аналогично делаем с 5,6
set 1qvlan pvid 5 2
set 1qvlan pvid 6 2


На EdgeCore/LinkSys
Vty-0#configure
Vty-0(config)#vlan database
Vty-0(config-vlan)#
Vty-0(config-vlan)#vlan 2 name Offices media ethernet state active
Vty-0(config-vlan)#exit
Vty-0(config)#interface ethernet 1/1
Vty-0(config-if)#switchport mode trunk
Vty-0(config-if)#switchport allowed vlan add 2 tagged
Vty-0(config-if)#exit
Vty-0(config)#interface ethernet 1/2
Vty-0(config-if)#switchport mode trunk
Vty-0(config-if)#switchport allowed vlan add 2 tagged
Vty-0(config-if)#exit
Vty-0(config)#interface ethernet 1/4
Vty-0(config-if)#switchport mode access
Vty-0(config-if)#switchport allowed vlan add 2 untagged
Vty-0(config-if)#switchport native vlan 2
Vty-0(config-if)#exit
Vty-0(config)#interface ethernet 1/5
Vty-0(config-if)#switchport mode access
Vty-0(config-if)#switchport allowed vlan add 2 untagged
Vty-0(config-if)#switchport native vlan 2
Vty-0(config-if)#exit
Vty-0(config)#interface ethernet 1/6
Vty-0(config-if)#switchport mode access
Vty-0(config-if)#switchport allowed vlan add 2 untagged
Vty-0(config-if)#switchport native vlan 2
Vty-0(config-if)#exit
Vty-0(config)#exit
Vty-0#copy running-config startup-config
; Для проверки запустим
Vty-0#show running-config


p.s. Старался максимально коротко и ясно показать на примерах принцип настройки оборудования.
Tags:
Hubs:
+21
Comments 19
Comments Comments 19

Articles