User Tools

Site Tools


flyrouter:temp1

Описание пакета flyscript

Автоматический 802.1q VLAN

В новой версии появилась автоматическая обработка 802.1q VLAN Теперь, если интерфейс называется (vlan*, eth*.*, tap*.*) - то автоматически вызываются команды vconfig add при “подъеме” и vconfig rem при “опускании” интерфейса

bridge

Появилась функция позволяющая автоматически создавать/удалять бридж-интерфейсы, при задании параметра bridge_ports.
Например:

iface br1 inet manual
  bridge_ports eth1.100 eth2

При этом автоматически создастся eth1.100 VLAN и будет создан бридж br1 между eth1.100 и eth2

Также можно указывать параметры:

  • bridge_ageing <time> - set ageing time, default is 300, can have a fractional part.
  • bridge_bridgeprio <priority> - set bridge priority, <priority> is between 0 and 65535, default is 32768, affects bridge id, lowest priority bridge will be the root.
  • bridge_fd <time> - set bridge forward delay to <time> seconds, default is 15, can have a fractional part.
  • bridge_gcint <time> - set garbage collection interval to <time> seconds, default is 4, can have a fractional part.
  • bridge_hello <time> - set hello time to <time> seconds, default is 2, can have a fractional part.
  • bridge_hw <MAC address> - set the ethernet MAC address of all the bridge interfaces to the specified one so that the bridge ends up having this ardware address as well. WARNING: use this only if you know what you are doing, changing the MAC address of the cards may cause trouble if you don't know what you are doing. To see the discussion about this feature and the problems that can cause you can try to ave a look at the bug that asked for this feature visiting
  • bridge_maxage <time> - set max message age to <time> seconds, default is 20, can have a fractional part.
  • bridge_maxwait <time> - forces to <time> seconds the maximum time that the Debian bridge setup scripts will wait for the bridge orts o get to the forwarding status, doesn't allow factional part. If it is equal to 0 then no waiting is done.
  • bridge_pathcost <port> <cost> - set path cost for a port, default is 100, <port> is the name of the interface to which this setting applies.
  • bridge_portprio <port> <priority> - set port priority, default is 128, affects port id, <port> is the name of the interface to which this setting applies.
  • bridge_stp <state> - turn spanning tree protocol on/off, <state> values are on or yes to turn stp on and any other thing to set it off, default has changed to off for security reasons in latest kernels, so you should specify if you want stp on or off with this option, and not rely on your kernel's default behaviour.

Метод manual

Появился метод manual для интерфейсов, это позволяет поднять интерфейс не присваивая ему адрес, например

auto eth0
iface eth0 inet manual

brtun

Параметр brtun предназначен для автоматического управления openvpn L2 туннелями. Пример

auto brtun0
iface brtun0 inet static
  address 192.168.10.1
  netmask 255.255.255.0
  brtun 172.28.200.91:1000-172.28.200.92:1000 iface=eth2.1000,eth2.1001 --proto udp --ping 15 --verb 4 --shaper 64000

ИЛИ

auto brtun0
iface brtun0 inet manual
  brtun 172.28.200.91:1000-172.28.200.92:1000 vlans=eth0:111,112,113,114 --proto udp --ping 15 --verb 4 --shaper 64000


Внимание, параметры шейпера openvpn указываются не в битах, а в байтах!

Параметры

  1. ipaddr1:port1-ipaddr2:port2 - обязательный параметр указывающий локальные (ipaddr1) и удаленные (ipaddr2) адреса туннелей между которыми строятся туннели.
    • ipaddr1 - локальный адрес - обязательный под-параметр (можно указать auto если локальный адрес динамический)
    • port1 - локальный порт - обязательный под-параметр
    • ipaddr2 - удаленный адрес - обязательный под-параметр (можно указать auto если удаленный адрес динамический)
    • port2 - удаленный порт, не обязательный параметр, если не указан - используется значение port1
  2. Далее возможно указать 2 взаимно-исключающий варианта:
    1. iface=eth2.1000[,eth3.1000] - интерфейс на который необходимо поднять бридж (802.1q VLAN'ы создаются автоматически), через запятую можно указывать дополнительные интерфейсы, которые необходимо включить в бридж.
    2. vlans=eth0:111,112,113,114… - данный вариант удобен когда у клиента множество 802.1q VLAN'ов, т.е не нужно создавать на каждый VLAN отдельную запись
  3. все остальные параметры передаются в openvpn в неизменном виде, подробнее можно почитать на странице http://openvpn.net/

Точка-многоточка

Можно добавлять несколько brtun параметров в описании интерфейса - т.е. создать соединение точка-многоточка (только при iface=….), например

auto post
iface post inet manual
  brtun auto:1000-172.28.200.92 iface=eth3.100
  brtun1 auto:1001-72.28.200.92 
  brtun2 172.28.200.91:1002-auto 

В данном примере будут созданы 3 туннеля (будут запущены 3 демона openvpn), и объединены в один бридж - post, а также добавлен в бридж eth3.100

Внутренняя логика

пример1

auto brtun
iface brtun inet manual
    brtun  ip1:1000-ip2 iface=BRIFACES

ifup

  1. создать бридж с именем brtun
  2. создать tap интерфейс tap1000
  3. поднять интерфейсы BRIFACES (если нужно создать соотв. VLAN)
  4. добавить в бридж brtun tap1000 интерфейс
  5. добавить в бридж brtun BRIFACES интерфейсы
  6. запустить openvpn

ifdown

  1. удаление идет в обратном порядке созданию

пример2

auto brtun
iface brtun inet manual
    brtun  ip1:1000-ip2 vlans=IFACE:100,101,102...

ifup

  1. создать tap интерфейс tap1000
  2. создать бридж с именем brtun100
  3. добавить 802.1q VLAN tap1000.100
  4. добавить 802.1q VLAN IFACE.100
  5. добавить в бридж интерфейсы tap1000.100 и IFACE.100
  6. повторить операцию 2 со всеми остальными вланами (101,102 и тд)
  7. запустить openvpn

ifdown

  1. удаление идет в обратном порядке созданию




Настройка связки FlyRouter и Debian (или Ubuntu)

  • Установите Debian (или Ubuntu/Kubuntu/Xubuntu и т.д.) на сервер
    • Для всех видов Ubuntu обязательно выполните команду удаления NetworkManager-а:
apt-get remove network-manager
  • Настройте установку пакетов из репозитария через интернет или локально с CD
  • Установите необходимые пакеты в систему, выполнив команды:
apt-get update
apt-get install openvpn bridge-utils vlan
apt-get install openssh-server mc (эти пакеты устанавливается опционально)
  • Скачайте с репозитария и запустите установку flyscript (потом его можно удалить):
cd /tmp
wget http://flyrouter.net/downloads/software/flyrouter/builder/script/fsdeb.sh
chmod 755 ./fsdeb.sh
./fsdeb.sh
  • После этого можете прописывать туннели в файле /etc/network/interfaces:
# Tunnel for testing1
auto brtun0
iface brtun0 inet static
    address 172.17.1.1
    netmask 255.255.255.0
    brtun auto:1278-192.168.1.1:1278 iface=eth0.1 --proto udp --ping 15 --verb 4 --shaper 64000

# Tunnel for testing2
auto brtun1
iface brtun1 inet manual
    brtun auto:1279-192.168.1.2:1279 iface=eth0.2 --proto udp --ping 15 --verb 4 --shaper 64000
flyrouter/temp1.txt · Last modified: 2018/04/09 15:36 (external edit)