Eu tenho dois sites que desejo conectar por meio de um túnel OpenVPN. Eu tenho a configuração em execução usando TCP como protocolo de transporte, mas como isso vem com um impacto no desempenho, eu quero mudar isso para UDP. Mas a configuração falha então.
O site A tem um Uplink DSL com Dual-Stack para v4 e v6. Diretamente conectado há um Fritzbox e depois disso eu tenho um computador rodando o Ubuntu como firewall. Também rodando lá é um servidor OpenVPN com a seguinte configuração:
port 1194
proto udp
dev tun2
ca /etc/openvpn/server-fw/ca.crt
cert /etc/openvpn/server-fw/server.crt
key /etc/openvpn/server-fw/server.key
dh /etc/openvpn/server-fw/dh2048.pem
server 192.168.42.0 255.255.255.0
ifconfig-pool-persist server-fw-udp-ipp.txt
client-to-client
keepalive 10 120
comp-lzo
user openvpn
group openvpn
persist-key
persist-tun
status openvpn-status-fw-udp.log
verb 4
cipher AES-256-CBC
auth SHA384
tun-mtu 1500
fragment 1300
mssfix
client-config-dir server-fw-ccd
Além disso, o Fritzbox tem um encaminhamento de porta para a porta UDP 1194 e o firewall das máquinas Ubuntu tem uma regra que permite o tráfego.
No site B eu tenho uma conexão de cabo de TV com um Unitymedia ConnectBox (roteador enviado pelo meu provedor de cabo) e depois disso um Ubiquity EdgeRouter X que tem a seguinte configuração para a VPN.
mode client
openvpn-option "--cipher AES-256-CBC"
openvpn-option "--comp-lzo yes"
openvpn-option "--remote-cert-tls server"
openvpn-option --nobind
openvpn-option --auth-nocache
openvpn-option "--user nobody"
openvpn-option "--group nogroup"
openvpn-option --persist-key
openvpn-option --persist-tun
openvpn-option "--auth SHA384"
openvpn-option "--tun-mtu 1500"
openvpn-option "--fragment 1300"
openvpn-option --mssfix
protocol udp
remote-host siteA.example.com
remote-port 1194
tls {
ca-cert-file /config/auth/ca.crt
cert-file /config/auth/siteB.crt
key-file /config/auth/siteB.key
}
Na minha opinião, isso deve funcionar como esperado, mas não funciona. No servidor eu recebo:
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 Re-using SSL/TLS context
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 LZO compression initialized
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 Control Channel MTU parms [ L:1590 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 Data Channel MTU parms [ L:1590 D:1300 EF:90 EB:135 ET:0 EL:0 AF:3/1 ]
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 Fragmentation MTU parms [ L:1590 D:1300 EF:89 EB:135 ET:1 EL:0 AF:3/1 ]
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 Local Options String: 'V4,dev-type tun,link-mtu 1590,tun-mtu 1500,proto UDPv4,comp-lzo,mtu-dynamic,cipher AES-256-CBC,auth SHA384,keysize 256,key-method 2,tls-server'
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1590,tun-mtu 1500,proto UDPv4,comp-lzo,mtu-dynamic,cipher AES-256-CBC,auth SHA384,keysize 256,key-method 2,tls-client'
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 Local Options hash (VER=V4): '1ef2d687'
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 Expected Remote Options hash (VER=V4): '98978d60'
Sep 29 19:35:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 TLS: Initial packet from [AF_INET]46.223.1.89:65349, sid=b15d42d0 78edefc1
Sep 29 19:36:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sep 29 19:36:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 TLS Error: TLS handshake failed
Sep 29 19:36:39 firewall ovpn-server-fw-udp[18467]: 46.223.1.89:65349 SIGUSR1[soft,tls-error] received, client-instance restarting
Sep 29 19:36:42 firewall ovpn-server-fw-udp[18467]: MULTI: multi_create_instance called
No EdgeRouter eu recebo:
Sep 29 19:35:35 edgerouter openvpn[15093]: Socket Buffers: R=[180224->131072] S=[180224->131072]
Sep 29 19:35:35 edgerouter openvpn[15093]: UDPv4 link local: [undef]
Sep 29 19:35:35 edgerouter openvpn[15093]: UDPv4 link remote: [AF_INET]217.11.153.95:1194
Sep 29 19:36:36 edgerouter openvpn[15093]: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sep 29 19:36:36 edgerouter openvpn[15093]: TLS Error: TLS handshake failed
Sep 29 19:36:36 edgerouter openvpn[15093]: SIGUSR1[soft,tls-error] received, process restarting
Sep 29 19:36:36 edgerouter openvpn[15093]: Restart pause, 2 second(s)
Se eu alterar o protocolo em ambas as configurações para TCP, o túnel funcionará como esperado. Qual pode ser o problema aqui? Você tem alguma dica sobre como depurar ou resolver esse problema?