IBM Cloud Docs
Ein VPC/VPN-Gateway für den sicheren und privaten lokalen Zugriff auf Cloudressourcen verwenden

Ein VPC/VPN-Gateway für den sicheren und privaten lokalen Zugriff auf Cloudressourcen verwenden

Für dieses Lernprogramm fallen Kosten an. Mit dem Kostenschätzer können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung generieren.

IBM bietet eine Reihe von Möglichkeiten für die sichere Erweiterung eines lokalen Computernetzes mit Ressourcen in der IBM Cloud. Dadurch können Sie von der Elastizität der Bereitstellung von Cloudressourcen profitieren, wenn Sie sie benötigen, und sie entfernen, wenn sie nicht mehr benötigt werden. Darüber hinaus können Sie Ihre lokalen Funktionen problemlos und sicher mit den IBM Cloud-Services verbinden.

Dieses Lernprogramm bietet die Automatisierung für die Erstellung von Ressourcen, die die VPN-Konnektivität (Virtual Private Network) zwischen lokalen Servern und Cloudressourcen wie IBM Cloud® Virtual Private Cloud Virtual Service Instances (VSIs) und IBM Cloud-Datenservices veranschaulichen. Die DNS-Auflösung in Cloudressourcen wird ebenfalls konfiguriert. Das beliebte StrongSwan VPN-Gateway wird zur Darstellung des lokalen VPN-Gateways verwendet.

Ziele

  • Zugriff auf eine Virtual Private Cloud (VPC)-Umgebung von einem Rechenzentrum vor Ort aus
  • Sicherer Zugang zu Cloud-Diensten über private Endpunkt-Gateways
  • Lokale DNS-Nutzung für den Zugriff auf Cloudressourcen über VPN

Das folgende Diagramm zeigt die von diesem Lernprogramm erstellten Ressourcen

des

Eine Terraform-Konfiguration erstellt die folgenden Ressourcen:

  1. Die Infrastruktur (VPC, Subnetze, Sicherheitsgruppen mit Regeln, Network ACL und VSIs).
  2. Die privaten Endpunktgateways Object Storage und Databases for PostgreSQL zu Datenservices.
  3. Die quelloffene StrongSwan-Software für IPsec-Gateways wird lokal verwendet, um die VPN-Verbindung mit der Cloudumgebung herzustellen.
  4. Ein VPC/VPN-Gateway wird bereitgestellt, um private Konnektivität zwischen lokalen Ressourcen und Cloudressourcen zu ermöglichen.
  5. Der lokale DNS-Auflöser ist mit der Cloud-DNS-Auflösungsposition verbunden, um den TLS-Zugriff auf Cloudressourcen, einschließlich Zugriff auf virtuelle private Endpunktgateways , über ein VPN zu ermöglichen.

Vorbereitende Schritte

Für dieses Lernprogramm ist Folgendes erforderlich:

  • IBM Cloud CLI,
    • IBM Cloud Schematics-Plug-in (schematics)
  • jq zum Abfragen von JSON-Dateien
  • git to optionally clone source code repository,
  • Terraform CLI to optionally run Terraform on your desktop instead of the Schematics service.

Anweisungen zum Herunterladen und Installieren dieser Tools für Ihre Betriebsumgebung finden Sie in der Anleitung zur Einführung in die Lernprogramme.

Das lokale Rechenzentrum in diesem Lernprogramm wird mithilfe einer VSI in einer VPC simuliert.

Der bevorzugte Mechanismus zum Verbinden von VPCs ist Transit Gateway. Die Simulation einer lokalen Umgebung mit VPC, VSI und VPN wird nur zur Veranschaulichung verwendet.

Darüber hinaus:

