Прошу прощения, если этот вопрос уже был задан и дан ответ, но я какое-то время безуспешно искал ответ на него.
Предыстория: у нас есть несколько роутеров Mikrotik с RouterOS v6.39.2, которые расположены по всему городу; маршрутизаторы находятся за NAT и подключены к нашему серверу OpenVPN, который мы используем для управления и мониторинга. Протокол, который мы используем для OpenVPN, - это TCP, поскольку UDP для OpenVPN не поддерживается Mikrotik.
Проблема: время от времени мы наблюдаем задержки ответа, которые происходят случайно. Нет конкретного маршрутизатора или времени, когда возникает проблема; мы постоянно отслеживаем загрузку ЦП и трафик, и в то время, когда это происходит, на графиках нет никаких аномалий, но когда мы одновременно пингуем сервер OpenVPN с Mikrotik через общедоступный и частный IP-адрес с помощью утилиты Mikrotik ping, мы видим, что пакеты падение только внутри туннеля.
Вот /etc/openvpn/server.conf
dev tun
port 1194
proto tcp
dh .key/dh1024.pem
keepalive 10 120
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
username-as-common-name
client-config-dir /etc/openvpn/ccd
ifconfig-pool-persist ipp.txt
ca .key/ca.crt
cert .key/server.crt
key .key/server.key
server 10.48.0.0 255.255.128.0
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so "login login USERNAME password PASSWORD"
client-cert-not-required
client-to-client
push "route 10.48.0.0 255.255.128.0"
push "route-gateway 10.48.0.1"
А вот результаты пинга:
Реализация OpenVPN на MikroTik повреждена. Он едва работает, а его производительность ужасна (либо по полосе пропускания, либо по задержке), особенно на маршрутизаторах, отличных от x86.
Люди уже давно просят поддержки UDP и LZO, а MikroTik просто отказывается их реализовать.
Вот ответ Нормиса (сотрудников MikroTik) на эту тему:
OpenVPN содержит очень много ошибок, и его сложно реализовать. Почти все наши разработчики покончили жизнь самоубийством, пытаясь заставить его работать. Это большой беспорядок, поэтому мы не можем продолжать его реализацию на 100%
Это ответ от 2010 года, и они до сих пор не реализовали эти функции. Итак, вы можете сделать свои собственные выводы о реализации OpenVPN в MikroTik.
Вот вся ветка, если вам интересно https://forum.mikrotik.com/viewtopic.php?f=1&t=26499
Если вам нужна лучшая стабильность / производительность (и безопасность), вам следует изучить какое-нибудь другое решение, например GRE over IPsec или EoIP over IPsec.
Я использую эти протоколы много лет, и они работают безупречно.
Но если вы не можете заставить маршрутизаторы работать без NAT, вы можете попробовать SSTP, но поскольку он также основан на TCP, производительность и задержка не самые лучшие. Также есть L2TP поверх IPsec.
В любом случае ваша проблема связана с реализацией на стороне MikroTik, поэтому вы не можете ее исправить. Только MikroTik может. Вы можете только попробовать другие протоколы и посмотреть, что лучше соответствует вашим потребностям.
Конечно, всегда есть вероятность, что ваша конфигурация плохая (как уже упоминалось в комментариях, правила FastTrack могут испортить много вещей в MikroTIk, если вы не знаете, что делаете).
Возможно использование UDP на микротике. Вы можете установить экземпляр WRT в метаршрутизаторе. Его реализация с ошибками. Но можно использовать мета для получения OpenVPN UDP. Я использовал его раньше с телефонами iPECS в режиме «VPN».
Я добавлю к этому решению еще немного, когда откопаю свои заметки, может помочь кому-то еще в будущем.