Параметры конфигурационного файла туннеля для версии 4.3.20827

Обязательные параметры

      vif <name> – имя виртуального интерфейса (TAP). Рекомендуется tapN, где N – цифра. Максимальная длина имени – 15 символов.

•   capture <name> – имя сетевого интерфейса, с которого будет осуществляться захват Ethernet-фреймов. Максимальная длина имени – 15 символов.

      bridge <name> – имя виртуального интерфейса моста. Рекомендуется brN, где N – цифра. Максимальная длина имени – 15 символов.

 

Опциональные параметры

      local <host> – ip-адрес или символьное имя локального хоста. Указанный адрес должен быть выставлен на одном из сетевых интерфейсов.

      remote <host> [port] – ip-адрес или символьное имя и порт удалённого хоста.

      port <port> – номер используемого UDP-порта, используемый и для локального и для удалённого хостов. Значение по умолчанию – 1194 (порт протокола Openvpn).

      local_port <port> – номер порта на локальном хосте. Значение по умолчанию – 1194 (порт протокола Openvpn).

      hwaddr <hw>MAC-адрес виртуального интерфейса.

•  bonding [name] – включение bonding-режима. В данном режиме трафик с одного физического интерфейса разделяется на два l2-туннеля. При этом возможно увеличение производительности tcp трафика либо многопоточного трафика. Имя bond-интерфейса – bond0. Дополнительный параметр name может использоваться для использования другого bond-интерфейса, но только совместно с дополнительной настройкой bond-драйвера.
При использовании bonding-режима нужно создать два конфигурационных файла (по одному на туннель), отличающихся портами и tap-интерфейсами. Настройка должна быть произведена с обеих сторон туннеля.
При распределении пакетов между tap-интерфейсами используется режим balance xor с политикой хеширования (xmit_hash_policy) layer2+3. В этом случае, на какой из tap-интерфейсов направить пакет, вычисляется по полям: source mac, destination mac, source ip, destination ip.
Возможно использование политики хэширования layer3+4, в этом режиме для вычисления хэша будут учитываться поля: source ip, destination ip, source port, destination port. Для этого надо отредактировать скрипт /opt/l2svc/bin/up, а именно строку:


modprobe bonding mode=2 xmit_hash_policy=layer2+3 >/dev/null 2>&1

      log <file> – писать логи в файл вместо протоколирования в syslog.

