VLAN и FreeBSD

()

Продолжая тему работы с транковыми сетями в юникс приведу простой пример настройки транков во FreeBSD. Такая задача у меня возникла при установке нового трафик-шейпера для интернет-провайдера, где я работаю. В сервере была только одна сетевая карта, а для шейпера надо было как минимум две - внутренний интерфейс с набором серых адресов и внешний интерфейс с белым адресом. И в очередной раз выходом стал перевод интерфейса в транковый режим.

Итак. Что мы имеем: сервер под управлением FreeBSD 7.0 и гигабитной сетевой картой intel (Видна в системе как em0). Так же есть два VLAN'а: 41 - в нём должны быть все серые адреса и 40 - в нем белый адрес.

По умолчанию в ядре уже есть опция "device vlan". Если же нет - добавьте её в конфиг ядра и пересоберите его.

Теперь открываем в редакторе /etc/rc.conf и убираем (комментируем) все настройки для em0. Далее дописываем следующие строки:

# Интерфейс должен быть поднят. Иначе ничего работать не будет
ifconfig_em0="up"

# Создаём пару виртуальных интерфейсов
cloned_interfaces="vlan40 vlan41"

# Настраиваем виртуальный интерфейс vlan40: привязываем его к em0,
# кладём в 40-й VLAN и присваиваем ему IP-адрес
ifconfig_vlan40="inet 11.11.11.11 netmask 255.255.255.252 vlan 40 vlandev em0 up"

# Настраиваем виртуальный интерфейс vlan41: привязываем его к em0,
# кладём в 41-й VLAN и присваиваем ему IP-адрес
ifconfig_vlan41="inet 10.65.255.248 netmask 255.255.0.0 vlan 41 vlandev em0 up"

# Вешаем дополнительные адреса (алиасы) на vlan41
ifconfig_vlan41_alias0="inet 10.63.255.248 netmask 255.255.0.0 up"
ifconfig_vlan41_alias1="inet 10.64.255.248 netmask 255.255.0.0 up"
ifconfig_vlan41_alias2="inet 10.66.255.248 netmask 255.255.0.0 up"
ifconfig_vlan41_alias3="inet 10.67.255.248 netmask 255.255.0.0 up"
ifconfig_vlan41_alias4="inet 10.68.255.248 netmask 255.255.0.0 up"
ifconfig_vlan41_alias5="inet 10.69.255.248 netmask 255.255.0.0 up"
ifconfig_vlan41_alias6="inet 10.70.255.248 netmask 255.255.0.0 up"
ifconfig_vlan41_alias7="inet 10.71.255.248 netmask 255.255.0.0 up"

Как видно из примера настройка VLAN'ов не намного сложнее настройки обычных интерфейсов, а алиасы вообще настраиваются точно так же, как и на обычных интерфейсах.

После настройки нужно перезапустить сеть:

/etc/rc.d/netif restart

И проверить результат командой:

ifconfig vlan41

Вывод должен выглядеть примерно вот так:

vlan41: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:07:e9:0b:28:0d
        inet 10.65.255.248 netmask 0xffff0000 broadcast 10.65.255.255
        inet 10.63.255.248 netmask 0xffff0000 broadcast 10.63.255.255
        inet 10.64.255.248 netmask 0xffff0000 broadcast 10.64.255.255
        inet 10.66.255.248 netmask 0xffff0000 broadcast 10.66.255.255
        inet 10.67.255.248 netmask 0xffff0000 broadcast 10.67.255.255
        inet 10.68.255.248 netmask 0xffff0000 broadcast 10.68.255.255
        inet 10.69.255.248 netmask 0xffff0000 broadcast 10.69.255.255
        inet 10.70.255.248 netmask 0xffff0000 broadcast 10.70.255.255
        inet 10.71.255.248 netmask 0xffff0000 broadcast 10.71.255.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
        vlan: 41 parent interface: em0

Если VLAN'ы не поднялись то попробуйте перезагрузить сервер. Если и это не поможет - проверьте наличие опции "device vlan" в конфиге ядра и в случае надобности пересоберите его.

Приятной работы!

См. также: VLAN и Linux

Ключевые слова: vlan, freebsd, ifconfig.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

Комментарии:

Anonymous 2010-12-14 09:28:49 (#)

Спасибо! Разобрался.

Anonymous 2010-12-23 00:13:40 (#)

У меня пара вопросов к знающим:
в каком режиме должен быть порт на свиче - trunk? (switchport mode trunk).
и ещё, как настроить маршрутизацию между транками?

MooSE 2010-12-23 01:47:57 (#)

У меня пара вопросов к знающим:
в каком режиме должен быть порт на свиче - trunk? (switchport mode trunk).
и ещё, как настроить маршрутизацию между транками?

1. Да. Транк.
2. Так же как между обычными интерфейсами

Anonymous 2014-04-16 19:44:40 (#)

Вопрос.
Все прописал в rc.conf, при вводе команды в консоли "ifconfig vlan10 create", все поднимается и работает, после перезагрузки нет vlan-ов. Что может быть не так ?
FreeBSD 8.2-RELEASE
"device vlan" -- в ядре есть.

MooSE 2014-04-18 15:05:06 (#)

Вопрос.
Все прописал в rc.conf, при вводе команды в консоли "ifconfig vlan10 create", все поднимается и работает, после перезагрузки нет vlan-ов. Что может быть не так ?
FreeBSD 8.2-RELEASE
"device vlan" -- в ядре есть.


Не знаю в чём может быть дело. Надо на месте смотреть.

Anonymous 2014-04-22 10:13:21 (#)

Не знаю в чём может быть дело. Надо на месте смотреть.

Странно, но поднимается только в виде:
ifconfig_bge0="up"
vlans_bge0="10 20"
ifconfig_bge0_10="inet x.x.x.x/x"
ifconfig_bge0_20="inet x.x.x.x/x"
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2024 Вадим Калинников aka MooSE
Политика конфиденциальности