Verbindung zu einem Vyatta-Peer herstellen

Mit IBM Cloud VPN for VPC können Sie Ihre VPC über einen VPN-Tunnel sicher mit einem lokalen Netz zu verbinden. Dieser Abschnitt enthält eine Anleitung dazu, wie Sie Ihr Vyatta-VPN-Gateway für die Verbindung zu VPN for VPC konfigurieren.

Diese Anweisungen basieren auf Vyatta Version: AT & T vRouter 5600 1801d.

Lesen Sie Bekannte Probleme für VPN-Gateways, bevor Sie die Verbindung zu Ihrer lokalen Gegenstelle fortsetzen.

Wenn das Vyatta-VPN eine Verbindungsanforderung von VPN for VPC empfängt, verwendet Vyatta IPSec-Parameter der Phase 1, um eine sichere Verbindung herzustellen und das VPN for VPC-Gateway zu authentifizieren. Wenn die Sicherheitsrichtlinie die Verbindung zulässt, richtet das Vyatta-VPN den Tunnel unter Verwendung der IPsec Phase 2-Parameter ein und wendet die IPsec-Sicherheitsrichtlinie an. Schlüsselmanagement, Authentifizierung und Sicherheitsservices werden über das IKE-Protokoll dynamisch vereinbart.

Zur Unterstützung dieser Funktionen müssen die folgenden allgemeinen Konfigurationsschritte für das Vyatta-VPN ausgeführt werden:

  • Definieren Sie die Phase 1-Parameter, die Vyatta zum Authentifizieren von VPN for VPC und zum Einrichten einer sicheren Verbindung benötigt.
  • Definieren Sie die Phase 2-Parameter, die Vyatta zum Erstellen eines VPN-Tunnels mit VPN for VPC benötigt.

Verbindung eines auf IBM Richtlinien basierenden VPN zu einem Vyatta-Peer herstellen

Verwenden Sie die folgende Konfiguration:

  1. Wählen Sie in der Authentifizierung IKEv2 aus.
  2. Aktivieren Sie DH-group 19 im Vorschlag für Phase 1.
  3. Legen Sie lifetime = 36000 im Vorschlag für Phase 1 fest.
  4. Inaktivieren Sie PFS im Vorschlag für Phase 2.
  5. Legen Sie lifetime = 10800 im Vorschlag für Phase 2 fest.
  6. Geben Sie die Informationen für den Peer und das Teilnetz im Vorschlag für Phase 2 ein.

Die folgenden Befehle verwenden die folgenden Variablen, wobei Folgendes gilt:

  • {{ peer_address }} ist die öffentliche IP-Adresse des VPN-Gateways.
  • {{ ibm_vpc_cidr }} ist das IBM VPC-Teilnetz.
  • {{ vyatta_address }} ist die öffentliche IP-Adresse von Vyatta.
  • {{ vyatta_cidr }} ist das Teilnetz von Vyatta.

Vorbereitende Schritte

Vergewissern Sie sich beim Einrichten Ihres fernen Vyatta-Peers, dass die folgenden Voraussetzungen vorliegen.

  • Eine VPC

  • Ein Teilnetz in der VPC

  • Ein VPN-Gateway in der VPC ohne Verbindungen

    Nach der Bereitstellung des VPN-Gateways notieren Sie dessen öffentliche IP-Adresse.

  • Die öffentliche IP-Adresse von Vyatta

  • Das Teilnetz von Vyatta, zu dem Sie mithilfe von VPN eine Verbindung herstellen möchten

Vyatta konfigurieren

Es gibt zwei Möglichkeiten zum Ausführen der Konfiguration in Vyatta:

  1. Melden Sie sich bei der Vyatta an und führen Sie die Datei create_vpn.vcli mit den folgenden Befehlen aus.
  2. Führen Sie die folgenden Befehle in der Konsole von Vyatta aus.

Beachten Sie Folgendes:

  • Wählen Sie in der Authentifizierung IKEv2 aus.
  • Aktivieren Sie DH-group 19.
  • Legen Sie lifetime = 36000 fest.
  • Inaktivieren Sie PFS.
  • Legen Sie lifetime = 10800 fest.