Verwenden Sie Schematics, um die Ressourcen zu erstellen

  1. Melden Sie sich bei IBM Cloud an.
  2. Navigieren Sie zu Erstellen Schematics Arbeitsbereiche Überprüfen Sie unter dem Abschnitt Vorlage angeben:
    1. Repository-URL ist https://github.com/IBM-Cloud/vpc-tutorials/tree/master/vpc-site2site-vpn
    2. Die Terraform-Version ist terraform_v1.2
  3. Unter Arbeitsbereichsdetails,
    1. Geben Sie einen Arbeitsbereichsnamen an: Vpnsts.
    2. Wählen Sie eine Resource Group und einen Location aus.
    3. Klicken Sie auf Weiter.
  4. Überprüfen Sie die Details und klicken Sie anschließend auf Erstellen.
  5. Geben Sie im Abschnitt Variablen die erforderlichen Werte (Ressourcengruppenname, ssh_key_name) an, indem Sie auf das Überlaufmenü klicken und für jede Zeile Bearbeiten auswählen. Der Wert für die Variable maintenance muss auf 'true' gesetzt sein.
  6. Blättern Sie zum Seitenanfang und klicken Sie auf Plan anwenden. Überprüfen Sie die Protokolle, um den Status der erstellten Services anzuzeigen.

Untersuchen Sie die erstellten Ressourcen, indem Sie unten klicken und die Instanz mit dem entsprechenden Präfix auswählen. Suchen Sie alle Ressourcen im obigen Diagramm.

Konnektivität überprüfen

Die Ausgabe des Arbeitsbereichs Schematics enthält Variablen, die zur Überprüfung der VPN-Konnektivität verwendet werden können.

  1. Rufen Sie die Liste der Arbeitsbereiche ab. Beachten Sie die ID-Spalte und legen Sie die Shellvariable fest:

    ibmcloud schematics workspace list
    
  2. Legen Sie die Variable WORKSPACE_ID fest:

    WORKSPACE_ID=YOUR_WORKSPACE_ID
    
  3. Rufen Sie die Umgebungsvariablen für die Cloudressourcen ab:

    ibmcloud schematics output --id $WORKSPACE_ID --output json | jq -r '.[0].output_values[].environment_variables.value'
    
  4. Die Ausgabe sieht ungefähr wie folgt aus. Kopieren Sie diese Ergebnisse und fügen Sie sie in die Shell ein, um sie in der Umgebung festzulegen:

    IP_FIP_ONPREM=169.48.x.x
    IP_PRIVATE_ONPREM=10.0.0.4
    IP_PRIVATE_CLOUD=10.1.1.4
    IP_FIP_BASTION=52.118.x.x
    IP_PRIVATE_BASTION=10.1.0.4
    IP_DNS_SERVER_0=10.1.0.5
    IP_DNS_SERVER_1=10.1.1.6
    IP_ENDPOINT_GATEWAY_POSTGRESQL=10.1.1.9
    IP_ENDPOINT_GATEWAY_COS=10.1.1.5
    HOSTNAME_POSTGRESQL=a43ddb63-dcb1-430a-a2e4-5d87a0dd12a6.6131b73286f34215871dfad7254b4f7d.private.databases.appdomain.cloud
    HOSTNAME_COS=s3.direct.us-south.cloud-object-storage.appdomain.cloud
    PORT_POSTGRESQL=32525
    
  5. Sie können jetzt eine SSH-Verbindung zu jeder der Instanzen herstellen, die verschiedenen Pfaden folgen, einschließlich dem Springen durch das VPN. Das Diagramm zeigt die Kommunikationspfade, die von den Schritten ausgeführt werden.

    Wenn der SSH-Schlüssel nicht der Standard für SSH ist, können Sie die Option -I PATH_TO_PRIVATE_KEY_FILE setzen oder das SSH-Referenzhandbuch zu Rate ziehen.

