802.1Q para la gestión de GOST L2VPN o cómo ahorrar dinero en actualizaciones de software





Situación



Tengo que abrir una conexión VPN entre dos sitios de la red. En la sala de servidores, al parecer, había puertas de enlace de seguridad C-Terra Gateway versión 4.2. El esquema es simple. El proveedor incluso publicó un script de configuración recomendado. Pero ... el script del proveedor usa tres interfaces de red y mis pasarelas solo tienen dos.



Preparo café, recuerdo mi CCNA y trato de usar lo que tengo: puertos libres en conmutadores administrados.



Mi red



Mi red son dos sitios separados geográficamente en un dominio de transmisión. Espacio de direcciones: 10.10.205.0/24:







De la mano de dos pasarelas de seguridad C-Terra Gateway versión 4.2 con el paquete C-Terra L2.

Acerca del



paquete C-Terra L2 El paquete le permite cambiar una o más interfaces de puerta de enlace al modo PROMISC. La interfaz PROMISC intercepta las tramas de enlace de datos y C-Terra L2 las encapsula en UDP.

Luego, los paquetes UDP se cifran (encapsulan en ESP). Esto crea una conexión VPN L2 sobre L3. C-Terra L2 está preinstalado en todas las puertas de enlace de seguridad y se activa con una licencia separada.


En el escenario recomendado, las puertas de enlace de seguridad están ubicadas en el borde de la red y se asigna una interfaz separada para la administración:







Para facilitar la descripción de las interfaces:



  • Gi0 / 0 - interfaces PROMISC;
  • Gi0 / 1 - Interfaces WAN L3;
  • Gi0 / 2: interfaces de gestión dedicadas. Entiendo que tengo que administrar la segunda puerta de enlace de seguridad a través del túnel VPN.


Decisión



La primera taza de café terminó mientras leía en Habré sobre 802.1Q; recordé CCNA. La segunda taza se ha enfriado (la calentaré en el microondas) mientras se cambia el equipo, como muestra la figura:







distingo tres tipos de tráfico:



  • Tráfico principal entre dispositivos R1 y R2. Lo designaré como DATOS A GRANEL y lo pondré en la VLAN 205. Los DATOS A GRANEL deben estar encriptados antes de la transmisión entre sitios;
  • Tráfico de gestión de pasarela - MGMT. Lo llevaré a la VLAN 10. El tráfico MGMT hacia la puerta de enlace en el sitio remoto debe estar encriptado;
  • BULK DATA y MGMT después del cifrado, los designaré como ESP DATA y los pondré en la VLAN 100.


Según mis estimaciones, la transmisión BULK DATA / ESP DATA en la red se verá así (las líneas verdes representan tráfico sin cifrar, rojo - tráfico cifrado):







Transmisión MGMT para control de puerta de enlace en el sitio local:







Transmisión de datos MGMT / ESP para control de puerta de enlace en el sitio remoto:







5 pasos de configuración



Paso 1. Tratar con BULK DATA



Selecciono una VLAN 205 separada para BULK DATA. Para esto, configuro la interfaz Gi0 / 2 de los dispositivos SW1 y SW2 en modo de acceso con VLAN 205:



sw1(config)#
interface gi0/2
    description BULK_TO_R1
    switchport access vlan 205
    no shutdown

sw2(config)#
interface gi0/2
  description BULK_TO_R2
  switchport access vlan 205
  no shutdown


Realizo interfaces Gi0 / 0 de pasarelas GW1 y GW2 interfaces PROMISC. Para pasar BULK DATA a la interfaz PROMISC, configuro el tronco a la interfaz PROMISC:



sw1(config)#
interface gi0/0
  description LINK_TO_PROMISC_GW1
  switchport mode trunk
  switchport trunk allowed vlan 205
  switchport trunk encapsulation dot1q
  no shutdown

sw2(config)#
interface gi0/0
  description LINK_TO_PROMISC_GW2
  switchport mode trunk
  switchport trunk allowed vlan 205
  switchport trunk encapsulation dot1q
  no shutdown






Paso 2. Tratar con MGMT local



De acuerdo con el plan, tráfico MGMT que transporta VLAN 10. Espacio de direcciones para VLAN 10: 10.76.76.128/28.



En el dispositivo SW1 y SW2, creo interfaces virtuales vlan10:



sw1(config)#
interface vlan10
  ip address 10.76.76.129 255.255.255.240
  no shutdown 

sw2(config)#
interface vlan10
  ip address 10.76.76.142 255.255.255.240
  no shutdown


Hago VLAN 10 nativa VLAN para no configurar interfaces 802.1Q en la puerta de enlace:



sw1(config)#
interface gi0/1
  description LINK_TO_WAN_GW1
  switchport mode trunk
  switchport trunk allowed vlan 10
  switchport trunk native vlan 10
  switchport trunk encapsulation dot1q
  no shutdown