In den folgenden Befehlen werden die folgenden Variablen verwendet. Dabei gilt Folgendes:

  • {{ peer_address }} ist die öffentliche IP-Adresse des VPN-Gateways.
  • {{ ibm_vpc_cidr }} ist das IBM VPC-Teilnetz.
  • {{ vyatta_address }} ist die öffentliche IP-Adresse von Vyatta.
  • {{ vyatta_cidr }} ist das Teilnetz von Vyatta.
vim vyatta_temp/create_vpn.vcli
#!/bin/vcli -f
configure

set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} dead-peer-detection timeout 120
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} lifetime {{ ike["lifetime"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} ike-version {{ ike["version"] }}

set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }} dh-group {{ proposal["dhgroup"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }} encryption {{ proposal["encryption"] }}
set security vpn ipsec ike-group {{ peer_address }}_{{ ike["name"] }} proposal {{ loop.index }} hash {{ proposal["integrity"] }}


set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} compression disable
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} lifetime {{ ipsec["lifetime"] }}
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} mode tunnel
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} pfs {{ ipsec["proposals"][0]["dhgroup"] }}

set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} proposal {{ loop.index }} encryption {{ proposal["encryption"] }}
set security vpn ipsec esp-group {{ peer_address }}_{{ ipsec["name"] }} proposal {{ loop.index }} hash {{ proposal["integrity"] }}

set security vpn ipsec site-to-site peer {{ peer_address }} authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer {{ peer_address }} authentication pre-shared-secret {{ psk }}
set security vpn ipsec site-to-site peer {{ peer_address }} ike-group {{ peer_address }}_{{ ike["name"] }}
set security vpn ipsec site-to-site peer {{ peer_address }} default-esp-group {{ peer_address }}_{{ ipsec["name"] }}
set security vpn ipsec site-to-site peer {{ peer_address }} description "automation test"
set security vpn ipsec site-to-site peer {{ peer_address }} local-address {{ vyatta_address }}
set security vpn ipsec site-to-site peer {{ peer_address }} connection-type {{ connection_type }}
set security vpn ipsec site-to-site peer {{ peer_address }} authentication remote-id {{ peer_address }}

set security vpn ipsec site-to-site peer {{ peer_address }} tunnel {{ ns.tunnel_index }} local prefix {{ vyatta_cidr }}
set security vpn ipsec site-to-site peer {{ peer_address }} tunnel {{ ns.tunnel_index }} remote prefix {{ ibm_vpc_cidr }}

commit
end_configure

Sie können beispielsweise die folgenden Befehle ausführen:

#!/bin/vcli -f
configure

set security vpn ipsec ike-group 169.61.247.167_test_ike
set security vpn ipsec ike-group 169.61.247.167_test_ike dead-peer-detection timeout 120
set security vpn ipsec ike-group 169.61.247.167_test_ike lifetime 36000
set security vpn ipsec ike-group 169.61.247.167_test_ike ike-version 2

set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1 dh-group 19
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1 encryption aes256
set security vpn ipsec ike-group 169.61.247.167_test_ike proposal 1 hash sha2_256
set security vpn ipsec esp-group 169.61.247.167_test_ipsec compression disable
set security vpn ipsec esp-group 169.61.247.167_test_ipsec lifetime 10800
set security vpn ipsec esp-group 169.61.247.167_test_ipsec mode tunnel
set security vpn ipsec esp-group 169.61.247.167_test_ipsec pfs disable


set security vpn ipsec esp-group 169.61.247.167_test_ipsec proposal 1 encryption aes256
set security vpn ipsec esp-group 169.61.247.167_test_ipsec proposal 1 hash sha2_256
set security vpn ipsec site-to-site peer 169.61.247.167 authentication mode pre-shared-secret
set security vpn ipsec site-to-site peer 169.61.247.167 authentication pre-shared-secret ***YOUR-PSK***
set security vpn ipsec site-to-site peer 169.61.247.167 ike-group 169.61.247.167_test_ike
set security vpn ipsec site-to-site peer 169.61.247.167 default-esp-group 169.61.247.167_test_ipsec
set security vpn ipsec site-to-site peer 169.61.247.167 description "automation test"
set security vpn ipsec site-to-site peer 169.61.247.167 local-address 169.63.66.53
set security vpn ipsec site-to-site peer 169.61.247.167 connection-type initiate
set security vpn ipsec site-to-site peer 169.61.247.167 authentication remote-id 169.61.247.167