Konnektivität überprüfen
Konnektivität überprüfen

  1. Testzugriff auf lokale VSI:
    ssh root@$IP_FIP_ONPREM
    
  2. Testzugriff auf Cloud-Bastion:
    ssh root@$IP_FIP_BASTION
    
  3. Testen Sie den Zugriff auf Cloud VSI über Bastion:
    ssh -J root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD
    
  4. Testen Sie den Zugriff auf Cloud VSI über On-Premises, über den VPN-Tunnel und über Bastion:
    ssh -J root@$IP_FIP_ONPREM,root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD
    
  5. Testen Sie den Zugriff auf die lokale VSI über Bastion, über Cloud VSI und über einen VPN-Tunnel:
    ssh -J root@$IP_FIP_BASTION,root@$IP_PRIVATE_CLOUD root@$IP_PRIVATE_ONPREM
    

DNS-Auflösung überprüfen

Die lokale DNS-Auflösung wurde so konfiguriert, dass sie den IBM Cloud VPC DNS-Auflöser-Standort zu verwenden. Dies ermöglicht den Zugriff auf die Cloud-Services nach Namen und die Auflösung in die IP-Adressen der privaten Endpunktgateways.

Testen Sie die DNS-Auflösung in Postgresql und Objektspeicher über das Virtual Endpoint Gateway. Die beiden Pfade, die überprüft werden, sind im folgenden Diagramm dargestellt:

DNS-Auflösung überprüfen
DNS-Auflösung überprüfen

  1. Greifen Sie auf die lokale VSI zu.

    ssh root@$IP_FIP_ONPREM
    
  2. Kopieren Sie drei (3) der zuvor erfassten Variablen und fügen Sie sie ein: HOSTNAME_POSTGRESQL, HOSTNAME_COS, PORT_POSTGRESQL.

  3. Führen Sie einen dig-Befehl aus, um die Auflösung der Datenbankinstanz über Virtual Endpoint Gateway zu bestätigen.

    dig $HOSTNAME_POSTGRESQL
    
  4. Überprüfen Sie die Konnektivität zur Datenbank, indem Sie einen telnet-Befehl absetzen. Es sollte "connected" angezeigt werden.

    telnet $HOSTNAME_POSTGRESQL $PORT_POSTGRESQL
    
  5. Setzen Sie nach der Verbindung zur Datenbank den Befehl Ctrl+C ab, um die Verbindung zu trennen.

  6. Führen Sie einen dig-Befehl aus, um die Auflösung der Cloud Object Storage-Instanz über das Virtual Endpoint Gateway zu bestätigen.

    dig $HOSTNAME_COS
    
  7. Überprüfen Sie die Konnektivität zur Cloudobjektspeicherinstanz, indem Sie einen telnet-Befehl ausgeben. Es sollte "connected" angezeigt werden.

    telnet $HOSTNAME_COS 443
    
  8. Setzen Sie nach der Verbindung zur Cloudobjektspeicherinstanz den Befehl Ctrl+C ab, um die Verbindung zu trennen.

Bei Problemen lesen Sie den Abschnitt Fehlerbehebung im GitHub-Repository.

Lernprogramm optional erweitern

Möchten Sie diesem Lernprogramm etwas hinzufügen oder es erweitern? Hier einige Vorschläge:

  • Im GitHub-Repository gibt es eine Anwendung, die implementiert werden kann und die die Datenbank und den Cloudobjektspeicher verwendet. Anweisungen zur Implementierung finden Sie in der Readme-Datei.
  • Wenn Sie die Anwendung DNS-Zone hinzufügen für die Anwendung implementiert haben.
  • Führen Sie die Anwendung auf mehreren Virtual Servers for VPC aus und fügen Sie eine Lastausgleichsfunktion hinzu, um eingehenden Mikroservicedatenverkehr zu verteilen.

Ressourcen entfernen

  1. Navigieren Sie zu Schematics-Arbeitsbereiche und klicken Sie auf Ihren Arbeitsbereich.
  2. Klicken Sie auf Aktionen ... > Ressourcen löschen
  3. Klicken Sie auf Aktionen ... > Arbeitsbereich löschen