aqui
Goto Top

Cisco, Mikrotik, pfSense VPN Standort Vernetzung mit dynamischem Routing

article-picture

back-to-topAllgemeine Einleitung


Das nachfolgende Tutorial ist eine Fortführung der hier bei Administrator.de schon bestehenden VPN Tutorials. Es beschreibt eine heterogene VPN Standort Vernetzung auf Basis von IPsec zwischen Cisco Routern und Mikrotik Routern. Es deckt damit ein Szenario ab bei dem ggf. in der Zentrale ein leistungsfähiger VPN Router (Cisco) zum Einsatz kommt, in den Außenstandorten aber z.B. aus Budget Gründen preiswerte Mikrotik Router.
Der Clou dieses Designs ist eine sicher verschlüsselte VPN Verbindung (IPsec im Transport Mode) über die eine GRE Tunnel Verbindung gelegt ist.
Die Verwendung von separaten GRE Tunneln bzw. Tunnel Interfaces im Vergleich zum direkten IPsec im Tunneling Mode ermöglicht den Einsatz von dynamischen Routing Protokollen wie RIPv2 oder OSPF.
Durch den vollständigen Entfall der manuellen Konfiguration statischer Routen, bei Verwendung eines dynamischen Routing Protokolls, ergibt sich eine erhebliche Vereinfachung und Fehlersicherheit im Routing.
Bei einer Vielzahl von Außenstellen stellt das eine erhebliche Erleichterung der Installation und des Managements dieser remoten Netze dar.
Ferner sind damit einfache automatische Leitungs Backup Szenarien realisierbar ohne jede manuelle Intervention um z.B. gesonderte Außenstellen über eine zweite Leitung oder direkten Backup auf eine andere Außenstelle abzusichern.
Gerade in VPN Standort Designs mit erhöhten Anforderungen wie remoter VoIP Telefonie usw. ergeben sich durch automatisches Backup und dynamisches Rerouting eine erheblich größere Betriebssicherheit.
Ebenso ist Multicast Routing (Audio- und Video Streaming) mit PIM über so ein Tunnel VPN Design in alle Standorte routebar.
Ziel ist es bei privaten oder Firmen VPNs im klein- und mittelständischen Umfeld bei Standort Vernetzungen ohne großes Probieren schnell zu einer funktionierenden und betriebssicheren Lösung zu kommen.
Die hier vorgestellten Beispiele und Screenshots können direkt auf bestehende Projekte übertragen werden, bei entsprechender Anpassung der IP Adressierung auf die eigenen Belange.
Die Beispiele können ebenfalls dazu dienen, solche VPN Designs auch in reinen Cisco oder reinen Mikrotik Umgebungen zu realisieren, da die grundlegenden Konfigurations Schritte identisch sind. Ebenso ist die Wahl des dynamischen Routing Protokolls frei. Wer OSPF bevorzugt kann dies natürlich statt des hier vorgestellten RIPv2 verwenden. RIPv2 wurde hier wegen der Einfachheit der Konfiguration gewählt. Zudem ist RIPv2 oft Feature Grundbestandteil auch einfacher Layer 3 (Routing) Switches und dedizierter Router.

In den weiterführenden Links am Ende des Tutorials findet man zusätzliche Informationen zu den Themen VPN und Routing.
Die Konfig ist einfach und auch von Laien umsetzbar. Ein klein wenig Basiswissen zum Thema IPsec VPNs generell und Cisco Command Line Interface bzw. Mikrotiks grafischer WinBox Konfig kann aber, wie immer, nicht schaden und hilft beim Verständnis !

back-to-topGRE Testumgebung


Das Internet wird hier durch separate 10er IP Netze mit DHCP Adressvergabe simuliert. Alle VPN Router arbeiten mit ihrem WAN / Internet Port per NAT (Netzwerk Adress Translation) und einer aktiven Firewall untereinander auf diesem IP Netz. Somit genau wie im Internet bzw. über den Provider unter realen Bedingungen.
Die VPN Verschlüsselung nutzt nur das aktuelle und derzeit sichere AES in einer 256Bit Variante.
Eigene IP Adressierung und ggf. WAN Port Konfigs wie xDSL müssen entsprechend angepasst werden.
Das VPN Design sieht so aus:

gre_neu.

Dieses Design behandelt im ersten Schritt die Grundkonfiguration beider Komponenten. Die IP Adressierung hier im Tutorial:
Internet Adresse Cisco = 10.99.1.198
Internet Adresse Mikrotik = 10.1.1.150
GRE Tunnel Netz = 172.31.31.8 /30 (Cisco=172.31.31.9, Mikrotik=172.31.31.10)
Lokale LANs gemäß o.a. Abbildung.

Das Tunnel Netz ist ein Punkt zu Punkt Netz. Deshalb kommen hier immer /30er Netze (30er Prefix = 255.255.255.252 Subnetzmaske) mit 2 nutzbaren Hostadressen zum Einsatz.
Im zweiten Schritt des Tutorials wird ein zweiter Mikrotik Standort eingebunden und die Cisco sowie die Mikrotik Seite mit weiteren lokalen VLAN IP Netzen erweitert, um ein mehr Realitäts bezogenes Setup zu zeigen. Dazu später mehr...
Los gehts....

back-to-topCisco Router Setup (GRE)


Das Tutorial geht bewusst nicht mehr im Detail auf ein Standard Internet Setup ein was den Rahmen dieses Tutorial sprengen würde. Aus Gründen der Übersicht wird dies vorausgesetzt bzw. kann vom hiesigen Cisco_Grundlagen_Tutorial einfach übernommen werden. Es gilt für alle Cisco IOS basierten Modelle.
Es wird hier lediglich die VPN und GRE Tunnel Konfiguration in Verbindung mit einer Zone Based Firewall beschrieben die zur Konfiguration nötig sind.

