VLAN (Virtual Local Area Network) – виртуальные локальные сети – выделение одной или нескольких виртуальных (логических) подсетей в рамках одной физической сети.
Рассказывать про назначение VLAN, их преимущества и т.д. я не буду. Если вы доросли до настройки VLAN значит пора заняться конфигурированием ОС, а не читать скучные термины 🙂
Настройка VLAN в Linux
Проверяем наличие пакета vlan в системе, если нет, то ставим из репозиториев или скачиваем исходники с этой страницы
Для Ubuntu (Debian):
sudo aptitude install vlan
Для работы VLAN требуется модуль ядра 8021q, подгружаем его
sudo modprobe 8021q
и прописываем автоматическую загрузку модуля при старте системы. Для этого в файле /etc/modules добавляем строку 8021q.
Создаем новые VLAN интерфейсы в файле /etc/network/interfaces. Например для VLAN 2 и 3 где родительская сеть висит на интерфейсе eth0 (вместо eth0, ip и номера VLAN подставьте свои данные).
auto vlan2
auto vlan3
# VLAN 2
iface vlan2 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
mtu 1500
vlan_raw_device eth0
# VLAN 3
iface vlan3 inet static
address 10.10.3.3
netmask 255.255.255.0
network 10.10.3.0
broadcast 10.10.3.255
mtu 1500
vlan_raw_device eth0
Перезапускаем сетевые интерфейсы и через команду ifconfig убеждаемся что VLAN присутствуют в системе.
sudo /etc/init.d/networking restart
Для некоторых дистрибутивов linux, (например Slackware) нет отдельных настроек в конфигурационных файлах для задания VLAN. Поэтому требуется знать как создавать VLAN прямо из командной строки, а уже потом на основании этих команд написать простенький скрипт автозагрузки при старте системы.
Разберем создания VLAN 10 с ip 192.168.10.1 на родительском интерфейсе eth0. От root или sudo выполним в консоли
#ip link set up eth0
#vconfig add eth0 10
#ip link set up eth0.10
#ip addr add 192.168.10.1/24 dev eth0.10 broadcast +
Удалить VLAN 10 с помощью команд
#ip link set down eth0.10
#ip addr del 192.168.10.1/24 dev eth0.10 broadcast +
#vconfig rem eth0.10
Ну а скрипт запуска для ОС получится примерно таким – rc.vlan
#!/bin/sh
#
# /etc/rc.d/rc.vlan
#
# Start/stop the VLAN
#
case "$1" in
'start')
/sbin/ip link set up eth0
/sbin/vconfig add eth0 10
/sbin/ip link set up eth0.10
/sbin/ip addr add 192.168.10.1/24 dev eth0.10 broadcast +
;;
'stop')
/sbin/ip link set down eth0.10
/sbin/ip addr del 192.168.10.1/24 dev eth0.10 broadcast +
/sbin/vconfig rem eth0.10
;;
*)
echo "usage $0 start|stopt" ;;
esac
Настройка VLAN в FreeBSD
Первым делом подгружаем VLAN модуль ядра в систему. От root выполняем
kldload if_vlan
Прописываем загрузку этого модуля при старте системы, для этого в файл /boot/loader.conf добавим строки
if_vlan_load=”YES”
Можно обойтись и без загрузки модулей – переконфигурировать ядро с поддержкой VLAN. В конфиг ядра включить строку
device vlan
и пересобрать ядро.
Прописываем создание VLAN в файл /etc/rc.conf. Например для 12 и 13 VLAN при родительском интерфейсе “xl0” это будет выглядеть
cloned_interfaces="vlan12 vlan13"
ifconfig_vlan12="inet 192.168.12.5 netmask 255.255.255.0 vlan 12 vlandev xl0"
ifconfig_vlan13="inet 192.168.13.5 netmask 255.255.255.0 vlan 13 vlandev xl0"
Все, теперь VLAN 12 и 13 появятся при следующей загрузке. Для избежания перезагрузки сервера, требуется оперировать командами (создаем 12 VLAN от родительского интерфейса “xl0“). От root выполняем
#ifconfig vlan12 create
#ifconfig vlan12 vlan 12 vlandev xl0
#ifconfig vlan12 192.168.12.5/24
Командой ifconfig проверяем что VLAN 2 создался и ip адрес назначен.
vlan2: flags=8943 mtu 1500
inet 192.168.12.5 netmask 0xffffff00 broadcast 192.168.12.255
ether 00:14:85:86:76:ab
media: Ethernet autoselect (100baseTX )
status: active
vlan: 12 parent interface: xl0
Для удаления VLAN 12 интерфейса выполните команду
ifconfig vlan12 destroy
Настройка VLAN в OpenBSD
Работа с командами VLAN в OpenBSD идентична FreeBSD системам. Команды консоли почти одинаковые. От root выполняем
#ifconfig vlan12 create
#ifconfig vlan12 vlan 12 vlandev xl0
#ifconfig vlan12 inet 192.168.12.5 netmask 255.255.255.0
Для автоматического старта VLAN при старте ОС создаем конфигурационный файл /etc/hostname.vlan2 с таким содержимым
#cat /etc/hostname.vlan12
inet 192.168.12.5 255.255.255.0 192.168.12.255 vlandev xl0 description "Interface VLAN 12"
Вот и все хитрости с настройкой. Не забудьте настроить порт коммутатора или роутера в который воткнут ваш компьютер на работу с Vlan.