Продолжая тему работы с транковыми сетями в юникс приведу простой пример настройки транков во 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
Anonymous 2010-12-14 09:28:49 (#)