(Alle hier rot markierten Konfig Parameter betreffen das erweiterte Design in Kapitel: Erweiterte Standort Konfiguration für mehrere Standorte und zusätzliche lokale (V)LANs.
Diese zusätzlichen lokalen LAN Netzwerke können im Falle eines einem einfachen Design mit 2 Standorten und je einem einzigen lokalen LAN gem. der Zeichnung von oben natürlich weggelassen werden. Kommentare zur Cisco Konfiguration in schwarz.)

!
hostname cisco_router
!
aaa new-model
!
aaa authentication login default local
aaa authorization network default local
!
clock timezone CET 1 0
==> Uhrzeit auf Europa / Sommerzeit setzen
clock summer-time CEST recurring last Sun Mar 2:00 last Sun Oct 3:00
!
ip dhcp binding cleanup interval 30
ip dhcp excluded-address 192.168.77.1 192.168.77.100
==> DHCP IP Adresspool .101 bis .149
ip dhcp excluded-address 192.168.77.150 192.168.77.254
!
ip dhcp pool LAN
==> DHCP Server für lokales LAN
network 192.168.77.0 255.255.255.0
dns-server 192.168.7.254
domain-name cisco.home.arpa
default-router 192.168.77.1
!
ip domain lookup source-interface Ethernet1
ip domain name cisco.home.arpa
ip name-server <DNS IP-Adresse>
ip inspect log drop-pkt
==> Logging der von der Firewall geblockten Pakete
!
class-map type inspect match-any internet-allowed
==> Festlegen der vom Internet erlaubten Pakete durch die Firewall
description Zugriff vom Internet erlauben
match access-group name WAN_IN
class-map type inspect match-any lan-allowed
==> Festlegen der vom LAN erlaubten Pakete durch die Firewall
description Lokale LAN Protokolle ins Internet erlauben
match protocol dns
match protocol http
match protocol https
match protocol imaps
match protocol smtp extended
match protocol sip-tls
match protocol rtsp
match protocol ssh
match protocol ntp
match protocol tcp
match protocol udp
match protocol icmp
!
policy-map type inspect lan-allowed-policy
==> Firewall Policy Lokales LAN zu Internet
description LAN zu Internet Policy
class type inspect lan-allowed
inspect
class class-default
drop
policy-map type inspect internet-allowed-policy
==> Firewall Policy Internet zu Router
description Internet zu Router Policy
class type inspect internet-allowed
pass
class class-default
drop
!
zone security lan
zone security wan
zone-pair security lan-wan source lan destination wan
description Firewall LAN-Internet
service-policy type inspect lan-allowed-policy
zone-pair security wan-self source wan destination self
description Firewall Internet-Router
service-policy type inspect internet-allowed-policy
!
crypto keyring MTVPN
pre-shared-key address 10.1.1.150 key test123

pre-shared-key address 10.99.1.149 key geheim123
==> Zweiter VPN Router (Erweiterte Standort Konfig)
!
crypto isakmp policy 10
==> Festlegen der IPsec Schlüsselparameter
encr aes 256
hash sha256
authentication pre-share
group 14
!
crypto isakmp profile Mikrotik-1
==> Verbindungsparameter Mikrotik-1
description IPsec Mikrotik-1
keyring MTVPN
match identity address 10.1.1.150 255.255.255.255

crypto isakmp profile Mikrotik-2
==> Verbindungsparameter Mikrotik-2 (Siehe: Erweiterte Standort Konfig)
description IPsec Mikrotik-2
keyring MTVPN
match identity address 10.99.1.149 255.255.255.255

!
crypto ipsec transform-set mikrotik esp-aes 256 esp-sha256-hmac
mode transport
==> Transport Mode, da Tunnel durch GRE realisiert !
!
crypto map mikrotik 10 ipsec-isakmp
description IPsec Mikrotik-1
set peer 10.1.1.150
set transform-set mikrotik
set isakmp-profile Mikrotik-1
match address 107
==> Alles was diese ACL definiert wird IPsec verschlüsselt
crypto map mikrotik 15 ipsec-isakmp
==> Router Mikrotik-2 (Erweiterte Standort Konfig)
description IPsec Mikrotik-2
set peer 10.99.1.149
set transform-set mikrotik
set isakmp-profile Mikrotik-2
match address 108

!
interface Tunnel0
==> GRE Tunnel Interface Mikrotik 1
description GRE zu Mikrotik-1
ip address 172.31.31.9 255.255.255.252
ip mtu 1400
zone-member security lan
tunnel source 10.99.1.198
tunnel destination 10.1.1.150
tunnel path-mtu-discovery
!

interface Tunnel1
==> GRE Tunnel Interface Mikrotik 2
description GRE zu Mikrotik-2
ip address 172.31.31.1 255.255.255.252
ip mtu 1400
zone-member security lan
tunnel source 10.99.1.198
tunnel destination 10.99.1.149
tunnel path-mtu-discovery

!
interface Vlan1
description Lokales LAN
ip address 192.168.77.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
zone-member security lan
!

interface Vlan10
description Lokales VLAN-10
ip address 192.168.177.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
zone-member security lan

!
interface Ethernet 1
description Internet / WAN Verbindung
ip address 10.99.1.198 255.255.255.0
no ip redirects
no ip unreachables
ip nat outside
zone-member security wan
crypto map mikrotik
!
router rip
==> Dynamisches RIP Routing mit Version 2 ! aktivieren
version 2
passive-interface default
no passive-interface Tunnel0

no passive-interface Tunnel1

network 172.31.0.0
==> Netzwerke in klassischer Class A,B,C Notation angeben
network 192.168.77.0

network 192.168.177.0

no auto-summary
==> WICHTIG ! Aktiviert CIDR Masken
!
ip route 0.0.0.0 0.0.0.0 10.99.1.254
==> Default Route Internet
!
ip dns server
==> Cisco ist hier DNS Proxy. (Entfällt bei lokalem DNS Server !)
ip nat inside source list 101 interface Ethernet 1 overload
!
ip access-list extended WAN_IN
permit icmp any any echo-reply
permit icmp any any packet-too-big
permit icmp any any time-exceeded
permit udp any eq bootps any
permit udp any any eq isakmp
permit udp any any eq non500-isakmp
permit esp any any
permit gre any any
permit udp any eq domain any
permit tcp any eq domain any
permit udp any eq ntp any
!
access-list 101 deny ip 192.168.77.0 0.0.0.255 172.16.0.0 0.15.255.255
==> VPN Traffic in lokale private IP Netze vom NAT ausgenommen (Tunnel)
access-list 101 deny ip 192.168.77.0 0.0.0.255 192.168.0.0 0.0.255.255

