IBM Cloud Docs
Configurando e resolvendo problemas de túneis IPSec

Configurando e resolvendo problemas de túneis IPSec

Os túneis IPSec são usados para conectar com segurança sub-redes de espaço privado (rfc1918) por meio de uma conexão negociada entre dois roteadores ou firewalls (comumente chamados de pontos de extremidade de pares com referência ao IPSec). Em geral, os dois pontos de extremidade pares têm conectividade de rede entre si por meio da Internet. Se eles não tiverem uma conexão direta pela Internet, um ou ambos os pares podem estar atrás de NAT/encaminhamento de porta. O NAT traversal deve estar habilitado em suas configurações. I

Especificamente no ambiente IBM Cloud, o Vyatta (ou outro dispositivo de gateway clássico) é usado como o IBM Cloud ponto de extremidade de par do lado da infraestrutura clássica. O endpoint remoto (com referência ao IBM Cloud) é um roteador ou firewall no lado "local".

A figura a seguir mostra uma representação visual muito básica de um túnel IPSec, do IBM Cloud Classic para o local, pela Internet.

Configuração básica do túnel IPSec do Vyatta
Figura 1: Configuração básica do túnel IPSec do Vyatta

IPSec baseado em rota e em políticas

Com o IPSec baseado em rota, você não configura seletores de tráfego (também chamados de prefixos locais e remotos) e, em vez disso, configura uma interface VTI. Além disso, você configura manualmente rotas estáticas para sub-redes remotas com um próximo salto definido para essa interface.

Para o IPSec baseado em políticas no Vyatta, você configura prefixos locais e remotos e não configura uma interface roteável para o túnel. A interface VFP foi adicionada como um recurso para acrescentar uma interface roteável às configurações de IPSec baseadas em políticas. Isso elimina a necessidade de migrar para uma configuração baseada em rota a fim de utilizar NAT e regras de firewall mais granulares com túneis baseados em políticas.

Para saber mais sobre as diferenças entre IPSec baseado em rota e IPSec baseado em política, consulte o artigo Opções de configuração de VPN site a site IPSec.

Exemplo de configuração do IPSec baseado em rota

O exemplo a seguir é uma configuração baseada em rota em execução no ambiente de infraestrutura clássica do IBM Cloud:

Lado oeste

#PHASE 1
set security vpn ipsec ike-group IKE-Fergie ike-version 2
set security vpn ipsec ike-group IKE-Fergie lifetime 28800
set security vpn ipsec ike-group IKE-Fergie proposal 1 dh-group 20
set security vpn ipsec ike-group IKE-Fergie proposal 1 encryption aes256
set security vpn ipsec ike-group IKE-Fergie proposal 1 hash sha2_256

#PHASE 2
set security vpn ipsec esp-group ESP-Fergie pfs dh-group20
set security vpn ipsec esp-group ESP-Fergie proposal 1 encryption aes128gcm128
set security vpn ipsec esp-group ESP-Fergie proposal 1 hash null
set security vpn ipsec esp-group ESP-Fergie lifetime 3600

#Tie it all together configuration
set security vpn ipsec site-to-site peer 159.8.98.213 authentication id 169.50.194.197
set security vpn ipsec site-to-site peer 159.8.98.213 authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer 159.8.98.213 authentication pre-shared-secret '*********'
set security vpn ipsec site-to-site peer 159.8.98.213 authentication remote-id 159.8.98.213
set security vpn ipsec site-to-site peer 159.8.98.213 ike-group IKE-Fergie
set security vpn ipsec site-to-site peer 159.8.98.213 local-address 169.50.194.197
set security vpn ipsec site-to-site peer 159.8.98.213 vti bind vti2
set security vpn ipsec site-to-site peer 159.8.98.213 vti esp-group ESP-Fergie

#VTI INTERFACE CREATION
set interfaces vti vti2 address 172.16.0.5/30

#STATIC ROUTE CREATION FOR REMOTE PREFIX
set protocols static interface-route 10.127.132.128/26 next-hop-interface vti2

