<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Ipsec on inetshell</title><link>https://inet.sh/es/tags/ipsec/</link><description>Recent content in Ipsec on inetshell</description><generator>Hugo</generator><language>es</language><lastBuildDate>Sat, 26 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://inet.sh/es/tags/ipsec/index.xml" rel="self" type="application/rss+xml"/><item><title>Cloud VPN de GCP no levanta: leer los logs IKE (peer not responding, traffic selectors narrowed) y el BGP con pfSense</title><link>https://inet.sh/es/posts/gcp/cloud-vpn-no-levanta-logs-ike/</link><pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate><guid>https://inet.sh/es/posts/gcp/cloud-vpn-no-levanta-logs-ike/</guid><description>Cuando un túnel de Cloud VPN se queda en &amp;#39;No incoming packets&amp;#39; o sube y baja, la respuesta está en Cloud Logging: las consultas por fase (IKE_SA, CHILD_SA, rekey, DELETE) y qué significa cada mensaje: peer not responding, traffic selectors narrowed, received DELETE. Más el caso de HA VPN con BGP contra pfSense/FRR, donde las rutas no entran hasta que añades route maps.</description><content:encoded><![CDATA[<h2 id="en-corto">En corto</h2>
<p>En <strong>Logs Explorer</strong>, cada fase del túnel tiene su consulta:</p>
<table>
  <thead>
      <tr>
          <th>Qué buscas</th>
          <th>Consulta</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Cloud VPN no llega al peer</td>
          <td><code>resource.type=&quot;vpn_gateway&quot; &quot;establishing IKE_SA failed, peer not responding&quot;</code></td>
      </tr>
      <tr>
          <td>Fase 1 arranca</td>
          <td><code>resource.type=&quot;vpn_gateway&quot; (&quot;initiating IKE_SA&quot; OR &quot;generating IKE_SA_INIT request&quot;)</code></td>
      </tr>
      <tr>
          <td>Autenticación IKE</td>
          <td><code>resource.type=&quot;vpn_gateway&quot; (&quot;generating IKE_AUTH request&quot; OR &quot;parsed IKE_AUTH response&quot;)</code></td>
      </tr>
      <tr>
          <td>PSK aceptada</td>
          <td><code>resource.type=&quot;vpn_gateway&quot; (&quot;authentication of&quot; AND &quot;with pre-shared key successful&quot;)</code></td>
      </tr>
      <tr>
          <td>Fase 1 establecida</td>
          <td><code>resource.type=&quot;vpn_gateway&quot; (&quot;IKE_SA&quot; AND &quot;established between&quot;)</code></td>
      </tr>
      <tr>
          <td>Todo lo de fase 2 (incluye rekeys)</td>
          <td><code>resource.type=&quot;vpn_gateway&quot; &quot;CHILD_SA&quot;</code></td>
      </tr>
      <tr>
          <td>Las subredes no coinciden</td>
          <td><code>resource.type=&quot;vpn_gateway&quot; (&quot;Remote traffic selectors narrowed&quot; OR &quot;Local traffic selectors narrowed&quot;)</code></td>
      </tr>
      <tr>
          <td>Alguien cierra la fase 2</td>
          <td><code>resource.type=&quot;vpn_gateway&quot; (&quot;received DELETE for ESP CHILD_SA&quot; OR &quot;sending DELETE for ESP CHILD_SA&quot;)</code></td>
      </tr>
  </tbody>