access-list 101 deny ip 192.168.177.0 0.0.0.255 172.16.0.0 0.15.255.255
==> VLAN-10 VPN Traffic dto. vom NAT ausgenommen (Tunnel)
access-list 101 deny ip 192.168.177.0 0.0.0.255 192.168.0.0 0.0.255.255

access-list 101 permit ip 192.168.77.0 0.0.0.255 any
Alles andere per NAT ins Internet
access-list 101 permit ip 192.168.177.0 0.0.0.255 any
Dto. für VLAN-10
access-list 107 permit gre host 10.99.1.198 host 10.1.1.150
==> GRE Traffic (IP 47) zu Mikrotik-1 IPsec verschlüsselt
access-list 108 permit gre host 10.99.1.198 host 10.99.1.149
==> GRE Traffic (IP 47) zu Mikrotik-2 IPsec verschlüsselt
!
ntp server ntps1-0.cs.tu-berlin.de source Ethernet 1
==> Router Uhrzeit einstellen per NTP (Referenz TU Berlin)
!
end


back-to-topMikrotik RouterOS Setup


back-to-topDefault Konfiguration


Der Mikrotik Router kann für eine Grundkonfiguration im Default Setup verbleiben. Im Mikrotik Default Setup ist der Port ether 1 ein Internet Port (WAN) mit Firewall und NAT (IP Adress Translation) und arbeitet als DHCP Client. Er erhält also automatisch eine IP Adresse wenn man ihn mit diesem Port in ein bestehendes Netzwerk mit DHCP Adressvergabe steckt.
Dadurch, das in der Default Konfig eine sichere Firewall am ether1 Port arbeitet, geht man hier auch sicherheitstechnisch absolut auf Nummer sicher was den Schutz von außen anbetrifft !
Man kann den Mikrotik im Menüpunkt "System -> Reset Configuration" und Haken bei "Default Configuration" und "No Backup" mit einem Werksreset mit dieser Default Konfiguration versehen.

Default Konfiguration
tgre1

back-to-topInterface und IP Adress Konfiguration


Im ersten Schritt richtet man dazu unter Interfaces - GRE ein Tunnel Interface ein.

Tunnel Interface einrichten und der "LAN" Interface Liste hinzufügen:
tgre2
lanlist


IP Adressen auf allen Interfaces konfigurieren:
tgre3

back-to-topIPsec Schlüsselparameter setzen


Der Mikrotik bietet die Option ein separates IPsec Policy Profil für die Phase 1 und 2 zu setzen. Wer möchte kann das natürlich machen.
Einfacher und übersichtlicher ist es aber die schon bestehenden Default Profile im Mikrotik von Altlasten (3DES und SHA1) zu befreien und die modernere und sichere AES Verschlüsselung zu setzen. Damit können die Default Profile dann einfach beibehalten werden.

IPsec Peer Profil (Phase 1) einstellen
tgre4

IPsec Policy Profil (Phase 2) einstellen
tgre5

IPsec Peer auf den Cisco einrichten
tgre6
(Für Mikrotik-2 aus Kapitel 6 entsprechend das Passwort: geheim123 )

IPsec Peer Policies einstellen
tgre7
(IP Peer Adressen auf dem zweiten Router (Mikrotik-2, Kapitel 6) entsprechend anpassen !)

Wenn hier in der Phase 2 der Status auf "Established" geht, ist die IPsec Verbindung OK und der Tunnel aktiv. Der Cisco Router zeigt dann im Gegenzug mit show crypto isakmp sa den QM_IDLE Status an.
cisco_router#sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst             src             state          conn-id status
10.99.1.198     10.1.1.150      QM_IDLE           2002 ACTIVE
10.1.1.150      10.99.1.198     QM_IDLE           2001 ACTIVE 


back-to-topDynamisches Routing mit RIPv2 Protokoll aktivieren


Generell kann hier jedes beliebige, dynamische Routing Protokoll verwendet werden. Ein Distance Vector Protokoll wie OSPF ist hier also durchaus auch eine Option sofern dies gefordert ist.
Das Tutorial beschreibt hier der Einfachheit halber ein einfaches Next Hop Protokoll wie das bekannte RIP (Routing Information Protocol) in der Version 2.
RIP ist auch in KMU Modellen von L3 Switches und Routern sowie in so gut wie allen Firewalls sehr weit verfügbar. OSPF eher mehr im High End Bereich. (Bei entsprechendem Interesse (PM) kann das Tutorial um ein OSPF Kapitel erweitert werden.)
Ganz wichtig ist das unbedingt und zwingend die Version 2 von RIP aktiviert wird !!!
Nur RIPv2 kann mit CIDR_Subnetzmasken Subnetzen umgehen, also mit variablen Subnetz Masken. Diese modernen und heutzutage allseits verwendeten CIDR Masken ersetzen endgültig die alte und 1993 abgeschaffte Einteilung in feste Netzwerk Klassen.

RIPv2 auf dem Mikrotik aktivieren und lokale IP Netze eintragen:
tgre8
Der Parameter "Passive" auf dem LAN Interface bedeutet das der Router hier keine RIPv2 Updates sendet und damit im LAN keine Routing Daten weitergibt. Soll er ja auch nur im WAN (VPN) machen !
Wer hier im LAN weitere RIPv2 Router betreibt, aktiviert hier natürlich KEINEN Passive Modus !
Zusätzlich ist es möglich die RIPv2 Routing Updates mit einem Passwort zu versehen um nicht authorisierte Router im Netz daran zu hindern Fake (Falsche) Routing Updates zu senden um so den Datenverkehr zu manipulieren.
Routing Updates werden dann nur mit Gegenstellen akzeptiert die gleiche Passwörter haben. Ein Sicherheits Feature.

