Freebsd and Vlan

И так эта полезная штука мне очень сильно пригодилась в работе когда еще были актуальны софтовые роутеры   ( при тестировании всевозможных извращенных схем ) и так же это функция вам пригодиться если вы будете делать програмные маршрутизаторы .. все что связанно с безопасностью и витруализацией .

И так приступим :

Задача заставить Freebsd поддерживать стандарт IEEE 802.1Q . Если у вас стоит Freebsd менее 7 ветки , значит надо :

Пересобрать ядро с параметром :

device vlan

или просто выполнить след команду — тем самым подгрузив данный функционал как модуль

kldload if_vlan

Если стоит Freebsd балее 7 или  7  , тогда просто пропускаем шаги изложенные выше и приступаем сразу к созданию интерфейса vlan  ( а необходимые модули подтянуться автоматом )

# Что подтянет возможность использования vlan в Freebsd как  модуль (после ребута может понадобиться выполнить эту команду заного)

ifconfig vlan100 create
ifconfig vlan100 vlan 100 vlandev fxp0

# Тем самым мы делаем привязку данной vlan к интерфейсу , и все пакеты которые будут идти через vlan 100 будут тагированные (с пометкой tag ) .

ifconfig vlan100 192.168.16.14/30 # Вешаем IP на наш новый Vlan 100 Все .

/sbin/ifconfig vlan100 destroy — удалить vlan В rc.conf это будет выглядеть так

ifconfig_vlan100=»inet 192.168.1.15 netmask 255.255.255.0 vlan 100 vlandev em0″
ifconfig_vlan101=»inet 172.16.10.48 netmask 255.255.255.192 vlan 101 vlandev em0″
cloned_interfaces=»vlan100 vlan101″

Можно пойти дальше и сделать вторичный IP :

ifconfig_vlan101_alias0=»inet 172.16.10.48 netmask 255.255.255.192″

И удалить его соответственно можно :

ifconfig vlan101 inet 172.16.10.48 netmask 255.255.255.192 delete  — и  все , если еще напишите alias  то удалиться основной IP — имейте это ввиду и не наступайте на мои грабли .

А далее правила фаервола можно делать на этот вилан — как на интерфейс , и работать уже с витруальным интерфейсом (что необходимо иметь ввиду , ниже см. пример правила )

# ipfw add 1234 count ip from any to any via vlan0