sw2(config)#
interface gi0/1
  description LINK_TO_WAN_GW2
  switchport mode trunk
  switchport trunk allowed vlan 10
  switchport trunk native vlan 10
  switchport trunk encapsulation dot1q
  no shutdown






Configuración de interfaces Gi0 / 1 de pasarelas de seguridad:



GW1(config)#
interface gi0/1
   ip address 10.76.76.137 255.255.255.240
   no shutdown

GW2(config)#
interface gi0/1
  ip address 10.76.76.138 255.255.255.240
  no shutdown


Ahora GW1 está disponible a través de SSH desde el dispositivo SW1:



sw1#ssh –l root 10.76.76.137
Password:
S-Terra Gate 4.2.18201 (amd64)
root@GW1~#


Del mismo modo, se puede acceder a GW2 a través de SSH desde el dispositivo SW2:



sw2#ssh –l root 10.76.76.138
Password:
S-Terra Gate 4.2.18201 (amd64)
root@GW2~#


Bien, se sirvió otra taza de café.



Paso 3. Tratar con MGMT a la puerta de enlace en el sitio remoto El



tráfico MGMT a la puerta de enlace en el sitio remoto debe estar cifrado. Para hacer esto, lanzaré VLAN 10 a través de la VPN. Todo el tráfico interceptado desde la interfaz PROMISC ingresará al túnel VPN. Agregaré al tronco a la interfaz PROMISC VLAN 10:



sw1(config)#
interface gi0/0
  description LINK_TO_PROMISC_GW1  
  switchport trunk allowed vlan 10, 205

sw2(config)#
interface gi0/0
  description LINK_TO_PROMISC_GW1  
  switchport trunk allowed vlan 10, 205


¡No pierda media hora solucionando problemas!



La interfaz PROMISC no debe obtener DATOS ESP, por lo que es importante excluir la VLAN 100 de los troncales LINK_TO_PROMISC_GW1 y LINK_TO_PROMISC_GW2 en las siguientes opciones:



switchport trunk allowed vlan 1-99,101-4096


Paso 4. Llegué a ESP DATA



. Selecciono ESP DATA en VLAN 100 en las puertas de enlace GW1 y GW2. Espacio de direcciones para VLAN 100: 192.168.10.0/30



Para hacer esto, en la interfaz WAN Gi0 / 1 de las puertas de enlace GW1 y GW2, creo una interfaz 802.1Q Gi0 / 1.100.

El tráfico saliente de dicha interfaz pertenecerá a la VLAN 100:



GW1(config)#
interface gi0/1.100
   ip address 192.168.10.1 255.255.255.252
   no shutdown

GW2(config)#
interface gi0/1.100
  ip address 192.168.10.2 255.255.255.252
  no shutdown






Permito el paso de la VLAN 100 al tronco LINK_TO_WAN_GW1 y LINK_TO_WAN_GW2:



sw1(config)#
interface gi0/1
  description LINK_TO_WAN_GW1
  switchport trunk allowed vlan 10,100

sw2(config)#
interface gi0/1
  description LINK_TO_WAN_GW2
  switchport trunk allowed vlan 10,100


El enlace entre los dispositivos SW1 y SW2 también debe transmitir tráfico VLAN 100 etiquetado:



sw1(config)#
interface gi0/3
  description LINK_TO_SW2
  switchport mode trunk
  switchport trunk allowed vlan 100
  switchport trunk encapsulation dot1q
  no shutdown

sw2(config)#
interface gi0/3
  description LINK_TO_SW1
  switchport mode trunk
  switchport trunk allowed vlan 100
  switchport trunk encapsulation dot1q
  no shutdown


Paso 5. Configuración de C-Terra L2 e IPsec VPN con GOST



C-Terra L2 se configura en el sistema operativo mediante el archivo de configuración /opt/VPNagent/etc/l2.conf. Para GW1:



vif tap0
bridge br0
capture eth0
remote 192.168.10.2
mssfix 1400
passtos


donde:



capture eth0 - seleccione la interfaz PROMISC, remoto 192.168.10.2 - dirección IP del par IPsec (interfaz Gi0 / 1.100 del gateway GW2).



Para GW2:



vif tap0
bridge br0
capture eth0
remote 192.168.10.1
mssfix 1400
passtos


Configuración de parámetros IKE / IPsec. Para GW1:

Gateways usará nombres de host como identificadores, establecerá una clave predefinida para la autenticación (las Reglas de uso para la autenticación deben usar certificados digitales, las cambiaré más adelante):



GW1(config)#
crypto isakmp identity hostname
ip host GW2 192.168.10.2
crypto isakmp key KEY hostname GW2


Configuración de los parámetros de detección de pares muertos (DPD):



GW1(config)#
crypto isakmp keepalive 10 2
crypto isakmp keepalive retry-count 5


Configuré los parámetros de la fase I de IPsec:



GW1(config)#
crypto isakmp policy 1
  encr gost
  hash gost3411-256-tc26
  auth pre-share
  group vko2