Kontrolle der Routing Tabelle und IP Verbindung
tgre10
(DAC = Connected IP Netze, DAr = via RIPv2 dynamisch gelernt
Distance : 0=Lokal, 1=Statisch, 120=gelernt mit RIPv2)

Routing Tabellen Check auf dem Cisco Router:
cisco_router#sh ip rou
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is 10.99.1.254 to network 0.0.0.0

S*    0.0.0.0/0 [254/0] via 10.99.1.254
      10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        10.99.1.0/24 is directly connected, Ethernet1
L        10.99.1.198/32 is directly connected, Ethernet1
      172.31.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.31.31.8/30 is directly connected, Tunnel0
L        172.31.31.9/32 is directly connected, Tunnel0
      192.168.77.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.77.0/24 is directly connected, Vlan1
L        192.168.77.1/32 is directly connected, Vlan1
R     192.168.88.0/24 [120/1] via 172.31.31.10, 00:00:01, Tunnel0

cisco-router#sh ip rip database
172.31.0.0/16    auto-summary
172.31.31.8/30    directly connected, Tunnel0
192.168.77.0/24    auto-summary
192.168.77.0/24    directly connected, Vlan1
192.168.88.0/24    auto-summary
192.168.88.0/24
    [1] via 172.31.31.10, 00:00:19, Tunnel0 
120/1 zeigt auch hier die per RIPv2 ("R") vom Mikrotik gelernten Netze.
Ein Ping vom einen lokalen LAN in das remote lokale LAN verifiziert jetzt die korrekte Funktion der VPN Standort Vernetzung.

back-to-topIst das wirklich sicher ? Vertrauen ist gut, Kontrolle ist besser !


Sind keine Konfigurationsfehler gemacht worden ? Sind die Daten wirklich sicher und verschlüsselt ?
Latente Zweifel bleiben (fast) immer wenn man sich den Datenverkehr der Standorte nicht explizit ansieht.
Eine kurze Kontrolle ob die VPN Daten wirklich sicher verschlüsselt über öffentliche Netze (Internet) gehen ist also nie falsch und schafft Vertrauen in diese Lösung ! Der Cisco Router zeigt die Sicherheit an:
cisco_router#sh crypto isakmp policy
Global IKE policy
Protection suite of priority 10
        encryption algorithm:   AES - Advanced Encryption Standard (256 bit keys).
        hash algorithm:         Secure Hash Standard 2 (256 bit)
        authentication method:  Pre-Shared Key
        Diffie-Hellman group:   #14 (2048 bit)
        lifetime:               86400 seconds, no volume limit 
Und auch der Mikrotik in seinem Log...:

lanlist3

Letzte Gewissheit das die Daten sicher sind schafft aber wie üblich ein Wireshark Sniffer Trace:

lanlist2
Das ESP Paket transportiert die verschlüsselten Daten zwischen den 2 Standorten !
Works as designed...! 👍

back-to-topErweiterte Standort Konfiguration mit mehreren lokalen LANs oder VLANs


Ein mehr Praxis orientiertes VPN Standort Design ist eines, welches auch mehrere lokale (V)LANs berücksichtigt, denn die Mehrheit der KMU Netze sind heutzutage segmentiert. Größere sowieso. Dies muss schon aufgrund der Einführung von VoIP so sein um Voice Daten von produktiven Netzen fernzuhalten.
Das Beispiel beschreibt 3 Standorte und kann beliebig auf weitere Standorte erweitert werden. Die Konfigurationsschritte sind dazu immer gleich.

erwstand-neu.

Die für den Cisco Router zu erweiternden Konfigurations Kommandos für ein zusätzliches lokales LAN (VLAN 10) und einen zweiten remoten Standort (Mikrotik 2) findet man in der Konfig oben rot markiert.
Für die VLAN Grundkonfiguration der Mikrotiks gibt es im Forum ein eigens, ausführliches Mikrotik VLAN Tutorial !
Es müssen lediglich der RIPv2 Routing Prozess aktiviert werden und die zusätzlichen lokalen IP Netze und Interfaces dort im RIPv2 Routing eingetragen werden.

back-to-topVirtuelle Tunnel Interfaces VTI statt GRE Tunnel verwenden


Eine Alternative zur oben gezeigten traditionellen Verwendung von GRE Tunneln mit dynamischem Routing stellt der modernere Ansatz mit VTI Tunneln dar. Aktuelle IPsec Implementationen supporten in der Regel auch VTI Interfaces. Damit ist eine IPsec LAN zu LAN Verbindung mit dynamischen Routing Protokollen und z.B. parallelem Multicast Routing erheblich einfacher zu konfigurieren. VTI Interfaces verhalten sich, wie oben schon bei den GRE Tunneln gesehen, wie ganz normale Netzwerk Interfaces.
Das hiesige Demo Setup nutzt die gleiche Internet Test Infrastruktur wie oben. Als dynamisches Routing Protokoll kommt hier das modernere OSPF statt RIPv2 zum Einsatz um beide Konfig Optionen zu zeigen.
In der pfSense muss dafür das Routing Package Quagga-OSPF oder alternativ das FRR Package installiert werden. Hier im Beispiel wurde FRR verwendet. Letztlich ist es egal denn die Konfigs der beiden Packete ist fast identisch.
Bei Mikrotik ist der VTI Support derzeit noch ein Request für künftige Firmware und deshalb in dieser Variante aktuell außen vor da nicht supportet zur Zeit.
An der Cisco Konfig bleibt die Grundkonfiguration mit IPs, Zone based Firewall usw. bestehen, deshalb werden der Übersicht halber nur die geänderten IPsec Konfigurationen hier aufgeführt.
Los gehts...

back-to-topVTI Testumgebung

vti-vpn

back-to-topCisco Router Setup mit VTI und OSPF