#HA considerations - group number can be different on each Vyatta
set interfaces bonding dp0bond1 vrrp vrrp-group 2 notify 'ipsec'

#IKEv2 considerations
set security vpn ike make-before-break

Lado Leste

#PHASE 1
set security vpn ipsec ike-group IKE-Fergie ike-version 2
set security vpn ipsec ike-group IKE-Fergie lifetime 28800
set security vpn ipsec ike-group IKE-Fergie proposal 1 dh-group 20
set security vpn ipsec ike-group IKE-Fergie proposal 1 encryption aes256
set security vpn ipsec ike-group IKE-Fergie proposal 1 hash sha2_256

#PHASE 2
set security vpn ipsec esp-group ESP-Fergie pfs dh-group20
set security vpn ipsec esp-group ESP-Fergie proposal 1 encryption aes128gcm128
set security vpn ipsec esp-group ESP-Fergie proposal 1 hash null
set security vpn ipsec esp-group ESP-Fergie lifetime 3600

#Tie it all together configuration
et security vpn ipsec site-to-site peer 169.50.194.197 authentication id 159.8.98.213
set security vpn ipsec site-to-site peer 169.50.194.197 authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer 169.50.194.197 authentication pre-shared-secret '*********'
set security vpn ipsec site-to-site peer 169.50.194.197 authentication remote-id 169.50.194.197
set security vpn ipsec site-to-site peer 169.50.194.197 ike-group IKE-Fergie
set security vpn ipsec site-to-site peer 169.50.194.197 local-address 159.8.98.213
set security vpn ipsec site-to-site peer 169.50.194.197 vti bind vti2
set security vpn ipsec site-to-site peer 169.50.194.197 vti esp-group ESP-Fergie

#VTI INTERFACE CREATION
set interfaces vti vti2 address 172.16.0.6/30

#STATIC ROUTE CREATION FOR REMOTE PREFIX
set protocols static interface-route 10.165.125.112/28 next-hop-interface vti2

#HA considerations - group number can be different on each Vyatta
set interfaces bonding dp0bond1 vrrp vrrp-group 1 notify 'ipsec'

#IKEv2 considerations
set security vpn ike make-before-break

Firewalls baseados em interface com IPsec baseado em rota

Ao aplicar conjuntos de regras de firewall às suas interfaces, esteja ciente de quais serão os IPs de origem e destino de um pacote ao entrar e sair de uma interface. O diagrama a seguir ilustra um pacote típico que atravessa o Vyatta no caminho de ida e volta por meio de um túnel IPSec.

Tráfego IPSec
Figura 2: Fluxos de tráfego IPSec

A direção OUT de um VTI é onde o pacote será criptografado e enviado para fora do Vyatta. A direção IN de uma VTI é onde o pacote será descriptografado e enviado ao servidor por trás do Vyatta. Para a interface externa, dp0bond1, o pacote será sempre os endereços IP do ponto de extremidade do par. As portas/protocolos são ESP, porta UDP 500 e porta UDP 4500 (se você usar NAT-T).

O IP de origem e o IP de destino em um pacote para a direção IN de uma interface de VLAN (VIF) devem corresponder à direção OUT da VTI.

Os registros de regras de firewall a seguir ilustram o fluxo:

May 25 05:34:07 gateway02 dataplane[4391]:  In:dp0bond1 PASS fw rule PubIn:1 proto=(other/50) addr=198.11.194.155->159.8.98.214 macs=e4:c7:22:63:b5:41->0:0:5e:0:1:2 v4=(len:156,ttl:241,tos:00,ecn:Not,prot:50,hl:5)
May 25 05:34:07 gateway02 dataplane[4391]:  In:vti0 PASS fw rule INipsecvti0:10 proto=(icmp/1) addr=10.90.72.203->10.126.19.174 v4=(len:84,ttl:63,tos:00,ecn:Not,prot:1,hl:5) icmp=(EchoRq,type:8,code:0)
May 25 05:34:07 gateway02 dataplane[4391]: Out:dp0bond0.1750 PASS fw rule OUTipsec1750:10 proto=(icmp/1) addr=10.90.72.203->10.126.19.174 v4=(len:84,ttl:62,tos:00,ecn:Not,prot:1,hl:5) icmp=(EchoRq,type:8,code:0)
May 25 05:34:07 gateway02 dataplane[4391]:  In:dp0bond0.1750 PASS fw rule INipsec1750:10 proto=(icmp/1) addr=10.126.19.174->10.90.72.203 v4=(len:84,ttl:64,tos:00,ecn:Not,prot:1,hl:5) icmp=(EchoRp,type:0,code:0)
May 25 05:34:07 gateway02 dataplane[4391]: Out:vti0 PASS fw rule OUTipsecvti0:10 proto=(icmp/1) addr=10.126.19.174->10.90.72.203 v4=(len:84,ttl:63,tos:00,ecn:Not,prot:1,hl:5) icmp=(EchoRp,type:0,code:0)
May 25 05:34:07 gateway02 dataplane[4391]: Out:dp0bond1 PASS fw rule PubOut:1 proto=(other/50) addr=159.8.98.214->198.11.194.155 v4=(len:156,ttl:255,tos:00,ecn:Not,prot:50,hl:5)

Firewalls baseados em zona com IPSec baseado em rota

Para firewalls baseados em zonas, as políticas que você define devem presumir que o tráfego flui entre a interface VTI e a interface VLAN privada local (VIF) do VRA. Não é necessário definir uma política entre a VTI e as zonas dp0bond1.

Solução de problemas básicos

Para solucionar problemas de configuração do túnel IPSec, execute o seguinte processo:

  1. Redefinir os túneis e reiniciar a VPN.

    Faça isso primeiro, se possível, pois isso pode economizar tempo durante uma interrupção de energia. Certifique-se de lembrar o que cada comando está reiniciando e seu efeito no restante dos túneis.

  2. Verifique a conectividade de rede de ponta a ponta entre os pares.

    Certifique-se de que as portas UDP 500 e 4500 (se estiver usando NAT-T) e o protocolo ESP sejam permitidos na interface externa para ambos os pares.

  3. Verifique o status da fase 1. Um status "Down" pode significar:

    • Você não verificou a etapa 2
    • Há incompatibilidade de versões do IKE, algoritmos de criptografia, algoritmos de hash ou identificadores IKE
    • Há incompatibilidades de fornecedores
  4. Verifique o status da fase 2. Um status "Down" (ou nenhum status) pode significar:

    • A Fase 1 está inativa
    • Há algoritmos de criptografia, algoritmos de hash, seletores de tráfego ou dh-groups incompatíveis
    • Há incompatibilidades com os fornecedores
  5. Analise os registros IPsec disponíveis para encontrar sinais do problema. Os logs podem fornecer informações exatas sobre incompatibilidades e ajudá-lo a resolver o problema rapidamente.

  6. Consulte os Patches de software VRA para obter informações sobre bugs comuns. Você também pode solicitar um PDF abrangente ao IBM Cloud.

Comandos de solução de problemas

Para verificar o status da fase 1:

show vpn ike sa
show vpn ike sa peer <Peer IP>

Saída de amostra:

vyatta@siferguson-par01-02:~$ show vpn ike sa peer 169.50.194.197
Peer ID / IP                            Local ID / IP
------------                            -------------
169.50.194.197                          159.8.98.213

    State    Encrypt       Hash    D-H Grp  A-Time  L-Time IKEv
    -----  ------------  --------  -------  ------  ------ ----
    up     aes256        sha2_256  14       2154    3600    2

Para verificar o status da fase 2:

show vpn ipsec sa
show vpn ipsec sa peer <Peer IP>

Saída de amostra:

vyatta@siferguson-par01-02:~$ show vpn ipsec sa peer 169.50.194.197
Peer ID / IP                            Local ID / IP
------------                            -------------
169.50.194.197                          159.8.98.213

    Tunnel  Id          State  Bytes Out/In   Encrypt       Hash      DH A-Time  L-Time
    ------  ----------  -----  -------------  ------------  --------  -- ------  ------
    vti     44          up     284.3M/27.2G   aes128gcm128  null      n/a 2131    300