Configuré los parámetros para IPsec Phase II:



GW1(config)#
crypto ipsec transform-set TSET esp-gost28147-4m-imit
   mode tunnel


Dado que las tramas interceptadas por la interfaz PROMISC L2 están encapsuladas en UDP, la lista de acceso que define el tráfico para el cifrado:



GW1(config)#
ip access-list extended LIST
   permit udp host 192.168.10.1 host 192.168.10.2


Creo un mapa criptográfico y lo vinculo a Gi0 / 1.100:



GW1(config)#
crypto map CMAP 1 ipsec-isakmp
  match address LIST
  set transform-set TSET
  set peer 192.168.10.2
interface gi0/1.100
  crypto map CMAP


Especifico la ruta predeterminada a través de la dirección IP del par IPsec:



GW1(config)#
ip route 0.0.0.0 0.0.0.0 192.168.10.2 	


Configuración de la puerta de enlace GW2:



GW2(config)#
crypto isakmp identity hostname
ip host GW1 192.168.10.1
crypto isakmp key KEY hostname GW1
crypto isakmp keepalive 10 2
crypto isakmp keepalive retry-count 5
crypto isakmp policy 1
  encr gost
  hash gost3411-256-tc26
  auth pre-share
  group vko2
crypto ipsec transform-set TSET esp-gost28147-4m-imit
  mode tunnel
ip access-list extended LIST
  permit udp host 192.168.10.2 host 192.168.10.1
crypto map CMAP 1 ipsec-isakmp
  match address LIST
  set transform-set TSET
  set peer 192.168.10.1
interface gi0/1.100
  crypto map CMAP
ip route 0.0.0.0 0.0.0.0 192.168.10.1


¿Sucedió?



Desde el dispositivo R1, hago ping al R2:



R1#ping 10.10.205.2 
Type escape sequence to abort. 

Sending 5, 100-byte ICMP Echos to 10.10.205.2, timeout is 2 seconds: 
!!!!! 
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/2/3 ms</code>

R2   ICMP.  ?  ARP   R1  R2:

<source>R1#show arp 
Protocol  Address          Age (min)  Hardware Addr   Type   Interface 
Internet  10.10.205.1             -   aabb.cc00.5020  ARPA   GigabitEthernet0/2 
Internet  10.10.205.2            54   aabb.cc00.6020  ARPA   GigabitEthernet0/2

R2#show arp 
Protocol  Address          Age (min)  Hardware Addr   Type   Interface 
Internet  10.10.205.1            52   aabb.cc00.5020  ARPA   GigabitEthernet0/2 
Internet  10.10.205.2             -   aabb.cc00.6020  ARPA   GigabitEthernet0/2


Los dispositivos R1 y R2 asumen que están en la misma subred de transmisión.



Los dispositivos SW1 y SW2 consideran que están conectados entre sí por dos enlaces:



sw1#show cdp neighbors
Device ID    Local Intrfce   Holdtme     Capability  Platform  Port ID 
sw2          Gi0/0           146             R S I  Linux Uni Gi0/0 
sw2          Gi0/3           146             R S I  Linux Uni Gi0/3 
R1           Gi0/2           156              R B   Linux Uni Gi0/2

sw2#show cdp neighbors
Device ID    Local Intrfce   Holdtme     Capability  Platform  Port ID 
sw1          Gi0/0           140             R S I  Linux Uni Gi0/0 
sw1          Gi0/3           140             R S I  Linux Uni Gi0/3 
R2           Gi0/2           156              R B   Linux Uni Gi0/2


Intentando conectarse a GW2 a través de SSH desde el dispositivo SW1:



sw1#ssh –l root 10.76.76.138
Password:
S-Terra Gate 4.2.18201 (amd64)
root@GW2~#


Conclusión: los sitios 1 y 2 están vinculados de forma transparente en un único dominio de difusión. Verificaré si el canal tiene encriptación:



Estadísticas del túnel IPsec en el dispositivo GW1:



root@GW1:~# sa_mgr show 
ISAKMP sessions: 0 initiated, 0 responded

ISAKMP connections: 
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd 
1 2 (192.168.10.1,500)-(192.168.10.2,500) active 31378 31502

IPsec connections: 
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd 
1 2 (192.168.10.1,*)-(192.168.10.2,*) 17 ESP tunn 508224 27672


Se estableció un túnel IPsec entre 192.168.10.1 y 192.168.10.2.



Verifiqué que solo se transmite tráfico ESP entre los dispositivos SW1 y SW2, sin contar STP. Aquí hay un volcado de tráfico de la interfaz gi0 / 3 de SW1:







Finalmente



Bebí tres tazas de café, luego no dormí en toda la noche, pero no tuve que comprar hardware nuevo ni actualizarlo. Quizás valió la pena, en la versión 4.3, el proveedor recordó L2. Estoy pensando en probar la versión 4.3.



Ingeniero anónimo

t.me/anonimous_engineer



All Articles