Cisco Router 1 (R1):
!
crypto keyring ROUTER1
pre-shared-key address 0.0.0.0 0.0.0.0 key geheim123
pre-shared-key hostname CiscoR2 key geheim1234
!
crypto isakmp policy 5
encr aes 256
hash sha256
authentication pre-share
group 14
!
crypto isakmp policy 10
encr aes
authentication pre-share
group 2
!
crypto isakmp profile DVTI
description Dynamic VPN Tunnel
keyring ROUTER1
match identity address 0.0.0.0
virtual-template 3
crypto isakmp profile CISCO_R2
description Dynamic VPN Tunnel Cisco R2
keyring ROUTER1
self-identity user-fqdn CiscoR1
match identity user-fqdn CiscoR2
virtual-template 2
!
crypto ipsec transform-set VTISET esp-aes esp-sha-hmac
mode tunnel
!
crypto ipsec profile CISCO_R2
set transform-set VTISET
set isakmp-profile CISCO_R2
!
crypto ipsec profile DVTI
set transform-set VTISET
set isakmp-profile DVTI
!
interface Loopback1
ip address 172.27.27.1 255.255.255.255
!
interface Virtual-Template2 type tunnel
description Tunnel Interface Cisco-R2
ip unnumbered Loopback1
ip ospf network point-to-point
tunnel source 10.1.1.222
tunnel mode ipsec ipv4
tunnel destination dynamic
tunnel protection ipsec profile CISCO_R2
!
interface Virtual-Template3 type tunnel
description Dynamic VTI Tunnel
ip unnumbered Loopback1
ip mtu 1400
<== (muss für pfSense auf 1400 gesetzt sein sonst OSPF Link MTU Mismatch !)
ip ospf network point-to-point
tunnel source 10.1.1.222
tunnel mode ipsec ipv4
tunnel destination dynamic
tunnel protection ipsec profile DVTI
!
interface Vlan1
description Local LAN
ip address 172.27.1.254 255.255.255.0
ip nat inside
!
interface <WAN>
description Internet Port
ip address 10.1.1.222 255.255.255.0
ip nat outside
!
router ospf 1
router-id 172.27.27.1
passive-interface default
no passive-interface Virtual-Template2
no passive-interface Virtual-Template3
network 172.27.1.0 0.0.0.255 area 0
network 172.27.27.1 0.0.0.0 area 0
!
end


Cisco Router 2 (R2):
!
crypto keyring ROUTER2
pre-shared-key hostname CiscoR1 key geheim1234
!
crypto isakmp policy 5
encr aes 256
hash sha256
authentication pre-share
group 14
!
crypto isakmp policy 10
encr aes
authentication pre-share
group 2
!
crypto isakmp profile ROUTER1
description IPsec Tunnel Router-1
keyring ROUTER2
self-identity user-fqdn CiscoR2
match identity user-fqdn CiscoR1
!
crypto ipsec transform-set VTISET esp-aes esp-sha-hmac
mode tunnel
!
crypto ipsec profile ROUTER1
set transform-set VTISET
set isakmp-profile ROUTER1
!
!
interface Loopback1
ip address 172.27.27.5 255.255.255.255
!
interface Tunnel1
description VPN Tunnel Router-1
ip unnumbered Loopback1
tunnel source <WAN Interface>
tunnel mode ipsec ipv4
tunnel destination 10.1.1.222
tunnel protection ipsec profile ROUTER1
!
interface <WAN>
description Internet Port
ip address <Dynamic>
ip nat outside
!
interface Vlan1
description Local LAN
ip address 172.27.2.254 255.255.255.0
ip nat inside
!
router ospf 1
router-id 172.27.27.5
passive-interface default
no passive-interface Tunnel1
no passive-interface Vlan1
network 172.27.2.0 0.0.0.255 area 0
network 172.27.27.5 0.0.0.0 area 0
!
end


back-to-toppfSense Setup mit VTI und OSPF


Die pfSense hat ein ganz normales Standard Setup auf das hier im Tutorial nicht weiter eingegangen wird. Grundkonfigurationen zur pfSense findet man in den u.a. weiterführenden Links.
Lediglich am dritten OPT Port sind über einen VLAN Switch 3 Vlans 1, 10 und 20 angebunden um die OSPF Routing Tabelle etwas zu "füllen".
Über das IPsec VPN richtet man einen normalen Lan zu LAN Tunnel mit Phase 1 und Phase 2 an:
Phase 1:
vti-p1-1
vti-p1-2

Phase 2:
ACHTUNG: Das Besondere ist hier der Phase 2 Mode, der auf (Routed) VTI gesetzt werden muss !
vti-p2-1
vti-p2-2

Hat man alles richtig gemacht sieht es in der IPsec Übersicht so aus:
vti-phases

Stimmen alle Einstellungen wird der VTI Tunnel zum Cisco fehlerfrei aufgebaut ("Established"):
vti-status

back-to-topOSPF Routing Protokoll pfSense


Über die Package Verwaltung der pfSense sind zuerst das Quagga-OSPF oder das FRR Paket zu installieren um das OSPF Routing zu aktivieren. Welches man nimmt ist reine Geschmackssache. Die Konfig beider OSPF Pakete im pfSense GUI ist sehr ähnlich. Hier im Beispiel wurde FRR verwendet.
OSPF aktivieren mit Logging
vtiospf1
Interfaces und OSPF Area zuweisen: (Hier der Einfachheit halber alles in die Backbone Area 0)
vtiospf2

back-to-topOSPF Funktions und Routing Check


Cisco R1:
Router-1#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
172.27.27.5       0   FULL/  -        00:00:37    172.27.27.5     Virtual-Access2
172.27.27.2       0   FULL/  -        00:00:35    172.27.27.2     Virtual-Access1

 Router-1#sh ip routes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is 10.1.1.254 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 10.1.1.254
      10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        10.1.1.0/24 is directly connected, Vlan99
L        10.1.1.222/32 is directly connected, Vlan99
      172.16.0.0/24 is subnetted, 3 subnets
