Встала задача маршрутизировать vlan’ы. Нашёл вот такое решение
Создание vlan’а
#ifconfig vlan101 create
#ifconfig vlan101 vlan 101 vlandev em0
Или тоже самое, но одной командой:
#ifconfig vlan101 create vlan 101 vlandev em0 up
Для поднятия vlan’ов при загрузке ОС в /etc/rc.conf добавляем следующее
cloned_interfaces="vlan101 vlan102 vlan103"
ifconfig_vlan101="inet x.x.x.x netmask 255.255.255.248 vlan 101 vlandev em0 mtu 1500"
ifconfig_vlan102="inet x.x.x.x netmask 255.255.255.248 vlan 102 vlandev em0 mtu 1500"
ifconfig_vlan103="inet x.x.x.x netmask 255.255.255.248 vlan 103 vlandev em0 mtu 1500"
ifconfig_em0="up mtu 1504"
Примечание.
Если сетевая карта не поддерживает MTU больше 1500, тогда нужно именить значение MTU непосредственно для самих вланов на 4 байта меньше, то есть поставить 1496:
ifconfig_em0="up mtu 1500"
ifconfig_vlan101="inet x.x.x.x netmask 255.255.255.248 vlan 101 vlandev em0 mtu 1496"
Если нужно добавить много вланов, то я написал скрипт для автоматизации создания вланов (в /etc/rc.conf придёться добавлять все вланы вручную)
#!/bin/sh
for i in vlan101 vlan102 vlan103
do
echo $i
n=`echo $i | awk '{a=substr($1,5,3); print a}'`
/sbin/ifconfig $i create && ifconfig $i vlan $n vlandev em0
done
Примечание.
Если у вас прописаны вланы в /etc/rc.conf, то для создания вланов, достаточно просто выполнить команду:
ifconfig vlanX create
Важный момент – значение MTU на интерфейсе с вланами. Поскольку для инкапсуляции вланов используется дополнительно 4 байта, то и MTU соответственно нужно увеличить на 4 байта, то есть 1504 (для vlan’ов с MTU 1500).
Скажу сразу, что не все сетевые адаптеры позволяют задавать MTU больше 1500. Выход простой – у вланов тогда ставьте MTU 1496.
Так же не забудьте, на свичах включать jumbo frames, где это явно можно задать.
QinQ vlans
Отдельно хочется сказать про QinQ вланы. Это технология, которая позволяет инкапсулировать вланы во вланы. Например, есть несколько пользовательских вланов, которые нужно передать на другой конец. Можно конечно использовать переименование вланов, но так быстро закончатся доступные порты, а можно делать QinQ. О том, как это сделать, кратко написано здесь
http://alexandr.sysoev.ru/node/134
http://birdofluck.livejournal.com/3451.html
По материалам : skeletor.org.ua
http://ru.wikipedia.org/wiki/VLAN
http://www.technotrade.com.ua/Articles/what_is_vlan.php