O objetivo
É necessário organizar um túnel VPN entre dois dispositivos, como Mikrotik e a linha SRX da Juniper.
O que temos
Dos Mikrotiks, escolhemos no site do Mikrotik Wiki um modelo que pode suportar a criptografia de hardware IPSec, que, em nossa opinião, é compacto e acessível, especificamente o Mikrotik hEXS.
O modem USB foi adquirido na operadora de celular mais próxima, modelo Huawei E3370. Nenhuma operação de desbloqueio foi realizada. Tudo é padrão e foi configurado pela própria operadora.
O núcleo possui o roteador central Juniper SRX240H.
O que conseguimos
Conseguimos implementar um esquema de operação que permite, através da operadora de celular, sem ter um endereço estático, criar uma conexão IPsec por meio de um modem que encapsula o túnel GRE.
Este esquema de conexão é utilizado e funciona em modens USB da Beeline e MegaFon.
A configuração é a seguinte:
O núcleo possui Juniper SRX240H
Endereço Local: 192.168.1.1/24
Endereço Externo: 1.1.1.1/30
GW: 1.1.1.2
Ponto remoto
Mikrotik hEX S
Endereço Local: 192.168.152.1/24
Endereço Externo: Dinâmico
Um pequeno diagrama para entender o funcionamento:
Configuração do Juniper SRX240:
Versão do software JUNOS Software Release [12.1X46-D82]
Configuração do Juniper
interfaces {
ge-0/0/0 {
description Internet-1;
unit 0 {
family inet {
address 1.1.1.1/30;
}
}
}
gr-0/0/0 {
unit 1 {
description GRE-Tunnel;
tunnel {
source 172.31.152.2;
destination 172.31.152.1;
}
family inet;
vlan {
unit 0 {
family inet {
address 192.168.1.1/24;
}
}
}
}
st0 {
unit 5 {
description "Área - 192.168.152.0/24";
family inet {
mtu 1400;
}
}
}
routing-options {
static {
route 0.0.0.0/0 next-hop 1.1.1.2;
route 192.168.152.0/24 next-hop gr-0/0/0.1;
route 172.31.152.0/30 next-hop st0.5;
}
router-id 192.168.1.1;
}
security {
ike {
traceoptions {
file vpn.log size 256k files 5;
flag all;
}
policy ike-gretunnel {
mode aggressive;
description area-192.168.152.0;
proposal-set standard;
pre-shared-key ascii-text "mysecret"; ## SECRET-DATA
}
gateway gw-gretunnel {
ike-policy ike-gretunnel;
dynamic inet 172.31.152.1;
external-interface ge-0/0/0.0;
version v2-only;
}
ipsec {
}
policy vpn-policy0 {
perfect-forward-secrecy {
keys group2;
}
proposal-set standard;
}
vpn vpn-gretunnel {
bind-interface st0.5;
df-bit copy;
vpn-monitor {
optimized;
source-interface st0.5;
destination-ip 172.31.152.1;
}
ike {
gateway gw-gretunnel;
no-anti-replay;
ipsec-policy vpn-policy0;
install-interval 10;
}
establish-tunnels immediately;
}
}
policies {
from-zone vpn to-zone vpn {
policy st-vpn-vpn {
match {
source-address any;
destination-address any;
application any;
}
then {
permit;
log {
session-init;
session-close;
}
count;
}
}
}
from-zone trust to-zone vpn {
policy st-trust-to-vpn {
match {
source-address any;
destination-address any;
application any;
}
then {
permit;
log {
session-init;
session-close;
}
count;
}
}
}
from-zone vpn to-zone trust {
policy st-vpn-to-trust {
match {
source-address any;
destination-address any;
application any;
}
then {
permit;
log {
session-init;
session-close;
}
count;
}
}
}
}
zones {
security-zone trust {
vlan.0 {
host-inbound-traffic {
system-services {
all;
}
protocols {
all;
}
}
}
}
security-zone vpn {
interfaces {
st0.5 {
host-inbound-traffic {
protocols {
ospf;
}
}
}
gr-0/0/0.1 {
host-inbound-traffic {
system-services {
all;
}
protocols {
all;
}
}
}
}
}
security-zone untrust {
interfaces {
ge-0/0/0.0 {
host-inbound-traffic {
system-services {
ping;
ssh;
ike;
}
}
}
}
}
}
vlan {
vlan-local {
vlan-id 5;
l3-interface vlan.1;
}
}Configuração Mikrotik hEX S:
Versão do software RouterOS [6.44.3]
Configuração Mikrotik
/ip address
add address=172.31.152.1/24 comment=GRE-Tunnel interface=gre-srx network=172.31.152.0
add address=192.168.152.1/24 comment=Local-Area interface=bridge network=192.168.152.0
/interface gre
add comment=GRE-Tunnel-SRX-HQ !keepalive local-address=172.31.152.1 name=gre-srx remote-address=172.31.152.2
/ip ipsec policy group
add name=srx-gre
/ip ipsec profile
add dh-group=modp1024 dpd-interval=10s name=profile1
/ip ipsec peer
add address=1.1.1.1/32 comment=GRE-SRX exchange-mode=aggressive local-address=172.31.152.1 name=peer2 profile=profile1
/ip ipsec proposal
set [ find default=yes ] enc-algorithms=aes-256-cbc,aes-128-cbc,3des
add enc-algorithms=aes-128-cbc,3des name=proposal1
/ip route
add distance=10 dst-address=192.168.0.0/16 gateway=gre-srx
/ip ipsec identity
add comment=IPSec-GRE my-id=address:172.31.152.1 peer=peer2 policy-template-group=srx-gre secret=mysecret
/ip ipsec policy
set 0 disabled=yes
add dst-address=0.0.0.0/0 proposal=proposal1 sa-dst-address=1.1.1.1 sa-src-address=172.31.152.1 src-address=172.31.152.0/30 tunnel=yes
/ip address
add address=172.31.152.1/24 comment=GRE-Tunnel interface=gre-srx network=172.31.152.0
add address=192.168.152.1/24 comment=Local-Area interface=bridge network=192.168.152.0
Resultado:
Do lado do Juniper SRX
netscreen@srx240> ping 192.168.152.1
PING 192.168.152.1 (192.168.152.1): 56 bytes de dados
64 bytes de 192.168.152.1: icmp_seq=0 ttl=64 tempo=29.290 ms
64 bytes de 192.168.152.1: icmp_seq=1 ttl=64 tempo=28.126 ms
64 bytes de 192.168.152.1: icmp_seq=2 ttl=64 tempo=26.775 ms
64 bytes de 192.168.152.1: icmp_seq=3 ttl=64 tempo=25.401 ms
^C
--- Estatísticas de ping para 192.168.152.1 ---
4 pacotes transmitidos, 4 pacotes recebidos, 0% de perda de pacotes
tempo de ida e volta min/média/máx/desvio padrão = 25.401/27.398/29.290/1.457 msDo lado do Mikrotik
net[admin@GW-LTE-] > ping 192.168.1.1
SEQ HOST TAM TTL TEMPO STATUS
0 192.168.1.1 56 64 34ms
1 192.168.1.1 56 64 40ms
2 192.168.1.1 56 64 37ms
3 192.168.1.1 56 64 40ms
4 192.168.1.1 56 64 51ms
enviados=5 recebidos=5 perda de pacotes=0% min-rtt=34ms avg-rtt=40ms max-rtt=51ms Como resultado, obtemos um serviço de "monitoramento como serviço", automatizado na linha de produção de integração contínua. O desenvolvedor ou testador precisa apenas definir a lista de métricas em um arquivo JSON, e tudo o mais acontece automaticamente. Obtemos um controle de qualidade transparente dos lançamentos: todas as notificações sobre desempenho, consumo de recursos ou regressões arquitetônicas.
Após o trabalho realizado, obtemos estabilidade VPN Tunnel, da rede remota temos acesso a toda a rede que está atrás do juniper, e vice-versa.
Não recomendo usar o IKE2 neste esquema, houve situações em que após a reinicialização de um dos dispositivos, o IPSec não se levantava.
Fonte: habr.com