O        172.16.1.0 [110/1100] via 172.27.27.2, 00:07:14, Virtual-Access1
O        172.16.10.0 [110/1100] via 172.27.27.2, 00:07:14, Virtual-Access1
O        172.16.20.0 [110/1100] via 172.27.27.2, 00:07:14, Virtual-Access1
      172.27.0.0/16 is variably subnetted, 5 subnets, 2 masks
C        172.27.1.0/24 is directly connected, Vlan1
L        172.27.1.254/32 is directly connected, Vlan1
O        172.27.2.0/24 [110/1001] via 172.27.27.5, 00:07:27, Virtual-Access2
C        172.27.27.1/32 is directly connected, Loopback1
O        172.27.27.5/32 [110/1001] via 172.27.27.5, 00:07:27, Virtual-Access2
O     192.168.1.0/24 [110/1100] via 172.27.27.2, 00:07:14, Virtual-Access1 
Oben sieht man die automatisch erkannten OSPF Neighbors (R2 und pfSense) und unten die R1 Routing Tabelle. Mit "O" sind alle per OSPF gelernten dynamischen Routen aufgelistet !
Analog ist das mit dem gleichen Kommando auf dem Router 2 zu sehen.
Bei der pfSense per Mausklick im grafischen Setup unter OSPF Status:
Neighbor:
vtiospf4
OSPF Routing Tabelle:
vtiospf3
Last but not least die Firewall Routing Tabelle:
vtiospf5

Ein Ping Check der jeweiligen lokalen Interfaces alle 3 Geräte verläuft danach erfolgreich.


back-to-topWeiterführende Links


Hinweis zur Mikrotik GRE Implementation !:
RouterOS 7.1beta6 - GRE Tunnel funktioniert nicht zu Non-Mikrotik-Devices (fix)

Cisco Router Grundkonfiguration:
Cisco 880, 890 und ISR Router Konfiguration mit xDSL, Kabel oder FTTH Anschluss plus VPN und IP-TV

RIP Protokoll Übersicht:
https://de.wikipedia.org/wiki/Routing_Information_Protocol
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_rip/configurat ...
https://wiki.mikrotik.com/wiki/Manual:Routing/RIP

OSPF Routing mit WireGuard VPN:
OSPF Routing über Wireguard Tunnel
Verständnisfrage zu OSPF-Routing bei MikroTik-Routern (RouterOS)

BGP Routing mit WireGuard VPN:
BGP Routing über Wireguard Tunnel

OSPF mit Mikrotik und pfSense/OPNsense via GRE:
https://aspel.github.io/2018-11-19/ospf-over-gre-tunnel-with-ipsec-mikro ...

Einfache IPsec Tunnel Konfig mit pfSense Firewall (kein dyn. Routing !):
IPSec Site to Site zwischen opnSense und RouterOS mit dynamischen WAN-IP Adressen

Standort VPN mit Cisco Routern und VTI Tunnel:
Cisco SVTI - Tunnel

Standort VPN mit Cisco und pfSense Firewall via VTI Tunnel:
Cisco 2921 Kaskadierung mit Fritzbox/pfSense für IPSEC VPN

VxLAN Layer-2 Tunnel (Bridging) OPNsense/pfSense auf Mikrotik:
VLAN über Site2Site VPN

IPv6 über v4 GRE Tunnel Interface mit OSPF übertragen (Cisco):
IPv6 über Cisco IPv4 IPsec Tunnel

Klassische Cisco IKEv1 Standort Kopplung auf pfSense Firewall:
2921 Kaskadierung mit Fritzbox für IPSEC-Tunnel

Heterogene IPsec VPN Standort Kopplung unterschiedlicher Hersteller:
IPsec VPN Praxis mit Standort Vernetzung Cisco, Mikrotik, pfSense, FritzBox u.a

FritzBox VPN mit Linux StrongSwan verbinden:
IKEv2 VPN Server für Windows und Apple Clients mit Raspberry Pi
VPN auf Dedicated Server

Performancetest der Tunnel Interfaces mit Multicast und PIM:
Fehlersuche im lokalem Netzwerk (RSTP, MRP, Multicast)

Standort Site to Site IPsec VPN mit pfSense Firewall und Mikrotik Router mit dynamischer IP:
Hilfe bei OpenVPN Standortvernetzung zwischen pfSense (Server) und Mikrotik (Client)

OT: Mikrotik L2TP VPN für mobile Clients:
Scheitern am IPsec VPN mit MikroTik

OT: Mikrotik OpenVPN Konfig Details:
Clientverbindung OpenVPN Mikrotik

OT: DS-Lite Anschluss mit pfSense:
https://cybercyber.org/m-net-ds-lite-anschluss-mit-pfsense.html

OT: AirPrint Drucker und andere Bonjour/mDNS Dienste erreichbar machen:
Apple AirPrint über VLANs

Content-ID: 398932

Url: https://administrator.de/tutorial/cisco-mikrotik-pfsense-vpn-standort-vernetzung-mit-dynamischem-routing-398932.html

Ausgedruckt am: 29.12.2024 um 09:12 Uhr

ITgustel
ITgustel 02.04.2020 um 13:36:42 Uhr
Goto Top
Hallo, könntest du das Beispiel noch um ein DHCP-Relay erweitern?
Ich scheitere gerade (in einem Mikrotik-zu-Mikrotik-VPN) an einem funktionierendem Relaying.
aqui
aqui 03.04.2020 aktualisiert um 09:37:54 Uhr
Goto Top
Klar !
Etwas Geduld bitte damit ich das wasserdicht testen kann.

Eine Frage noch zu deinem Setup:
Nutzt du einen DHCP Server auf dem oder einem zentralen Mikrotik um andere Netze mit IPs zu versorgen oder hast du einen externen, zentralen DHCP Server wie z.B. einen Windows DHCP an einem Hauptstandort ?
aqui
aqui 03.04.2020 aktualisiert um 18:24:42 Uhr
Goto Top
So, die Lösung ist relativ einfach und funktioniert absolut fehlerfrei:
Testdesign und Konfig ist identisch wie oben.

vpn


Setup des DHCP Relay auf dem Router der Client Seite (vlan1 IP Segment):