•    verb <n> – уровень подробности протоколирования. Уровни:
0 – только критические ошибки;
1 – информация о старте Продукта и построении соединений, а также не критические сетевые ошибки;
2 – показ информации об измеренном MTU, открытии/закрытии TAP-интерфейсов, рестартах Продукта и соответствии опций туннеля на локальном и удалённом хостах;
3 – на каждый входящий/исходящий UDP-пакет в лог будет писаться R/W, на каждый прочитанный/записанный TAP-интерфейсом пакет – r/w.
Значение по умолчанию – 1.

      mute [n] – не повторять более n однотипных сообщений подряд. Если n не указано, оно считается равным 1. По умолчанию в Продукте выставлено mute=1000.

      nice <n> – изменить приоритет процесса.

      status <file> [n] – писать в <file> каждые n секунд информацию о текущем состоянии туннеля. Если n не указано, обновление раз в минуту. В файл пишется информация о количестве переданных и полученных байт по udp-туннелю, а также количество байт, записанных и прочитанных TAP-интерфейсом.

      compression [always|adaptive] – использование сжатия библиотекой LZO. Adaptive – использование адаптивного алгоритма, позволяющее избежать проблем при передаче уже сжатого трафика. При этом регулярно проводится проверка, насколько удалось сжать пакет. Если выигрыш составляет менее 5%, то сжатие выключается до следующей проверки (на 1 минуту). Если не указано always либо adaptive, используется adaptive. Пакеты размером 100 байт и меньше не сжимаются. По умолчанию отключено.

      tun_mtu <n>MTU туннеля, а именно mtu следующих интерфейсов: capture-интерфейса, виртуального tap-интерфейса (vif) и виртуального интерфейса моста (bridge). Значение по умолчанию – 1500.

      mssfix [n] [force] – при включении данной опции поле MSS всех проходящих через туннель tcp-пакетов будет выставлено в n, если текущее значение mss в пакете больше n. Также, если определены tun_mtu либо fragment, и их значения меньше указанного в mssfix, в пакет будет прописано минимальное из них. При указанной опции force будет прописано именно указанное в конфигурационном файле значение mssfix, даже если оно больше имеющегося в пакете. При этом tcp/ip стек отправителя и получателя сам уменьшит максимальный размер пакета, не прибегая к использованию icmp. Это позволит избежать фрагментации. Если параметр n отсутствует, будет взято значение параметра fragment, если оно определено. Работает только для tcp-пакетов, идущих внутри чистых Ethernet-фреймов, а также фреймов с vlan и q-in-q. Не работает с mpls. Значение по умолчанию – 1380.

      fragment n – если задано, то все пакеты, больше n байт, будут фрагментированы самим Продуктом, а не ip-стеком. Это происходит в usermode-режиме, поэтому выполняется медленнее, чем фрагментация IP-стеком. Однако фрагментация ip-стеком завязана на path mtu discovery и в реальных условиях может не работать. Фрагментирование производится после сжатия, если оно включено. Опции добавляет 4 байта к размеру пакета. Включение данной опции может искажать результаты mtu_test. По умолчанию отключено. Параметр fragment должен быть выставлен (либо выключен) синхронно для обеих сторон туннеля. При этом числовое значение параметра у сторон туннеля может быть разным.

      passtos – выставить ToS-поле отправляемого UDP-пакета такое же, как у захваченного пакета. Работает только для tcp-пакетов, идущих внутри чистых Ethernet-фреймов, а также фреймов с vlan и q-in-q. Не работает с mpls. По умолчанию отключено.

      txqueuelen <n> – длина очереди отправки пакетов виртуального (TAP) интерфейса. Значение по умолчанию – 1000.

      sndbuf <n> – размер буфера отправки UDP-сокета. Значение по умолчанию – 65536 байт.

      rcvbuf <n> – размер буфера приёма UDP-сокета. Значение по умолчанию – 65536 байт.

      keepalive <n> <m> – при указании данного параметра Продукт будет посылать по туннелю keepalive-пакеты собственного формата раз в n секунд. Если на отправленный пакет не будет ответа в течение m секунд либо от партнёра не придёт любого другого пакета – будет произведён частичный перезапуск Продукта: будут пересозданы сокеты и виртуальный интерфейс, произойдёт пересоздание моста. Конфигурационные файлы перезачитываться не будут. Так как происходит пересоздание моста (bridge), использование keepalive невозможно при построении топологии «звезда». Рекомендуется выставлять keepalive на обоих концах туннеля и с одинаковыми значениями параметров. По умолчанию отключено.

      no_timestamps – не писать время в лог. По умолчанию время пишется.

      no_paging – запретить использование файла подкачки. По умолчанию отключено.

      group_fwd_mask <n> – управление форвардингом через bridge транзитных link local frames (протоколы LACP, LLDP). Допустимые значения: 0 (запрет LACP и LLDP), 4 (разрешить LACP), 16384 (разрешить LLDP), 16388 (разрешить и LACP и LLDP). Значение по умолчанию – 0. Фактически это прописывание битовой маски в sys/class/net/$BRIDGE/bridge/group_fwd_mask.

      multicast_snooping yes|no – включение/отключение multicast snooping для виртуального интерфейса моста. По умолчанию включено. Фактически это прописывание 1 или 0 в /sys/devices/virtual/net/$BRIDGE/bridge/multicast_snooping.

•    loop_protection stp|splithorizon – задание режима предотвращения петель (loop protection). Возможные варианты: stp (включение протокола STP на мосту) и splithorizon (трафик, полученный из tap-портов, будет форвардиться только в capture-порт). По умолчанию режимы предотвращение петель не задействованы.

      bridge_stp_prio <n> – задание приоритета моста в STP (STP Bridge Priority). Работает только при loop_protection выставленном в stp. Возможные значения – от 0 до 65535. Значение по умолчанию – 32768.

      bridge_ip <ip> – ip-адрес, который будет присвоен виртуальному интерфейсу моста. По умолчанию ip-адрес не присваивается.