Obiettivo
È necessario organizzare un tunnel VPN tra due dispositivi, come Mikrotik e Juniper della serie SRX.
Cosa abbiamo
Tra i Mikrotik abbiamo scelto sul sito wiki di Mikrotik, il modello che può supportare la crittografia hardware IPSec, che ci sembra abbastanza compatto e conveniente, ovvero Mikrotik hEXS.
Il modem USB è stato acquistato presso il più vicino operatore telefonico, il modello era Huawei E3370. Non abbiamo eseguito alcuna operazione per slegarlo dall'operatore. È tutto standard e flashato dallo stesso operatore.
Nel core è installato il router centrale Juniper SRX240H.
Cosa siamo riusciti a fare
Siamo riusciti a realizzare uno schema di lavoro che consente, tramite un operatore mobile, senza avere un indirizzo statico, di creare una connessione IPsec attraverso un modem in cui viene incapsulato un tunnel GRE.
Questo schema di connessione è utilizzato e funziona con modem USB di Beeline e Megafon.
La configurazione è la seguente:
Nel core è installato Juniper SRX240H
Indirizzo locale: 192.168.1.1/24
Indirizzo esterno: 1.1.1.1/30
GW: 1.1.1.2
Punto remoto
Mikrotik hEX S
Indirizzo locale: 192.168.152.1/24
Indirizzo esterno: Dinamico
Un piccolo diagramma per capire il funzionamento:
Configurazione Juniper SRX240:
Versione software JUNOS Software Release [12.1X46-D82]
Configurazione Juniper
interfacce {
ge-0\/0\/0 {
descrizione Internet-1;
unità 0 {
famiglia inet {
indirizzo 1.1.1.1\/30;
}
}
}
gr-0\/0\/0 {
unità 1 {
descrizione GRE-Tunnel;
tunnel {
sorgente 172.31.152.2;
destinazione 172.31.152.1;
}
famiglia inet;
vlan {
unità 0 {
famiglia inet {
indirizzo 192.168.1.1\/24;
}
}
st0 {
unità 5 {
descrizione "Area - 192.168.152.0\/24";
famiglia inet {
mtu 1400;
}
}
routing-options {
static {
rotta 0.0.0.0\/0 next-hop 1.1.1.2;
rotta 192.168.152.0\/24 next-hop gr-0\/0\/0.1;
rotta 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 aggressivo;
descrizione area-192.168.152.0;
proposal-set standard;
pre-shared-key ascii-text "mysecret"; ## SECRET-DATA
}
gateway gw-gretunnel {
ike-policy ike-gretunnel;
inet dinamico 172.31.152.1;
interfaccia-esterna ge-0\/0\/0.0;
versione v2-only;
}
ipsec {
}
policy vpn-policy0 {
perfect-forward-secrecy {
keys group2;
}
proposal-set standard;
}
vpn vpn-gretunnel {
bind-interface st0.5;
df-bit copia;
vpn-monitor {
ottimizzato;
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 immediatamente;
}
}
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;
}Configurazione Mikrotik hEX S:
Versione del software RouterOS [6.44.3]
Configurazione 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
Risultato:
Dal lato Juniper SRX
netscreen@srx240> ping 192.168.152.1
PING 192.168.152.1 (192.168.152.1): 56 byte di dati
64 byte da 192.168.152.1: icmp_seq=0 ttl=64 time=29.290 ms
64 byte da 192.168.152.1: icmp_seq=1 ttl=64 time=28.126 ms
64 byte da 192.168.152.1: icmp_seq=2 ttl=64 time=26.775 ms
64 byte da 192.168.152.1: icmp_seq=3 ttl=64 time=25.401 ms
^C
--- statistiche ping 192.168.152.1 ---
4 pacchetti trasmessi, 4 pacchetti ricevuti, 0% perdita di pacchetti
round-trip min/avg/max/stddev = 25.401/27.398/29.290/1.457 msDal lato Mikrotik
net[admin@GW-LTE-] > ping 192.168.1.1
SEQ HOST SIZE TTL TIME 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
inviati=5 ricevuti=5 perdita-pacchetti=0% min-rtt=34ms avg-rtt=40ms max-rtt=51ms Conclusioni
Dopo il lavoro svolto abbiamo ottenuto stabilità VPN Tunnel, dalla rete remota abbiamo accesso a tutta la rete che si trova dietro juniper, e viceversa.
Non consiglio di utilizzare IKE2 in questo schema, si è verificata la situazione in cui dopo il riavvio di un dispositivo non si alza IPSec.
Fonte: habr.com
