Fork me on GitHub

Настройка vlan и bridge

Установка пакетов для работы с vlan и Bridge

1
sudo aptitude install vlan bridge-utils

Создать новые vlan и bridge интерфейсы в файле /etc/network/interfaces. В примере создам vlan 2 и 8 где физически работает на интерфейсе eth0, при этом созданный br0 будет забриджован с vlan id 8 - а сам vlan будет без ip адреса.

1
vi /etc/network/interfaces
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
auto eth0
iface eth0 inet manual
  pre-up ifconfig $IFACE up
  post-down ifconfig $IFACE down

auto vlan2
  iface vlan2 inet static
  address 192.168.2.1
  netmask 255.255.255.0
  network 192.168.2.0
  broadcast 192.168.2.255
  mtu 1500
  vlan_raw_device eth0

auto eth0.8
iface eth0.8 inet manual
  vlan-raw-device eth0
  pre-up ifconfig $IFACE up
  post-down ifconfig $IFACE down

auto br0
iface br0 inet static
  address 195.151.31.250
  network 195.151.31.0
  netmask 255.255.255.0
  broadcast 195.151.31.255
  gateway 195.151.31.1
  bridge_ports eth0.8
  bridge_stp off
  bridge_fd 0
  #bridge_maxwait
  dns-nameservers 192.168.88.1
  dns-search lxc

Перезапускаем сетевые интерфейсы и через команду ifconfig убеждаемся что vlan присутствуют в системе

1
sudo /etc/init.d/networking restart

Для некоторых дистрибутивов linux, (например Slackware) нет отдельных настроек в конфигурационных файлах для задания vlan Поэтому требуется знать как создавать vlan прямо из командной строки, а уже потом на основании этих команд написать простенький скрипт автозагрузки при старте системы Разберем создания vlan 10 с ip 192.168.10.1 на родительском интерфейсе eth0

1
2
3
4
ip link set up eth0
vconfig add eth0 10
ip link set up eth0.10
ip addr add 192.168.10.1/24 dev eth0.10 broadcast +

Удалить vlan 10

1
2
3
ip link set down eth0.10
ip addr del 192.168.10.1/24 dev eth0.10 broadcast +
vconfig  rem eth0.10

Ну а скрипт запуска для ОС получится примерно таким - rc.vlan

1
vi /etc/rc.d/rc.vlan
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
#
# /etc/rc.d/rc.vlan
#
# Start/stop the vlan
#

case "$1" in
'start')
        /sbin/ip link set up eth0
        /sbin/vconfig add eth0 10
        /sbin/ip link set up eth0.10
        /sbin/ip addr add 192.168.10.1/24 dev eth0.10 broadcast +
      ;;
'stop')
        /sbin/ip link set down eth0.10
        /sbin/ip addr del 192.168.10.1/24 dev eth0.10 broadcast +
        /sbin/vconfig  rem eth0.10
      ;;
     *)
echo "usage $0 start|stopt" ;;
esac

Настройка vlan в OpenBSD

Работа с командами vlan в OpenBSD идентична FreeBSD системам. Команды консоли почти одинаковые. От root выполняем

1
2
3
ifconfig vlan2 create
ifconfig vlan2 vlan 2 vlandev xl0
ifconfig vlan2 inet 192.168.17.3 netmask 255.255.255.0

Для автоматического старта vlan при старте ОС создаем конфигурационный файл /etc/hostname.vlan2 с таким содержимым

1
vi /etc/hostname.vlan2
1
inet 192.168.17.3 255.255.255.0 192.168.17.255 vlandev xl0 description "Interface vlan 2"

Настройка vlan в FreeBSD

Прописываем создание vlan в файл /etc/rc.conf. Например для 2 и 3 vlan при родительском интерфейсе «xl0» это будет выглядеть

1
vi /etc/rc.conf
1
2
3
cloned_interfaces="vlan2 vlan3"
ifconfig_vlan2="inet 192.168.17.3 netmask 255.255.255.0 vlan 2 vlandev xl0"
ifconfig_vlan3="inet 192.168.16.3 netmask 255.255.255.0 vlan 3 vlandev xl0"

Все, теперь vlan 2 и 3 появятся при следующей загрузке. Для избежания перезагрузки сервера, требуется оперировать командами (создаем 2 vlan от родительского интерфейса «xl0»)

1
2
3
ifconfig vlan2 create
ifconfig vlan2 vlan 2 vlandev xl0
ifconfig vlan2 192.168.17.3/24

Для удаления vlan 2 интерфейса выполните команду

1
ifconfig vlan2 destroy

PS: во FreeBSD правильнее так же как и в OpenBSD запускать скриптом

1
vi /etc/start_if.lo0
1
2
3
ifconfig lo0 127.0.0.1 netmask 0xff000000
ifconfig lo0 alias 127.0.0.2 netmask 0xffffffff
ifconfig lo0 alias 127.0.0.3 netmask 0xffffffff

Comments