set security vpn ipsec site-to-site peer 169.61.247.167 tunnel 1 local prefix 10.65.15.104/29
set security vpn ipsec site-to-site peer 169.61.247.167 tunnel 1 remote prefix 10.240.0.0/24


commit
end_configure

Notieren Sie zum Abschluss Ihren Wert für {{ psk }}. Dieser Wert wird im nächsten Schritt benötigt, um die VPN-Verbindung einzurichten.

Routenbasiertes IBM VPN mit einem Vyatta-Peer verbinden

Erstellen Sie die VPN-Verbindung zu Vyatta mithilfe der folgenden IKE- und IPsec-Richtlinie:

  1. Wählen Sie in der Authentifizierung IKEv2 aus.
  2. Aktivieren Sie DH-group 19, aes256, sha256 im Vorschlag für Phase 1.
  3. Legen Sie lifetime = 86400 im Vorschlag für Phase 1 fest.
  4. Aktivieren Sie PFS, aes256 und sha256 im Vorschlag für Phase 2.
  5. Legen Sie lifetime = 10800 im Vorschlag für Phase 2 fest.

Diese Richtlinie dient nur als Beispiel. Sie können beliebige andere Werte verwenden, die dem Vyatta-Vorschlag entsprechen.

Vorbereitende Schritte

Stellen Sie zum Einrichten Ihres fernen Vyatta-Peers sicher, dass die folgenden Voraussetzungen vorliegen:

  • Eine VPC

  • Ein Teilnetz in der VPC

  • Ein VPN-Gateway in der VPC ohne Verbindungen

    Nach der Bereitstellung des VPN-Gateways notieren Sie dessen öffentliche IP-Adresse. Die kurze IP-Adresse ist die primäre IP und die lange IP-Adresse ist die sekundäre IP.

  • Die öffentliche IP-Adresse von Vyatta

  • Das Teilnetz von Vyatta, zu dem Sie mithilfe von VPN eine Verbindung herstellen möchten

Vyatta konfigurieren

Die folgenden Befehle verwenden die folgenden Variablen, wobei Folgendes gilt:

  • {{ primary_peer_address }} ist die kurze öffentliche IP-Adresse des routenbasierten VPN-Gateways.
  • {{ ibm_vpc_cidr }} ist das IBM VPC-Teilnetz.
  • {{ secondary_peer_address }} ist die lange öffentliche IP-Adresse des routenbasierten VPN-Gateways.
  • {{ vyatta_address }} ist die öffentliche IP-Adresse von Vyatta.