Para mostrar rapidamente um conjunto de informações detalhadas sobre uma conexão de pares específica:

show vpn debug peer <Peer IP>

Saída de amostra:

vyatta@siferguson-par01-02:~$ show vpn debug peer 169.50.194.197
peer-169.50.194.197:  159.8.98.213...169.50.194.197  IKEv2
peer-169.50.194.197:   local:  [159.8.98.213] uses pre-shared key authentication
peer-169.50.194.197:   remote: [169.50.194.197] uses pre-shared key authentication
peer-169.50.194.197-tunnel-vti:   child:  0.0.0.0/0 === 0.0.0.0/0 TUNNEL
peer-169.50.194.197[48]: ESTABLISHED 38 minutes ago, 159.8.98.213[500][159.8.98.213]...169.50.194.197[500][169.50.194.197]
peer-169.50.194.197[48]: IKEv2 SPIs: 65967eb4beab8549_i 1eacdfa5f926b9a3_r*, pre-shared key reauthentication in 13 minutes
peer-169.50.194.197[48]: IKE proposal: AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
peer-169.50.194.197-tunnel-vti{44}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: 9796e1b4_i db89cc43_o
peer-169.50.194.197-tunnel-vti{44}:  AES_GCM_16_128, 31436172664 bytes_i, 322001309 bytes_o, rekeying active
peer-169.50.194.197-tunnel-vti{44}:   0.0.0.0/0 === 0.0.0.0/0

{: tela|

Para mostrar e analisar os registros IPSec disponíveis:

show log vpn ipsec
show log vpn ipsec subsystem ike-sa site-to-site peer <Peer IP>
journalctl -f -u strongswan #This live follows the end of the journal logs for ipsec
journalctl -u strongswan > /home/vyatta/journalctl-ipsec-$(date +%Y%m%d) #this creates a file so that you can parse/grep through the logs without them rotating

Para redefinir os túneis IPSec:

 reset vpn ipsec-peer <Peer IP> #reset all tunnels/phase 2's on this peer
 reset vpn ipsec-peer <Peer IP> tunnel <tunnel id> #reset phase 2 tunnel for only the specified tunnel on the specified peer
 restart vpn #This restarts the entire IPSec VPN subsystem - this affects all tunnels on all peers

Problemas comuns

A lista a seguir apresenta alguns problemas comuns que você pode encontrar com os túneis IPSec.

  • Há incompatibilidade de parâmetros de fase 1 e fase 2 entre os dois pares.
  • Há versões IKE incompatíveis.
  • A fase 1 falha com um erro de autenticação, embora tudo pareça corresponder.
    • Certifique-se de definir a ID de autenticação e a ID remota para os endereços IP locais e remotos.
  • As portas ESP e UDP 500 e 4500 não são permitidas em interfaces externas.
    • Certifique-se de que o ESP e a porta 500 sejam permitidos. Se estiver usando NAT-T, verifique se o UDP 4500 é permitido.
  • A Ciena recomenda que você use a linha set security vpn ike make-before-break quando estiver usando IKEv2. A omissão dessa linha pode causar interrupções.
  • O Thoroughput é lento.
    • Use o aes128gcm ou o aes256gcm como algoritmo de criptografia da fase 2. Isso pode aumentar muito a taxa de transferência se o algoritmo de criptografia anterior era o padrão AES128 ou AES256.
    • Desative o registro por pacote se ele estiver implementado. O registro de firewall por pacote pode diminuir a taxa de transferência.
  • Os túneis IPSec estão funcionando, mas, ao serem rechaveados, eles caem.
    • Verifique se o PFS e os dh-groups correspondem em ambos os pares.
  • O comando show vpn ipsec sa mostra os incrementos em apenas uma direção.
    • Isso geralmente é causado por roteamento assimétrico, em que um lado está enviando dados pelo túnel e o outro não.
  • Uso de scripts de execução de transição para failover de HA em vez do comando de substituição notify.

Recursos adicionais

A lista a seguir fornece alguns recursos adicionais para a configuração e a solução de problemas de túneis IPSec: