Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

VPN-OVPN-005 Сетевое оборудование и VPN

Настройка OpenVPN Site-to-Site: выбор режима маршрутизации TUN vs моста TAP

Обновлено: 25.08.2026 · Официальная документация ↗

При планировании и развертывании межфилиальных туннелей OpenVPN администраторы сталкиваются с архитектурными проблемами:

  • Необходимость проброса L2-трафика (промышленные протоколы, обнаружение принтеров NetBIOS/mDNS, не-IP трафик) через туннель.
  • Падение пропускной способности из-за высокого оверхеда и широковещательного шторма в режиме Ethernet bridging (TAP).
  • Невозможность маршрутизации внутренних подсетей удаленного офиса через TUN без директив iroute.
  • Ошибки согласования топологии: topology subnet vs topology net30.

1. Архитектурный выбор: TUN против TAP

ПараметрTUN (Layer 3 Routing)TAP (Layer 2 Bridging)
Тип передачиIP-пакетыEthernet-фреймы (включая MAC, ARP, VLAN)
ОверхедНизкий (нет заголовка L2)Высокий (+14 байт Ethernet на пакет)
Широковещательный трафикБлокируетсяТранслируется во все стороны
Поддержка ОСВсе платформы (Linux, Windows, Android, iOS)Только Desktop (Linux, Windows, macOS)
Основное применениеSite-to-Site, Remote AccessSCADA, Legacy-софт, общий L2-сегмент

2. Конфигурация Site-to-Site в режиме TUN (Рекомендуемый)

# /etc/openvpn/server-s2s.conf (Сервер):
proto udp
port 1194
dev tun0
topology subnet
server 10.8.0.0 255.255.255.0
client-config-dir /etc/openvpn/ccd
route 192.168.20.0 255.255.255.0
persist-key
persist-tun
cipher AES-256-GCM
auth SHA256
keepalive 10 60

# Файл /etc/openvpn/ccd/client-branch (Имя сертификата филиала):
iroute 192.168.20.0 255.255.255.0

3. Конфигурация Site-to-Site в режиме TAP (Объединение L2 мостом)

# /etc/openvpn/server-tap.conf:
proto udp
port 1195
dev tap0
server-bridge 192.168.10.1 255.255.255.0 192.168.10.200 192.168.10.220
persist-tun
persist-key
cipher AES-256-GCM

# Скрипт интеграции с системным мостом Linux (/etc/openvpn/bridge-start):
#!/bin/bash
brctl addif br0 tap0
ip link set dev tap0 up

4. Тюнинг сетевого стека ядра для OpenVPN

# Включение IPv4 Forwarding и оптимизация очередей:
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216

# Добавление MSS Clamping для предотвращения фрагментации:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
💡 Практика специалистов: Используйте режим TAP только тогда, когда это абсолютно неизбежно (например, для протоколов BACnet, Profinet или старых кластеров без поддержки маршрутизации). Во всех остальных сценариях используйте TUN во избежание паразитного флуда ARP/Broadcast.

Частые вопросы (FAQ)

Зачем нужна директива iroute в режиме TUN?

Директива route сообщает ядру операционной системы, что пакеты нужно слать в tun-интерфейс, а внутренняя директива iroute указывает самому процессу OpenVPN, какому именно подключенному клиенту (TLS CN) принадлежит этот диапазон подсетей.

Почему режим TAP не поддерживается на мобильных платформах (iOS / Android)?

Сетевые стеки мобильных ОС Android и iOS аппаратно и архитектурно запрещают создание виртуальных L2 сетевых адаптеров в пользовательском пространстве из соображений безопасности и энергосбережения.

Как избежать проблем с фрагментацией UDP-пакетов в OpenVPN?

Используйте директивы tun-mtu 1500, mssfix 1360 и fragment 1300 (если используется режим UDP) для принудительного укладывания пакетов в стандартный MTU провайдера.

Какой протокол быстрее: TCP или UDP для OpenVPN?

UDP значительно производительнее. Использование TCP поверх TCP вызывает явление TCP Meltdown: повторные передачи на физическом уровне накладываются на ретрансмиссии внутри туннеля, вызывая экспоненциальное падение скорости.

Полезные материалы
Рекомендуем