dhcp1

Hier ist das Client Interface, die Interface IP Adresse und die IP Adresse des DHCP Servers anzugeben !

Konfig des DHCP Servers (hier ISC-DHCP):
# Konfigurations Datei fuer ISC dhcpd
#
ddns-update-style none;
authoritative;
ping-check true;
option domain-name "dhcptest.home.arpa";
option domain-name-servers 192.168.7.254, 192.168.188.1 ;
default-lease-time 600;
max-lease-time 7200;

# DHCP Log Messages senden.
log-facility local7;

# DHCP Ranges fuer die lokalen LAN Subnetze
subnet 192.168.188.0 netmask 255.255.255.0 {
  range 192.168.188.100 192.168.188.150;
  option routers 192.168.188.1;
}
subnet 192.168.88.0 netmask 255.255.255.0 {
  range 192.168.88.100 192.168.88.150;
  option domain-name "subnet88.home.arpa";
  option routers 192.168.88.1;
}
subnet 192.168.99.0 netmask 255.255.255.0 {
  range 192.168.99.100 192.168.99.150;
  option domain-name "subnet99.home.arpa";
  option routers 192.168.99.1;
}  
Output der DHCP Leasing Datei:
lease 192.168.88.149 {
  starts 5 2020/04/03 15:43:08;
  ends 5 2020/04/03 15:53:08;
  tstp 5 2020/04/03 15:53:08;
  cltt 5 2020/04/03 15:43:08;
  binding state free;
  hardware ethernet 00:23:5a:4f:01:22;
  uid "\001\000#Z?\001\"";
  set vendor-class-identifier = "MSFT 5.0"; 

Checks DHCP Client (HP Windows 10 Laptop):
C:\Windows>ipconfig -all

Windows-IP-Konfiguration

   Hostname  . . . . . . . . . . . . : Laptop
   Primäres DNS-Suffix . . . . . . . :
   Knotentyp . . . . . . . . . . . . : Hybrid
   IP-Routing aktiviert  . . . . . . : Nein
   WINS-Proxy aktiviert  . . . . . . : Nein
   DNS-Suffixsuchliste . . . . . . . : subnet88.home.arpa

Ethernet-Adapter LAN-Verbindung:

   Verbindungsspezifisches DNS-Suffix: subnet88.home.arpa
   Beschreibung. . . . . . . . . . . : Intel(R) 82567LM Gigabit Network Connection
   Physische Adresse . . . . . . . . : 00-23-5A-4F-01-22
   DHCP aktiviert. . . . . . . . . . : Ja
   Autokonfiguration aktiviert . . . : Ja
   Verbindungslokale IPv6-Adresse  . : fe80::f488:debb:2cdf:f237%18(Bevorzugt)
   IPv4-Adresse  . . . . . . . . . . : 192.168.88.149(Bevorzugt)
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Lease erhalten. . . . . . . . . . : Freitag, 3. April 2020 17:34:19
   Lease läuft ab. . . . . . . . . . : Freitag, 3. April 2020 17:48:13
   Standardgateway . . . . . . . . . : 192.168.88.1
   DHCP-Server . . . . . . . . . . . : 192.168.188.222
   DHCPv6-IAID . . . . . . . . . . . : 234890074
   DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-1B-A5-E8-14-00-23-5A-4F-01-22
   DNS-Server  . . . . . . . . . . . : 172.16.7.254
                                       192.168.188.1
   NetBIOS über TCP/IP . . . . . . . : Aktiviert 
Nun hast du was zu Basteln übers Wochenende ! face-big-smile

Fazit:
Works as designed ! face-wink
tikayevent
tikayevent 16.05.2020 um 23:55:26 Uhr
Goto Top
Hallo @aqui,

ich habe die letzten Tage fleißig Hardwaretests gemacht, da ich das ganze bald für einen RZ-Interconnect aufbauen werde. Wir haben zwar eine L2-Direktverbindung zwischen beiden RZ, aber mein Vorgesetzter besteht auf eine Verschlüsselung und ich benötige ein Routingprotokoll.

Soweit kein Problem, ist ja nicht das erste Mal, dass ich sowas baue. Bisher auf LANCOM, aber da ich annähernd Gigabit erreichen muss, ist LANCOM raus.

Ich habe jetzt zig verschiedene Sachen probiert (Cisco, Huawei, Mikrotik, OPNsense*), aber immer in der Variante Tunnel und dafür Loopback-Interfaces auf beiden Seiten (LANCOM hat den Transportmode rausgenommen und damit lief es nie wirklich).
*bitte nienienie wieder

Ich habe den Mikrotik-Test mit zwei RB750Gr3 (vulgo hEX) gemacht und kommt damit auf etwa ein Drittel des online angegebenen IPSec-Durchsatzes. Also von den 470Mbit, die Mikrotik pur gemessen hat, komme ich so auf 170Mbit. Gemessen mit iPerf im TCP-Modus mit 20GB an Daten, zum Teil mit angepasster MTU auf 1360 oder 1380 Byte. Meine Konfiguration war an die Hardwarebeschleunigung des hEX angepasst.

Weißt du, welchen Durchsatz du mit dem Transportmodus erreichen kannst? Du sparst dir ja sogesehen einen Durchlauf durch den Router. Da wir vermutlich unterschiedliche Geräte haben, wäre hier auch das Verhältnis von Real zu Mikrotikmesswert sinnvoll.

Ich hab mir jetzt noch zwei RB4011...!§$!"§$!"$ bestellt, mit denen ich dann testen will, ob ich an die Gigabitmarke rankomme.

Gruß
@tikayevent

PS: Ich nutz OSPF statt RIP, aber das wird da wohl nichts ausmachen.
aqui
aqui 17.05.2020 aktualisiert um 12:01:23 Uhr
Goto Top
Du sparst dir ja sogesehen einen Durchlauf durch den Router.
Na, ja nicht ganz, die IP Forwarding Entscheidung wird ja auch irgendwo gefällt, also geroutet wird schon auch und von der Encryption her ist es gleich. Man spart nur den zusätzlichen Tunnel Overhead und hat weniger MTU Probleme.
Aber um die Frage zu beantworten: Ich habe aktuell keine Praxiswerte mit iPerf3 usw. und orientiere mich an den offizellen Produkt bezogenen IPsec Durchsatzzahlen von Mikrotik. Generell sollte man immer darauf achten das es auf der Plattform IPsec Acceleration in Hardware gibt:
https://wiki.mikrotik.com/wiki/Manual:IP/IPsec#Hardware_acceleration
Bei deinen 4011ern ist das für alle Crypto Suites gegeben ! Damit machst du also nix falsch.
Die zu erwartenden IPsec Durchsatzzahlen siehst du HIER.
Damit erreichst du die Gigabit Marke allemal jedenfalls bei Frame Sizes zwischen 512 und 1400 Byte. Bei kleineren Framesizes geht das dann wie üblich in die Knie.
Ich nutz OSPF statt RIP, aber das wird da wohl nichts ausmachen.
Nein, ganz im Gegenteil. OSPF ist besser. Weniger Overhead, schnellere Konvergenz. Ich werde das im Tutorial beizeiten nochmal erweitern. face-wink
andi069
andi069 03.11.2022 um 21:52:32 Uhr
Goto Top
Hallo, kann es sein, dass du bei deiner ersten
Cisco-Konfig (im Abschnitt GRE) die zwei erwähnten Mikrotik Router miteinander verwechselt hast?

Laut eingehender Beschreibung unter der Skizze hat der Mikrotik in der 1 zu 1 Verbindung zum Cisco die 10.1.1.150.

In der Config die folgt haut es beim Presharedkey noch hin, aber als dann die isakmp profile folgen, hat der MikrotikRouter1 plötzlich die 10.99.1.149 und die 10.1.1.150 ist plötzlich Router2 und soll dann im Kapitel 6 kommen?

Müsste nicht das erste isakmp Profil die .150 haben? Also dass die da verdreht sind?

LG
aqui
aqui 04.11.2022 aktualisiert um 08:52:50 Uhr
Goto Top
Hallo @andi069
Du hast natürlich Recht. Da ist MT1 und MT2 im Eifer des Gefechts verwechselt worden. Danke für den Hinweis!
Die Konfig ist jetzt entsprechend korrigiert!
andi069
andi069 04.11.2022 um 13:52:26 Uhr
Goto Top
Ich hab für die tolle Dokumentation(en) zu danken.

Eine Frage hätte ich dennoch: Bei der "normalen" Site-To-Site Konfiguration zwischen mehreren Standorten(ohne GRE/VTI): Gibt es da keine andere Möglichkeit, außer GRE und VTI, um sowas wie RIP oder OSPF zu nutzen? Kannst du kurz und knapp erläutern, wieso das gebraucht wird? Soooo tief stecke ich leider nicht in der Netzwerktechnik, würde es aber gern verstehen wollen. face-smile
Liebe Grüße
aqui
aqui 04.11.2022 aktualisiert um 16:43:06 Uhr
Goto Top
Leider nein. Das Warum ist einfach zu erklären: RIP basiert auf Broadcasts und das modernere RIPv2 auf Multicast (224.0.0.9). OSPF nutzt ebenso Multicast (224.0.0.5 und 224.0.0.6).
Broad- und Multicast werden aber bei den meisten VPN Protokollen, die ohne die o.a. virtuellen Tunnelinterfaces arbeiten, prinzipbedingt nicht übertragen. Damit scheitert dann ein dynamisches Routing über VPN Tunnel.
Mit den virtuellen Interfaces aber, was z.B. auch das moderne Wireguard nutzt, kann man diese Pakete dann übertragen und VPN Netze damit dynamisch routen. Bei größeren VPN Netzen bedeutet das eine erhebliche Vereinfachung. Nicht zu vergessen die dynamische Link Redundanz oder ECMP die solche Protokolle ermöglichen. Die Interface basierte Konfig ist auch so mehr Router like.
Das ist die einfache Erklärung warum virtuelle Interfaces. 😉
Ohne sie bleibt nur statisches Routing oder eben die Automatik die z.B. IPsec mit den Phase 2 SAs mitbringt.
4400667902
4400667902 04.11.2022 aktualisiert um 16:47:05 Uhr
Goto Top
OSPF nutzt ebenso Multicast (224.0.0.5 und 224.0.0.6
Das lässt sich einfach auf PtP (Point to Point) umstellen dann geht das auch direkt bspw. über einen Wireguard Tunnel
Verständnisfrage zu OSPF-Routing bei MikroTik-Routern (RouterOS)
aqui
aqui 04.11.2022 um 16:46:12 Uhr
Goto Top
Das ist leider nur zum Teil richtig. Bei IPsec ohne virtuelle Interfaces funktioniert auch PtP nicht. Wen sollte man dort auch als Destination definieren?! Ebenso OpenVPN was nur mit fester IP Zuordnung der Tunneladressen klappt. Wireguard supportet generell immer auch Multicast weil es ja mit virtuellen Interfaces arbeitet. Rennt aber natürlich auch mit PtP.
kman123
kman123 20.11.2022 um 21:48:33 Uhr
Goto Top
Hallo aqui,

ich glaube, bei der config stimmt das immer noch nicht so ganz. Die von dir roten Zeilen können beim ersten Setup mit der eins-zu-eins-Verbindung laut dir ja weggelassen werden.

Beim 1:1 Setup hat aber der eine Router die .150, die dann rot markiert ist und somit weggelassen werden soll? Wenn mich nicht alles täuscht, stimmen die Farben also nicht.

unbenan1nt


Gruß
aqui
aqui 21.11.2022 um 10:46:32 Uhr
Goto Top
Hi @kman123
Danke für das Feedback! Du hast natürlich recht! Da ist ziemlich was durcheinander gegangen bei der Farbgebung und auch in der Zeichnung der Erweiterten Konfig.
Ist jetzt alles korrigiert und sollte nun plausibel sein. Bitte ggf. nochmal Korrektur checken.