</table>
<p>Cloud VPN corre strongSwan por debajo, así que los mensajes son los de strongSwan: si conoces <code>charon</code>, ya sabes leerlos.</p>
<h2 id="qué-significa-cada-mensaje">Qué significa cada mensaje</h2>
<p><strong><code>establishing IKE_SA failed, peer not responding</code>.</strong> Cloud VPN manda IKE_SA_INIT y nadie contesta. En orden de probabilidad: el peer está en IKEv1 y el túnel en IKEv2 (o al revés), la IP del peer configurada no es la pública real (NAT delante del firewall), UDP 500 y 4500 no llegan al peer, o el peer ni siquiera tiene el túnel activo. La PSK <strong>no</strong> produce este mensaje: con PSK incorrecta la fase 1 arranca y falla en <code>IKE_AUTH</code>.</p>
<p><strong><code>IKE_SA … established between</code> y después nada.</strong> Fase 1 bien, fase 2 no. Busca <code>CHILD_SA</code> y <code>traffic selectors</code>.</p>
<p><strong><code>Remote traffic selectors narrowed</code> / <code>Local traffic selectors narrowed</code>.</strong> Las redes de fase 2 no coinciden en los dos lados. En HA VPN (y en Classic VPN basada en rutas) Cloud VPN propone <strong><code>0.0.0.0/0</code> a ambos lados</strong> y espera lo mismo; un peer <em>policy-based</em> con subredes concretas hace que strongSwan estreche los selectores y solo pase tráfico entre lo que casó, o nada. En el peer: fase 2 con <code>0.0.0.0/0</code> local y remoto (en pfSense, modo <em>Routed</em>, que crea una interfaz de túnel <code>ipsecN</code>), y las rutas se resuelven por BGP o estáticas.</p>
<p><strong><code>received DELETE for ESP CHILD_SA</code> en bucle.</strong> El peer tumba la fase 2 cada pocos minutos: lifetimes de fase 2 distintos con rekey mal negociado, o DPD agresivo. Iguala lifetimes (Cloud VPN usa 3 horas en fase 2 y 10 en fase 1) y deja que el rekey lo inicie un solo lado.</p>
<p><strong>Sube, pasa tráfico un rato y muere con NAT-T.</strong> Un peer detrás de NAT con UDP 4500 y un middlebox que &ldquo;ayuda&rdquo; (ALG de IPsec en el router) descarta paquetes ESP encapsulados. Desactiva el ALG o pasa el firewall a IP pública directa.</p>
<h2 id="ha-vpn-con-bgp-contra-pfsense-frr">HA VPN con BGP contra pfSense (FRR)</h2>
<p>El túnel sube, <code>bgp</code> se establece, y <strong>ninguna ruta entra ni sale</strong>. FRR en pfSense arranca con una política que rechaza todo lo que no esté permitido explícitamente:</p>
<ol>
<li><strong>Services → FRR → BGP → Route Maps</strong>: crea <code>ALLOW-ALL</code>, <em>Action</em> Permit, <em>Sequence</em> 100, sin criterios.</li>
<li><strong>BGP → Neighbors</strong> → el peer de Cloud Router: <em>Remote AS</em> el ASN del Cloud Router, y en <em>Peer Filtering</em> asigna <code>ALLOW-ALL</code> como route map <strong>in</strong> y <strong>out</strong>.</li>
<li><strong>BGP → Network Distribution</strong>: lista las redes locales que quieres anunciar (o <em>Default Originate</em> si todo va por el túnel).</li>
<li>En GCP, el Cloud Router con <code>--advertisement-mode custom</code> si quieres controlar qué prefijos salen; por defecto anuncia las subredes de la VPC.</li>
</ol>
<p>Sin el paso 2, <code>vtysh -c &quot;show ip bgp summary&quot;</code> muestra la sesión <em>Established</em> con 0 prefijos en ambas direcciones, que es exactamente el síntoma.</p>
<h2 id="trampas">Trampas</h2>
<ul>
<li><strong>IKEv2</strong> salvo que el peer no pueda: IKEv1 sigue soportado, pero sin IPv6 y con menos cifrados. Classic VPN sigue existiendo (99,9 %), pero parte de su funcionalidad está retirada; lo nuevo va en HA VPN (99,99 %).</li>
<li><strong>Dos túneles por gateway</strong> en HA VPN para el 99.99 %: si solo levantas uno, el estado del gateway queda en aviso aunque funcione.</li>
<li><strong>MTU</strong>: 1460 por defecto en la VPC de GCP; con IPsec encima, deja que TCP haga MSS clamping en el peer (pfSense lo hace en la interfaz <code>ipsecN</code> del túnel) o verás transferencias que se cuelgan tras el handshake.</li>
<li><strong>Los logs tardan</strong>: un minuto o dos entre el evento y Logs Explorer. Refresca antes de cambiar la configuración otra vez.</li>
<li><strong>PSK con caracteres especiales</strong> copiada de un gestor de contraseñas: comprueba en el peer que no se comió nada; el síntoma es <code>IKE_AUTH</code> que falla, no <em>peer not responding</em>.</li>
</ul>
<h2 id="ver-también">Ver también</h2>
<ul>
<li><a href="/es/posts/pfsense/nat-reflection-port-forward-desde-lan/">pfSense: NAT reflection y split DNS</a> — el otro clásico de &ldquo;el túnel está bien y aun así no llego&rdquo;.</li>
<li><a href="https://docs.cloud.google.com/network-connectivity/docs/vpn/support/troubleshooting">Cloud VPN troubleshooting</a> en la documentación de Google Cloud.</li>
</ul>
]]></content:encoded></item></channel></rss>