VLAN в FreeBSD

Материал из Xgu.ru

Перейти к: навигация, поиск
Короткий URL: vlan/freebsd

< VLAN >

На этой странице рассматривается процедура настройки VLAN в FreeBSD.

Для создания и управления VLAN во FreeBSD не используются какие-то специальные программы. Всё делается с помощью программы ifconfig.

Содержание

[править] С версии 7.3 и ~8.1

[править] Вариант 1

В rc.conf

ifconfig_em1="up"
vlans_em1="10 20"
ifconfig_em1_10="inet 192.168.10.1/24"
ifconfig_em1_20="inet 192.168.20.1/24"

ifconfig берет данные из rc.conf

# ifconfig em1.10 create

создаст интерфейс с нужными настройками

# ifconfig em1.10
em1.10: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 08:00:27:f1:9f:1e
        inet 192.168.10.1 netmask 0xffffff00 broadcast 192.168.10.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
        vlan: 10 parent interface: em1
# ifconfig em1.10 destroy

соответственно удалит интерфейс

[править] Вариант 2

В rc.conf

ifconfig_em1="up"
vlans_em1="vlan1 vlan2"
create_args_vlan1="vlan 10"
create_args_vlan2="vlan 20"
ifconfig_vlan1="inet 192.168.10.1/24"
ifconfig_vlan2="inet 192.168.20.1/24"

ifconfig берет данные из rc.conf

# ifconfig vlan1 create

создаст интерфейс с нужными настройками

vlan1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 08:00:27:f1:9f:1e
        inet 192.168.10.1 netmask 0xffffff00 broadcast 192.168.10.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
        vlan: 10 parent interface: em1
# ifconfig vlan1 destroy

соответственно удалит интерфейс

[править] Вариант 3

В rc.conf

ifconfig_em1="inet 192.168.0.0 netmask 255.255.255.0"
cloned_interfaces="vlan1 vlan2"
ifconfig_vlan1="inet 192.168.10.1/24 vlan 10 vlandev em1"
ifconfig_vlan2="inet 192.168.20.1/24 vlan 20 vlandev em1"

[править] Примечания к вариантам

Оба варианта задания vlan-ов в rc.conf можно смешивать, см. /etc/defaults/rc.conf

Второй вариант, обычно используется если нужно указывать vlan-ы в конфигурации MPD(Multi-link PPP daemon for FreeBSD), т.к. в подсистеме netgraph для именования нод нельзя использовать символ «точки», узлы интефейсов создаются без имени, а в конфигурации mpd прописывается именно NG-нода, которую ему следует использовать, а не интерфейс.

[править] Первый вариант

Создать интерфейс vlan4:

# ifconfig vlan4 create

Указать, что созданный интерфейс соответствует трафику, тегированному VLAN 4 и приходящему через физический интерфейс fxp0:

# ifconfig vlan4 vlan 4 vlandev fxp0

Теперь можно работать с vlan4 как с обычным интерфейсом. Этому интерфейсу нужно назначить адрес. Машина будет видна в VLAN 4 по этому адресу:

# ifconfig vlan4 192.168.16.14/24

Предыдущие команды можно было бы совместить в одну.

Просмотреть информацию об интерфейсе:

# ifconfig vlan4
vlan4: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.16.14 netmask 0xffffff00 broadcast 192.168.16.15
        inet6 fe80::204:79ff:fe67:9671%vlan4 prefixlen 64 scopeid 0x6
        ether 00:07:e9:45:0d:2c
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 4 parent interface: fxp0

Видно, что в описании интерфейса появилась строка:

        vlan: 4 parent interface: fxp0

которая говорит о том, что интерфейс vlan4 соответствует VLANу 4 на родительском сетевом интерфейсе fxp0.

Для того чтобы интерфейсы поднимались автоматически при старте, нужно добавить в /etc/rc.conf:

cloned_interfaces="vlan3 vlan4"
ifconfig_vlan3="inet 192.168.15.14 netmask 255.255.255.0 vlan 3 vlandev fxp0"
ifconfig_vlan4="inet 192.168.16.14 netmask 255.255.255.0 vlan 4 vlandev fxp0"

[править] Второй вариант

Создать интерфейс

$ ifconfig xl1.4 create
xl1.4: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:04:79:66:6b:09
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 4 parent interface: xl1

как видите он создается сразу с тэгом на нужном транковом интерфейсе

соответственно в rc.conf это выглядит так:

cloned_interfaces="xl1.4 xl1.5"
ifconfig_xl1_4="inet 192.168.4.1/24"
ifconfig_xl1_5="inet 192.168.5.1/24"

Номера 4 и 5 указывают в данном случае на то, какие VLAN ID должны использоваться.

[править] Дополнительная информация