Чем мне нравится FreeBSD, тем что уже во всех последних версиях все готово, чтобы настроить простейший VLAN без шифрования, достаточно воспользоваться командой gifconfig, без пересборки ядра. Выглядит все просто:
gifconfig gif0 inet 10.1.1.1 10.2.3.4 (Взято из man gifconfig)
ifconfig gif0 inet <Внутренний адресс шлюза> <Внутренний адресс удаленного шлюза> netmask 0xffffffff
На удаленном шлюзе все тоже, только наоборот
или внести в rc.conf такие стороки:
gif_interfaces="gif1"
static_routes="net1"
gifconfig_gif1="<Внешний адресс шлюза> <Внешний адресс удаленного шлюза>"
ifconfig_gif1="<Внутренний адресс шлюза> <Внутренний адресс удаленного шлюза> netmask 255.255.255.255"
route_net1="-net <адресс удаленной сеть> <Внутренний адресс шлюза удаленной сети> <маска>"
На удаленном шлюзе тоже самое, только наоборот. Затем reboot и усе тунель готов.
Хотя все это не есть хорошо... так как трафик не шифруется. Чтоб шифровался нужно подключать IPSec и Racoon, IPSec включается в ядре, Racoon ставится отдельно.