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. Например для 2 и 3 VLAN при родительском интерфейсе “xl0” это будет выглядеть
cloned_interfaces="vlan2 vlan3"
ifconfig_vlan2="inet 192.168.17.3 netmask 255.255.255.0 vlan 2 vlandev xl0"
ifconfig_vlan3="inet 192.168.16.3 netmask 255.255.255.0 vlan 3 vlandev xl0"
Все, теперь VLAN 2 и 3 появятся при следующей загрузке. Для избежания перезагрузки сервера, требуется оперировать командами (создаем 2 VLAN от родительского интерфейса “xl0“). От root выполняем
#ifconfig vlan2 create
#ifconfig vlan2 vlan 2 vlandev xl0
#ifconfig vlan2 192.168.17.3/24
Командой ifconfig проверяем что VLAN 2 создался и ip адрес назначен.
vlan2: flags=8943 mtu 1500
inet 192.168.17.3 netmask 0xffffff00 broadcast 192.168.17.255
ether 00:04:75:86:76:ab
media: Ethernet autoselect (100baseTX )
status: active
vlan: 2 parent interface: xl0
Для удаления VLAN 2 интерфейса выполните команду
ifconfig vlan2 destroy
Настройка VLAN в OpenBSD
Работа с командами VLAN в OpenBSD идентична FreeBSD системам. Команды консоли почти одинаковые. От root выполняем
#ifconfig vlan2 create
#ifconfig vlan2 vlan 2 vlandev xl0
#ifconfig vlan2 inet 192.168.17.3 netmask 255.255.255.0
Для автоматического старта VLAN при старте ОС создаем конфигурационный файл /etc/hostname.vlan2 с таким содержимым
#cat /etc/hostname.vlan2
inet 192.168.17.3 255.255.255.0 192.168.17.255 vlandev xl0 description "Interface VLAN 2"
Вот и все хитрости с настройкой. Не забудьте настроить порт коммутатора или роутера в который воткнут ваш компьютер на работу с Vlan.