Hier ein Beispiel zum Konfigurieren von Vyatta.

  1. Definieren Sie den Vorschlag für IKE-Übereinstimmug:

    set security vpn ipsec ike-group ibm-vpc-ike-group
    set security vpn ipsec ike-group ibm-vpc-ike-group dead-peer-detection interval 2
    set security vpn ipsec ike-group ibm-vpc-ike-group dead-peer-detection action clear
    set security vpn ipsec ike-group ibm-vpc-ike-group lifetime 86400
    set security vpn ipsec ike-group ibm-vpc-ike-group ike-version 2
    set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1
    set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 dh-group 19
    set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 encryption aes256
    set security vpn ipsec ike-group ibm-vpc-ike-group proposal 1 hash sha2_256
    
  2. Definieren Sie den Vorschlag für IPsec-Übereinstimmung:

    set security vpn ipsec esp-group ibm-vpc-ipsec-group compression disable
    set security vpn ipsec esp-group ibm-vpc-ipsec-group lifetime 10800
    set security vpn ipsec esp-group ibm-vpc-ipsec-group mode tunnel
    set security vpn ipsec esp-group ibm-vpc-ipsec-group pfs dh-group19
    set security vpn ipsec esp-group ibm-vpc-ipsec-group proposal 1 encryption aes256
    set security vpn ipsec esp-group ibm-vpc-ipsec-group proposal 1 hash sha2_256
    
  3. Erstellen Sie die VTI- und VPN-Verbindung zum primären IBM Tunnel:

    Erstellen Sie die virtuelle Tunnelschnittstelle und konfigurieren Sie die Link-Local-Adresse (169.254.0.2/30) in der Schnittstelle. Achten Sie darauf, die lokale Verbindungsadresse auszuwählen, und stellen Sie sicher, dass sie sich nicht mit anderen Adressen auf dem Gerät überschneidet. Ein Teilnetz mit 30-Bit-Netzmaske enthält zwei verfügbare IP-Adressen (169.254.0.1 und 169.254.0.2). Die erste IP-Adresse (169.254.0.1) wird als VTI-Adresse des IBM VPN Gateway verwendet, die zweite IP-Adresse (169.254.0.2) als Vyatta-VTI-Adresse. Wenn Sie in Vyatta über mehr als eine VTI verfügen, können Sie ein anderes Teilnetz für lokale Verbindungen auswählen, z. B. 169.254.0.4/30, 169.254.0.8/30 usw.

    Sie müssen 169.254.0.1 nicht auf dem IBM VPN-Gateway konfigurieren. Sie wird nur referenziert, wenn Sie die Routen in Vyatta konfigurieren.

    set interfaces vti vti1 description "to-IBM-VPN-primary"
    set interfaces vti vti1 address 169.254.0.2/30
    set interfaces vti vti1 ip tcp-mss limit 1360
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} authentication mode pre-shared-secret
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} authentication pre-shared-secret {{your_pre_shared_key}}
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} ike-group ibm-vpc-ike-group
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} default-esp-group ibm-vpc-ipsec-group
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} description "to-IBM-VPN-primary"
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} local-address {{ vyatta_address }}
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} connection-type initiate
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} authentication remote-id {{ primary_peer_address }}
    set security vpn ipsec site-to-site peer {{ primary_peer_address }} vti bind vti1
    
  4. Erstellen Sie die primäre Route:

    set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.1 distance 10
    set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.1 interface vti1
    
  5. Erstellen Sie die VTI- und VPN-Verbindung zum sekundären IBM Tunnel:

    set interfaces vti vti2 description "to-IBM-VPN-secondary"
    set interfaces vti vti2 address 169.254.0.6/30
    set interfaces vti vti2 ip tcp-mss limit 1360
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} authentication mode pre-shared-secret
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} authentication pre-shared-secret {{your_pre_shared_key}}
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} ike-group ibm-vpc-ike-group
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} default-esp-group ibm-vpc-ipsec-group
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} description "to-IBM-VPN-secondary"
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} local-address {{ vyatta_address }}
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} connection-type initiate
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} authentication remote-id {{ secondary_peer_address }}
    set security vpn ipsec site-to-site peer {{ secondary_peer_address }} vti bind vti2
    

    Die VTI-IP-Adresse 169.254.0.6 ist ein Beispiel. Sie können eine beliebige, nicht genutzte IP-Adresse verwenden.

  6. Erstellen Sie die primäre Route:

    set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.5 distance 20
    set protocols static route {{ ibm_vpc_cidr }} next-hop 169.254.0.5 interface vti2
    

Fehlerbehebung

  • Wenn Sie die CPP-Firewall auf einem Vyatta-Gerät aktivieren, müssen Sie die Regeln so konfigurieren, dass der IBM Gateway-Datenverkehr zugelassen wird. Wenn Ihr CPP-Firewall-Name beispielsweise GATEWAY_CPP lautet, fügen Sie die folgenden Regeln zur Firewall hinzu:

    # set security firewall name GATEWAY_CPP rule 250 source address 169.61.247.167
    # set security firewall name GATEWAY_CPP rule 250 action accept
    
  • Wenn Sie die Firewall auf die Schnittstelle anwenden, müssen Sie den IBM VPC-Datenverkehr zulassen. Zum Beispiel:

    # set security firewall name to-vpc rule 20 destination address 10.240.0.0/24
    # set security firewall name to-vpc rule 20 action accept
    # set security firewall name from-vpc rule 20 source address 10.240.0.0/24
    # set security firewall name from-vpc rule 20 action accept
    # set interfaces bonding dp0bond0 vif 862 firewall out to-vpc
    # set interfaces bonding dp0bond0 vif 862 firewall in from-vpc
    

    Möglicherweise müssen Sie andere Regeln entsprechend Ihrer Netzanforderungen hinzufügen, um anderen Datenverkehr zu ermöglichen.

  • Ziehen Sie bei Verwendung einer Zonenfirewall mit IPsec den Abschnitt IPsec-Tunnel einrichten, der mit zonenbasierten Firewalls arbeitet zurate.