Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Anmelden für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch die Werte, die für Ihre Cloud-Umgebung spezifisch sind.
Verwenden Sie den Site-to-Site-VPN-Service von Oracle Cloud Infrastructure im HA-Modus mit ECMP-Routing von Linux und Libreswan
Einführung
In der vernetzten Welt von heute ist es von entscheidender Bedeutung, die Verfügbarkeit und Sicherheit der über Netzwerke übertragenen Daten sicherzustellen. Um diesen kritischen Anforderungen gerecht zu werden, bietet Oracle Cloud robuste Netzwerkfunktionen, einschließlich der Möglichkeit, hochverfügbare IPSec-Tunnel einzurichten. In diesem Tutorial untersuchen wir das Konzept der hochverfügbaren IPSec-Tunnel und führen Sie durch den Prozess der Einrichtung einer resilienten Netzwerkarchitektur in Oracle Cloud mit dem Equal-cost Multi-Path-(ECMP-)Protokoll.
In diesem Tutorial konzentrieren wir uns darauf, Oracle Linux, ein leistungsstarkes und sicheres Betriebssystem, das für Oracle Cloud-Umgebungen optimiert ist, zusammen mit Libreswan, einem etablierten IPSec-Client, zu verwenden, um IPSec-Tunnel im routenbasierten Modus einzurichten. Wir nutzen die von Oracle Cloud Infrastructure (OCI) bereitgestellte dynamische Routinggateway-(DRG-)Funktionalität, um nahtloses Failover und Load Balancing zwischen mehreren IPSec-Tunneln zu ermöglichen.
Ziele
Stellen Sie einen umfassenden Leitfaden zur Implementierung von IPSec-Tunneln in OCI bereit, indem Sie das ECMP-Routingprotokoll für den Load Balancing-Traffic in aktiven/aktiven Szenarios verwenden.
- Grundlagen des Site-to-Site-IPSec-Protokolls verstehen
- Verschiedene IPSec-Modi verstehen: Transport vs. Tunnel, Policy-basiert vs. Routenbasiert
- Libreswan in Oracle Linux mit ECMP-Load Balancing konfigurieren
- DRGv2 für redundante IPSec-Tunnel konfigurieren
- Testen Sie Redundanz und Load Balancing mit Iperf3
Wenn Sie diesem Tutorial folgen, erhalten Sie ein umfassendes Verständnis von IPSec in OCI. Sie erwerben die erforderlichen Kenntnisse für eine effektive Verbindung Ihrer On-Premise-Infrastruktur mit OCI über eine redundante Verbindung.
Voraussetzungen
-
Ein aktiver OCI-Mandant. Sie benötigen die erforderlichen Berechtigungen zum Erstellen und Verwalten von Netzwerkressourcen in OCI.
-
Ein grundlegendes Verständnis von Linux-BS, Netzwerkkonzepten und OCI. Dazu gehören grundlegende Netzwerkkonzepte wie IP-Adressierung, Subnetting, Routing und Firewall.
-
Grundlegende Kenntnisse von Oracle Linux, einschließlich der Installation und Konfiguration. Wenn Sie neu bei Oracle Linux sind, sollten Sie vorher ein grundlegendes Oracle Linux-Tutorial oder eine Anleitung durchlaufen.
-
Ein in OCI eingerichtetes virtuelles Cloud-Netzwerk (VCN) und Subnetze mit entsprechenden Routingregeln, Internetgateway, DRG und Sicherheitslisten.
-
Ein gutes Verständnis für die Verwendung der OCI-Konsole oder der OCI-CLI zum Erstellen und Verwalten von Netzwerkressourcen.
Hinweis: Es wird empfohlen, dass Sie eine Testumgebung in OCI für Experimente mit Netzwerkkonfigurationen und IPSec eingerichtet haben, bevor Sie sie in einer Produktionsumgebung implementieren.
Was ist IPSec VPN
Internet Protocol Security (IPSec) ist ein Rahmen offener Standards zur Gewährleistung privater, sicherer Kommunikation über Internet Protocol-(IP-)Netzwerke durch die Nutzung kryptografischer Sicherheitsdienste. IPSec unterstützt die Datenintegrität, die Datenvertraulichkeit, die Datenursprungsauthentifizierung und den Wiedergabeschutz auf Netzwerkebene. Da IPSec in die Internetschicht (Schicht 3) integriert ist, bietet sie Sicherheit für fast alle Protokolle in der TCP/IP-Suite. Da IPSec transparent für Anwendungen angewendet wird, muss für jede Anwendung, die TCP/IP verwendet, keine separate Sicherheit konfiguriert werden.
Mit IPSec können Sie Netzwerkangriffe von nicht vertrauenswürdigen Computern vertiefen, Angriffe, die zu Denial-of-Service von Anwendungen, Services oder dem Netzwerk führen können.
- Fehlerhafte Daten
- Datendiebstahl
- Benutzerdiebstahl
- Administrative Steuerung von Servern, anderen Computern und dem Netzwerk.
Site-to-Site-VPN
Ein Site-to-Site-VPN mit IPSec (Internet Protocol Security), das auch als Network-to-Network VPN bezeichnet wird, stellt eine sichere und verschlüsselte Verbindung zwischen zwei oder mehr Netzwerken über das Internet her. Sie ermöglicht die sichere Übertragung von Daten zwischen geografisch verteilten Sites und schafft ein virtuelles privates Netzwerk (VPN), das die Reichweite des Netzwerks über seine physischen Grenzen hinaus erweitert.
In einem Site-to-Site-VPN IPSec werden die teilnehmenden Netzwerke, die in der Regel zu verschiedenen Organisationen oder Remote-Verzweigungen derselben Organisation gehören, über dedizierte IPSec-Tunnel verbunden. Diese Tunnel kapseln und verschlüsseln den Netzwerkdatenverkehr und stellen so deren Vertraulichkeit, Integrität und Authentizität sicher, während sie nicht vertrauenswürdige Netzwerke wie das Internet durchlaufen.
Andererseits stellt ein Point-to-Site-VPN (P2S) eine sichere Verbindung zwischen einzelnen Clientgeräten und einem Remote-Netzwerk her. Im Gegensatz zu Site-to-Site-VPNs, die Netzwerke verbinden, ermöglichen P2S-VPNs einen sicheren Remotezugriff für einzelne Geräte für den Zugriff auf die Netzwerkressourcen. P2S VPNs werden häufig verwendet, um sicheren Zugriff für Remote-Mitarbeiter, Auftragnehmer oder mobile Benutzer zu ermöglichen, die von externen Standorten aus eine Verbindung zum Netzwerk der Organisation herstellen müssen.
Hinweis: Dieser Tutorialgeltungsbereich ist auf Site-to-Site-VPN IPSec begrenzt, das derzeit das einzige in OCI DRGv2 unterstützte VPN ist.
VPN IPSec Tunnelkonzepte
IPSec steht für Internet Protocol Security oder IP Security. IPSec ist eine Protokollsuite, die den gesamten IP-Traffic verschlüsselt, bevor die Pakete vom Quellknoten zum Ziel übertragen werden. IPSec kann in zwei Modi konfiguriert werden:
-
Transportmodus: IPSec verschlüsselt und/oder authentifiziert nur die tatsächliche Payload des Pakets, und die Headerinformationen bleiben intakt.
-
Tunnelmodus: IPSec verschlüsselt und/oder authentifiziert das gesamte Paket. Nach der Verschlüsselung wird das Paket gekapselt, um ein neues UDP-IP-Paket mit unterschiedlichen Headerinformationen zu bilden.
IPSec VPN-Site-to-Site-Tunnels bieten die folgenden Vorteile:
-
Es ist nicht erforderlich, dedizierte, teure Mietleitungen von einer Site zur anderen zu kaufen, da öffentliche Telekommunikationsleitungen zur Datenübertragung verwendet werden.
-
Die internen IP-Adressen der beteiligten Netzwerke und Knoten werden externen Benutzern ausgeblendet.
-
Die gesamte Kommunikation zwischen der Quell- und der Zielsite wird verschlüsselt, sodass das Risiko des Datendokuments erheblich verringert wird. OCI unterstützt nur den Tunnelmodus von VPN IPSec und wird über die Webkonsole als Selfservice angeboten.
Hinweis: OCI Site-to-Site-VPN unterstützt nur den Tunnelmodus, sodass dieser der einzige in OCI verfügbare Modus ist.
Architektur
OCI IPSec mit ECMP besteht aus Listen, die Folgendes enthalten:
-
DRGv2 wurde VCN1 und VCN2 mit Standardroutentabellen und automatisch generierten Routentabellen RT2 "Automatisch generierte Drg-Routentabelle für VCN-Anhänge" in der Region Frankfurt angehängt.
-
Identisch mit DRGv2 mit einer IPSec-Verbindung, einschließlich zwei Tunneln:
- Tunnel 1, Oracle-VPN-IP-Adresse 193.122.x.x mit automatisch generierten Routentabelle RT1 "Automatisch generierte Drg-Routentabelle für RPC-, VC- und IPSec-Anhänge".
- Tunnel 2, Oracle-VPN-IP-Adresse 158.101.x.x mit automatisch generierten Routentabelle RT1 "Automatisch generierte Drg-Routentabelle für RPC-, VC- und IPSec-Anhänge".
-
Eine Oracle Linux-VM als IPSec-Client mit ECMP-Unterstützung von On Premise, die im privaten CIDR-Bereich 192.168.0.0/16, der öffentlichen IP 143.47.48.219, ausgeführt wird.
-
Iperf3 in Oracle Linux in On Premise als Client und als Server in Oracle OCI.
-
Ein als Libreswan konfiguriertes CPE mit der öffentlichen IP 143.47.x.x.
-
ECMP hat Oracle Linux 8- und OCI-Seite aktiviert.
Aufgabe 1: OCI-Einstellungen konfigurieren
Für dieses Tutorial wurde eine Oracle Linux 7-VM-Instanz erstellt und Libreswan 3.25 darauf installiert. Um Libreswan in Linux zu installieren, befolgen Sie die folgende Oracle-Dokumentation: Zugriff auf andere Clouds mit Libreswan. Sie können Libreswan in der gewünschten Umgebung installieren. Für dieses Tutorial haben wir eine andere Remoteregion in OCI als Libreswan-Client und -Tunnelinitiator ausgewählt.
Nachdem Sie Libreswan installiert haben (ohne es noch zu konfigurieren), beachten Sie die öffentliche IP-Adresse Ihrer Linux 7-VM sowie den privaten IPv4 CIDR-Bereich, in dem Sie Libreswan installiert haben.
Konfigurieren wir jetzt die OCI-Einstellungen
-
Melden Sie sich bei der OCI-Konsole an, und navigieren Sie wie folgt zur Registerkarte Networking, um VCN1 und VCN2 zu erstellen: VCN erstellen.
-
Erstellen Sie VCN1 mit CIDR 10.0.0.0/16 und zwei Subnetzen: Subnetz A 10.0.1.0/24 und Subnetz B 10.0.0.0/24.
-
Erstellen Sie VCN2 mit CIDR 172.20.0.0/16 und zwei Subnetzen: Subnetz C 172.20.1.0/24 und Subnetz D 172.20.2.0/24.
-
Erstellen Sie VMs in den Zielsubnetzen in OCI, um die IPSec-Tunnel zu testen. In diesem Tutorial wurden 3 VMs erstellt (origin1, origin2 und origin3).
-
Erstellen wir jetzt ein DRG unter Networking, Kundenkonnektivität, Dynamische Routinggateways.
-
Nachdem das DRG erstellt wurde, müssen Sie einen virtuellen Cloud-Netzwerkanhang für VCN1 und VCN2 erstellen.
-
Nach der Erstellung werden zwei Netzwerkanhänge (einer pro VCN) beide VCNs mit der DRG-Routingtabelle AutoGenerated DRG für VCN-Anhänge (Routingtabelle RT2 in der Hauptarchitektur) verbinden.
-
Diese Routing-Tabelle teilt dem DRG mit, wo der eingehende Traffic von den gerade angehängten VCNs gesendet/route wird: Jeder Traffic, der zu "Ziel-CIDR" bestimmt ist, wird wie folgt an "Next Hop Attachment" gesendet/weitergeleitet:
-
Wenn Sie später IPSec-Tunnel erstellen, wird eine ähnliche automatisch generierte Routing-Tabelle für den eingehenden Traffic von On-Premise über den IPSec-Tunnel angezeigt.
-
-
Erstellen wir jetzt die IPSec-Konnektivität. Bevor Sie die IPSec erstellen, müssen wir das Customer-Premises Equipment (CPE) erstellen, das das On-Premise-Gerät darstellt, das über IPSec mit OCI verbunden ist, unter Networking, Kundenkonnektivität, Customer-Premises Equipment, CPE erstellen:
-
X.X.X.X muss die PUBLIC-IP-Adresse sein, von der Ihr On-Premise-Gerät eine Verbindung herstellt. Verwechseln Sie sie NICHT mit der privaten IP-Adresse, die dem Libreswan Oracle Linux-Rechner zugewiesen ist, den Sie in vorherigen Schritten installiert haben. Wahrscheinlich liegt Ihre Oracle Linux-VM hinter NAT (ohne direkt die öffentliche IP zu besitzen). Wenn Sie die öffentliche IP-Adresse nicht kennen, können Sie jederzeit den folgenden Befehl in der Linux-Konsole ausführen, um Folgendes herauszufinden:
curl ifconfig.co
. -
Für dieses Tutorial wählen Sie Vendor Libreswan Version 3.18 oder höher.
-
-
Gehen Sie zu Networking, Kundenkonnektivität, Site-to-Site-VPN, IPSec-Verbindung erstellen, und geben Sie die folgenden Details an.
Hinweis: Sie können den VPN-Assistenten verwenden, dieser ist jedoch in diesem Tutorial nicht gültig.
-
Name der IPSec-Konfiguration
-
In Compartment erstellen: Ihr Compartment
-
Customer Premises Equipment in Ihrem Compartment: Wählen Sie das CPE aus, das Sie im vorherigen Schritt erstellt haben
- Dieses CPE befindet sich hinter einem NAT-Gerät: Dies wirkt sich direkt darauf aus, wie die Internet Key Exchange (IKE)-ID von On Premise für OCI "präsentiert" wird. Wenn Libreswan hinter NAT ausgeführt wird, markieren Sie diese Option, wenn Sie die private IP verwenden möchten, von der Libreswan als IKE-ID ausgeführt wird. Wenn Sie sonst die öffentliche IP verwenden möchten, von der Libreswan eine Verbindung herstellt, markieren Sie diese Option nicht. Diese IKE-ID wird später von der Libreswan-Konfiguration konfiguriert.
-
Compartment dynamisches Routinggateway: Wählen Sie das DRG aus, das Sie in vorherigen Schritten konfiguriert haben.
-
Routen zu Ihrem On-Premise-Netzwerk: Das dynamische Routing liegt außerhalb des Gültigkeitsbereichs dieses Tutorials. Wir konzentrieren uns mit der routenbasierten IPSec-Konfiguration auf ECMP für Load Balancing und Redundanz. Hier werden manuell/statisch die On-Premise-Routen/CIDRS hinzugefügt, die wir von OCI zu On Premise erreichen möchten. In diesem Tutorial wird 192.168.0.0/16 als On-Premise-CIDR verwendet.
-
1. Tunnel:
- Name
- Shared Secret für Kunden angeben: Sie können einen eigenen IKE-Pre-Shared Key (Passwort) verwenden oder leer lassen, damit OCI einen Schlüssel auswählen kann (wir verwenden ihn später während des Libreswan-Setups)
- IKE-Version: Für dieses Tutorial verwenden wir IKEv1
- Routingtyp: Für dieses Tutorial verwenden wir statisches Routing für die routenbasierte IPSec-Konfiguration. Wählen Sie daher "Statisches Routing" aus
- IPv4 innerhalb der Tunnelschnittstelle - CPE und Oracle: Lassen Sie diese Option leer
- IPv6-Adressierung: Lassen Sie das Feld leer, da IPv6 in diesem Tutorial keinen Geltungsbereich hat.
-
Tunnel 2: Füllen Sie Tunnel 2 genauso aus wie Tunnel 1 (IKE-Version, Routingtyp usw.).
-
-
Klicken Sie auf IPSec-Verbindung erstellen. Wenn alles gut läuft, muss nach einigen Minuten eine IPSec-Konfiguration mit zwei Redundanz-Tunneln ausgeführt werden.
-
Nachdem wir nun das DRG und IPSec eingerichtet haben, müssen wir sicherstellen, dass jeder Traffic von VCNs in OCI zu On Premise den Weg zum DRG finden wird. Sobald der Traffic das DRG erreicht hat, wird er über die beiden kürzlich konfigurierten IPSec-Tunnel Tunnel zu On-Premise-Zwecken geleitet. Dazu müssen Sie das On-Premise-CIDR als Routingregel für jede Subnetzroutentabelle in VCN hinzufügen (im Tutorial wurde die Standardroutentabelle ausgewählt), den Zieltyp Dynamisches Routinggateway, den Zieltyp CIDR-Block und dann die On-Premise-Route 192.168.0.0/16 hinzufügen.
Hinweis: Der Grund, warum wir diese Route hinzufügen müssen, ist, dass OCI kein implizites Routing für CIDR-Adressen außerhalb der VCN-Realm hat. Daher müssen Sie den CIDR-Block manuell hinzufügen, um sicherzustellen, dass der Traffic das DRG erreicht.
-
Aufgabe 2: Linux- und Libreswan-Einstellungen konfigurieren
In diesem Teil des Tutorials werden die Konfigurationsschritte Linux OS und Libreswan behandelt. Der zuvor installierte Libreswan fungiert als Site-to-Site-Tunnelinitiator und OCI-DRG als Tunnel-Responder.
-
Greifen Sie über SSH auf das Oracle Linux-BS zu. Erhöhen Sie Ihre Berechtigungen, um wichtige (admin-)Befehle auszuführen.
-
sudo su
: Sie werden Root-Benutzer. -
Stellen Sie sicher, dass Libreswan mit der richtigen Version installiert ist: ipsec -version. Die Libreswan-Version 3.25 oder höher sollte angezeigt werden. Andernfalls gehen Sie zu Aufgabe 1: OCI-Einstellungen konfigurieren, und befolgen Sie die Anweisungen zur Installation von Libreswan.
-
Gehen Sie zum Konfigurationsordner:
cd /etc
. -
Libreswan speichert die gesamte Tunnelkonfiguration in der Datei
ipsec.conf
. Benützen Sie Ihren bevorzugten Dateieditor. "vi" ist eine gute Option:vi ipsec.conf
-
Libreswan-ipsec.conf:
-
conn [TunnelName1}: Tunnelname
-
type= Tunnel (Tunnelmodus)
-
authby=Secret (die Authentifizierung verwendet eine geheime Passphrase)
-
pfs=yes (Perfect Forward Secrecy aktiviert)
-
keyexchange=ike
-
leftid= n.n.n.n (Hierbei handelt es sich um die öffentliche IP-Adresse, von der Libreswan eine Verbindung herstellt. Es wird als IKE-ID verwendet, es sei denn, Sie haben die Option "CPE befindet sich hinter NAT" während der Erstellung von IPSec ausgewählt. In diesem Fall kann jede IP-Adresse oder ein vollqualifizierter Domainname (FQDN) als ID festgelegt werden)
-
leftsourceip= m.m.m.m (Diese private IP ist Libreswan zugewiesen, d.h. 192.168.1.1)
-
leftsubnet= x.x.x.x/x (Dies ist der Libreswan zugewiesene CIDR-Block, d.h. 192.168.0.0/16)
-
rechts= y.y.y.y (Hierbei handelt es sich um die OCI-VPN-IP-Adresse "Öffentlich", die tunnel1 während der IPSec-Erstellung unter "Networking", "Kundenkonnektivität", "Site-to-Site-VPN", YourIPSEC zugewiesen ist)
-
rightid= y.y.y.y (Die von OCI gesendete IKE-ID. Normalerweise ist die "öffentliche" IP-Adresse des OCI-VPNs, normalerweise identisch mit dem richtigen Parameter)
-
leftsubnet=0.0.0.0/0 (Dies ist der CIDR-Block, der im Rahmen der SA-Trafficselektor-Aushandlung Internet Key Exchange (IKEv2)-Protokoll 2.2.9 an OCI gesendet wird. Das bedeutet NICHT, dass der gesamte Traffic von OCI an On Premise weitergeleitet wird. Stattdessen wird durch diesen CIDR-Block bestimmt, welcher spezifische Traffic akzeptiert, verschlüsselt und über den IPSec-Tunnel optimiert wird. Der hier beschriebene Tunnel IPSec wird durch eine virtuelle Schnittstelle namens Virtual Tunnel Interface (VTI) dargestellt, die als virtuelle Netzwerkschnittstelle (wie eine virtuelle Netzwerkkarte) fungiert, die den Tunnel selbst darstellt. Angenommen, die VTI heißt vti01. Jeder Datenverkehr, der an die Schnittstelle vti01 geleitet wird, wird Teil des Tunnels IPSec und wird sicher an das andere Ende der Verbindung gesendet. Dieser Ansatz, bei dem Routingentscheidungen basierend auf dem spezifischen IPSec-Tunnel und der zugehörigen VTI getroffen werden, wird als IPSec routenbasiertes Routing bezeichnet)
-
rightsubnet=0.0.0.0/0 (Wie oben für Traffic, der von On Premise an OCI akzeptiert wird)
-
mark=n/0xffffffff (*Option "Erforderlich" zur Verwendung mit VTI-Schnittstellen, um Pakete zu markieren, die im IPSec-Tunnel gekapselt sind, der dieser VTI-Schnittstelle zugeordnet ist. Muss für alle Tunnel eindeutig sein. Beispiel: 5/0xffffffff*)
-
VTI-interface=vtinn (*Name der VTI-Schnittstelle, d.h. vti01*)
-
VTI-Routing=Nein (Ob Routen automatisch im VTI-Gerät erstellt werden sollen. Wählen Sie "Nein", da die Route 0.0.0.0/0 nicht automatisch erstellt werden soll)
-
encapsulation= yes/auto (zwingt, dass der NAT-Erkennungscode liegen muss, und teilt dem Remote-Peer mit, dass die RFC-3948-Kapselung (ESP in Port 4500-UDP-Paketen) erfolgt. Automatische NAT-Autodetektion)
-
aggrmode= nein
-
IKE=aes_cbc256-sha2_384;modp1536 (IKE-Verschlüsselungs-/Authentifizierungsalgorithmus, der für die Verbindung verwendet werden soll (Phase 1 aka ISAKMP SA). Das Format lautet "cipher-hash;modpgroup, cipher-hash;modpgroup, ...)
-
esp=aes_gcm256;modp1536 (Gibt die Algorithmen an, die für die Verhandlung einer untergeordneten SA angeboten/akzeptiert werden. Das Format für ESP lautet ENC-AUTH, gefolgt von einem optionalen PFSgroup. Beispiel: "aes_gcm256" oder "aes256-sha2_512-dh14" oder "aes-sha2_512+sha2_256")
-
ikev2= nein (Um IKEv2 zu verwenden, wechseln Sie in ikev2=insist)
-
-
-
Gehen Sie zum Konfigurationsordner:
cd /etc/ipsec.d
. -
Libreswan speichert alle Tunnel teilen Secrets (Passwörter) in der Datei
shared.secrets
.-
Libreswan-Format shared.secrets: leftid Right: PSK "secret"
-
leftid: Die in IPSec.conf (linke ID) konfigurierte IKE-ID. Normalerweise die öffentliche Libreswan-IP-Adresse.
-
rechts: Die öffentliche IP-Adresse des OCI-Tunnels.
-
"secret": Das in OCI konfigurierte Shared Secret/Kennwort des aktuellen Tunnels. Sie erhalten diese Informationen von der OCI-Konsole unter Networking, Kundenkonnektivität, Site-to-Site-VPN, YourIPSEC, TunnelName, Tunnelinformationen, Shared Secret, Anzeigen.
-
-
-
-
Für dieses Tutorial wurden die folgenden
ipsec.conf
undshared.secrets
erstellt (öffentliche IPs sind ausgeblendet):ipsec.conf
shared.secrets
-
Versuchen wir jetzt, die beiden HA-Tunnel für OCI einzurichten.
-
Starten Sie den Libreswan-Service neu: Führen Sie als Root-Benutzer
ipsec restart
aus. Wenn alles gut geht, werden keine Fehler angezeigt, sonst sehen Sie etwas wie dieses:Job für ipsec.service war nicht erfolgreich, weil der Kontrollprozess mit Fehlercode beendet wurde. Weitere Einzelheiten finden Sie unter "systemctl status ipsec.service" und "journalctl -xe".
-
Prüfen Sie jetzt den aktuellen Status von IPSec-Tunneln: Führen Sie
ipsec status
aus. Es werden zahlreiche Informationen zu den aktuellen Tunneln angezeigt, die um ESP (Data Plane) und IKE (Signaling Plane), zulässige Subnetze usw. konfiguriert sind. Im Moment konzentrieren wir uns auf die Verbindungsliste.000 Verbindungsliste:
000
000 Gesamtanzahl IPSec-Verbindungen: *geladen 0, aktive 0
-
Derzeit ist keine Tunnelkonfiguration geladen und nicht aktiv.
-
Führen Sie
ipsec auto --add ConnName1
aus, d.h.ipsec auto --add home_liftvti
.- 002 hinzugefügte Verbindungsbeschreibung "home_liftvti" <- Jetzt ist die Verbindung noch nicht aktiv. Überprüfen Sie es mit IPS-Status.
-
Führen Sie
ipsec auto --up ConnName1
aus, um Tunnel 1 zu initiieren, d.h.ipsec auto --up home_liftvti
. Wenn alles gut läuft, wird der festgelegte Tunnelmodus IPSec SA angezeigt. Andernfalls werden Ihnen verschiedene IKE/IPSec-Fehler angezeigt, die Sie zur Fehlerbehebung benötigen. -
Jetzt ist die Option für den zweiten Tunnel aktiviert: Führen Sie ipsec auto -add ConnName2 aus, d.h. ipsec auto -add home_liftvti2
- 002 hinzugefügte Verbindungsbeschreibung "home_liftvti2" <- Jetzt ist die Verbindung noch nicht aktiv. Mit IPS-Status prüfen
-
Führen Sie ipsec auto-up ConnName2 aus, um Tunnel 1 zu initiieren, d.h. auto-up home_liftvti2 von ipsec. Wenn alles gut läuft, wird "IPSec SA etablierter Tunnelmodus" angezeigt. Andernfalls werden Ihnen verschiedene IKE/IPSec-Fehler angezeigt, die Sie zur Fehlerbehebung benötigen.
-
Aufgabe 3: IP-Routing und Tunnelverkehr konfigurieren
Dieser Teil des Tutorials konzentriert sich auf IP-Routing und Tunnelverkehr.
-
Nachdem beide Tunnel hochgefahren und gestartet sind, versuchen wir, einen Rechner in OCI von Libreswan zu testen. Beispiel: Pingen Sie origin1 mit IP 10.0.0.109. Daraufhin wird angezeigt, dass der Vorgang nicht erfolgreich verläuft.
PING 10.0.0.109 (10.0.0.109) 56(84) bytes of data. 10.0.0.109 ping statistics 26 packets transmitted, 0 received, 100% packet loss,
-
Sie fragen sich möglicherweise, warum es nicht funktioniert, obwohl die IPSec-Tunnel für OCI hochgefahren und gestartet sind. Die Antwort liegt darin, dass die beiden Tunnel, die wir für OCI eingerichtet haben, "route-basiert" sind und jeder Tunnel durch eine virtuelle Schnittstelle (VTI) dargestellt wird. Sie sehen jede VTI als virtuelle Netzwerkkarte (NIC), die einen IPSec-Tunnel darstellt. Jeder an die VTI weitergeleitete Datenverkehr wird über das ESP-(Encapsulating Security Payload-)Protokoll gekapselt und an das andere Ende des Tunnels gesendet. Die VTI fungiert als Gateway für Traffic, der gesichert und über den IPSec-Tunnel übertragen werden muss.
-
In unserem Testszenario verfügen wir über zwei VTI-Schnittstellen, vti01 und vti02, die jeweils home_liftvti und home_liftvti02 für OCI-DRG darstellen. Sie können diese leicht anzeigen, indem Sie den Linux-Befehl
ifconfig
ausführen. -
Jetzt müssen wir nur eine Linux-BS-Route zu diesen VTI-Schnittstellen hinzufügen, um sicherzustellen, dass der Traffic über die beiden Tunnel OCI erreicht. Beachten Sie, dass jeder an eine VTI-Schnittstelle gerichtete Traffic in seinem zugehörigen IPSec-Tunnel gekapselt und an OCI weitergeleitet wird.
-
Der Befehl zum Hinzufügen der Route hat das folgende Format:
ip route add {vcnCidrBlock} nexthop dev {vti1} weight {priority}nexthop dev {vti2} weight {priority}
` -
In unserem Testfall möchten wir OCI VCN1 mit CIDR 10.0.0.0/16 erreichen: ip route add 10.0.0.0/16 nexthop dev vti01 gewicht 1 nexthop dev vti02 gewicht 1
-
-
Jetzt sollte der Ping sofort funktionieren.
ping 10.0.0.109 PING 10.0.0.109 (10.0.0.109) 56(84) bytes of data. 64 bytes from 10.0.0.109: icmp_seq=1 ttl=61 time=29.0 ms 64 bytes from 10.0.0.109: icmp_seq=2 ttl=61 time=29.4 ms 64 bytes from 10.0.0.109: icmp_seq=3 ttl=61 time=29.0 ms
-
Jetzt arbeiten zwei Tunnel.
Aufgabe 4: ECMP-Load Balancing und -Redundanz konfigurieren
Dieser Teil des Tutorials konzentriert sich auf ECMP-Load Balancing und -Redundanz.
-
An dieser Stelle des Tutorials haben wir derzeit zwei IPSec-Tunnel mit OCI eingerichtet und betriebsbereit. Beide Tunnel nutzen die identische Route zu unserem On-Premise-Netzwerk, wie in unserem Testfall 192.168.0.0/16 angegeben.
-
Tunnel 1 192.168.0.0/16 -> On Premise
-
Tunnel 2 192.168.0.0/16 -> On Premise
-
-
Da beide Tunnel dieselbe On-Premise-Route (192.168.0.0/16) verwenden, wird diese Route an die restlichen DRG-Netzwerkanhänge propagiert, sodass andere Netzwerkelemente (VCNs, Subnetze usw.) On-Premise über IPSec erreichen können. Wie im nächsten Bild zu sehen ist, tritt ein Konflikt auf Route 192.168.0.0/16 auf, der für die beiden IP Sec-Tunnel in der automatisch generierten DRG-Tabelle für VCN-Anhänge identisch ist.
-
Mit dieser Konfiguration verwenden wir nur einen Tunnel und ignorieren den anderen. Ziel dieses Tutorials ist es, beide Tunnel gleichzeitig verwenden zu können, um High Availability (aktiv/aktiv) zu erreichen und die Performance zu verdoppeln, indem der Durchsatz beider Tunnel hinzugefügt wird. Hier kommt ECMP ins Spiel. Um ECMP zu aktivieren, müssen Sie es zuerst in der automatisch generierten DRG-Tabelle für jeden VCN-Anhang aktivieren: Networking, Kundenkonnektivität, Dynamische Routinggateways, DRGName, DRG-Routentabellendetails, Schaltfläche "Bearbeiten" (dies ist in jeder DRG-Anhangstabelle erforderlich).
-
Der Routenkonflikt in der automatisch generierten DRG-Routentabelle für VCN-Anhänge wird aufgelöst.
-
Aktivieren Sie ECMP in Linux und Libreswan. Um Equal-cost-Multipath-Routing (ECMP) zu unterstützen, führt Linux die Hash-Policy-Auswahl mit
fib_multipath_hash_policy
ein, einer neuensysctl
-Einstellung, die steuert, welche Hash-Policy für Multipath-Routen verwendet werden soll. Wennfib_multipath_hash_policy
auf 1 gesetzt ist, führt der Kernel den Hash L4 aus. Dabei handelt es sich um einen Multipath-Hash für IPv4-Pakete gemäß einer Werteset aus 5-Tupel (Quell-IP, Quellport, Ziel-IP, Zielport, IP-Protokolltyp). Wennfib_multipath_hash_policy
auf 0 gesetzt ist (Standard), wird nur L3-Hash verwendet (Quell- und Ziel-IP-Adressen). Führen Sie als Root in der Linux-Konsole Folgendes aus:sysctl -w net.ipv4.fib_multipath_hash_policy=1
-
Jetzt ist ECMP an beiden Enden aktiviert. Daher werden beide Tunnel im Active/Active-Modus verwendet, wodurch ein Gesamtdurchsatz von zwei IPSec-Tunneln hinzugefügt wird. Für unsere Tests haben wir den Befehl
iperf3
verwendet, um den Traffic zu prüfen und die folgenden Ergebnisse zu erhalten:From Libreswan: iperf3 -c 10.0.0.109 -b 1100Mb -P 8 -t 300 From OCI Origin1: iperf3 -s [SUM] 0.00-1.75 sec 249 MBytes 1.20 Gbits/sec 7122 sender
Verwandte Links
Bestätigungen
Autoren - Luis Catalán Hernández (OCI Cloud Network Specialist und Multi Cloud), Antonio Gamir (OCI Cloud Network Specialist)
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem die Website education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Produktdokumentation finden Sie im Oracle Help Center.
Use Oracle Cloud Infrastructure Site-to-Site VPN service in HA mode with ECMP routing from Linux and Libreswan
F84216-01
July 2023
Copyright © 2023, Oracle and/or its affiliates.