Zum Hauptinhalt springen

Wie richtet man einen GRE-Tunnel zwischen OPNsense und Linux ein?

Veröffentlicht am:
.
10 Minuten Lesezeit
.
Für die Englische Version

Generic Routing Encapsulation (GRE), das von Cisco entwickelt wurde, wird verwendet, um Netzwerkprotokolle der Schicht 3 in virtuellen Punkt-zu-Punkt-Verbindungen über ein Internetprotokollnetzwerk zu kapseln. GRE-Tunnel werden eingesetzt, um (OSI-Schicht 3) Protokolle zwischen Geräten über eine Verbindung zu verwenden, die diese Protokolle normalerweise nicht unterstützt. Wenn eine GRE-Schnittstelle verwendet wird, können beide Peer-Router, die den Zugriff auf das Unternehmensnetzwerk steuern, dynamische IP-Routing-Protokolle unterstützen, um Routing-Updates über das Tunnel auszutauschen und IP-Multicast-Verkehr zuzulassen. Enhanced Interior Gateway Routing Protocol (EIGRP), Routing Information Protocol (RIP), Intermediate System-to-Intermediate System (IS-IS), Open Shortest Path First (OSPF) und Border Gateway Protocol (BGP) sind alle unterstützte IP-Routing-Protokolle. GRE wird oft verwendet, um Multicast-Verkehr weiterzuleiten, der nicht geroutet werden kann. Dies erfordert jedoch zusätzliche Software wie IGMP-Proxy oder PIMD, die auf OPNsense nicht so häufig verwendet werden.

GRE wird oft als Standard-Tunneltechnologie verwendet, wenn Cisco-Lösungen eingesetzt werden.

Durch einen virtuellen Tunnel bewegen sich GRE-Pakete direkt zwischen den beiden Enden. Wenn ein Paket durch andere Router geleitet wird, tun die Router nichts mit seinem Payload. Stattdessen betrachten sie nur das IP-Paket auf der Außenseite. Wenn das Paket das Ende des GRE-Tunnels erreicht, entfernt der Switch das äußere Paket, betrachtet die Nutzlast und sendet das Paket dann an sein endgültiges Ziel.

GRE verwendet mehrere Protokolle auf einem einzigen Protokoll-Rückgrat. Es ist einfacher einzurichten als einige andere Lösungen, wie VPN. Sie können GRE verwenden, um Protokolle zu senden, die das zugrunde liegende Netzwerk nicht unterstützt, Netzwerke mit einer begrenzten Anzahl von Hops zu umgehen, Subnetze zu verbinden, die nicht nebeneinander liegen, und VPNs über Weitverkehrsnetze arbeiten zu lassen.

GRE-Tunnel-Topologie zwischen OPNsense und Ubuntu Linux

Abbildung 1. GRE-Tunnel-Topologie zwischen OPNsense und Ubuntu Linux

In diesem Tutorial werden wir die GRE-Tunnel-Konfiguration auf der OPNsense 22.7.6-Firewall und Ubuntu 20.04.3 LTS Linux erklären. Sie können einen GRE-Tunnel zwischen Ihrem OPNsense-Knoten und dem Linux-Server ganz einfach einrichten, indem Sie die folgenden Hauptschritte befolgen:

  1. Erstellen Sie ein GRE-Tunnel-Interface auf OPNsense

  2. Aktivieren Sie das GRE-Tunnel-Interface auf OPNsense

  3. Definieren Sie eine Firewall-Regel, um den Datenverkehr auf der GRE-Tunnel-Schnittstelle zuzulassen.

  4. Definieren Sie eine Firewall-Regel, um das GRE-Protokoll auf der WAN-Schnittstelle zuzulassen.

  5. GRE-Tunnel unter Linux einrichten

Jeder Schritt wird im Folgenden im Detail erklärt.

1. Erstellen Sie GRE-Tunnel-Schnittstelle auf OPNsense

Um eine GRE-Schnittstelle auf Ihrer OPNsense-Firewall zu erstellen, können Sie die folgenden Schritte ausführen:

  1. Navigieren Sie zu InterfacesOther TypesGRE in Ihrer OPNsense-Weboberfläche.

  2. Klicken Sie auf die Schaltfläche + Hinzufügen.

    Hinzufügen einer GRE-Schnittstelle auf OPNsense

    Abbildung 2. Hinzufügen einer GRE-Schnittstelle auf OPNsense

  3. Wählen Sie das Parent interface aus. Diese Schnittstelle dient als lokale Adresse, die für das GRE-Tunnel verwendet wird. In unserem Beispiel wählen wir WAN.

  4. Setzen Sie die GRE remote address. Es muss die Peer-Adresse sein, an die die gekapselten GRE-Pakete gesendet werden. In unserem Beispiel ist es die öffentliche IP-Adresse des entfernten Ubuntu-Servers, 22.22.22.22.

  5. Setzen Sie die GRE tunnel local address, wie zum Beispiel 11.11.11.1. Diese IP-Adresse gehört zum lokalen GRE-Tunnel-Endpunkt.

  6. Setzen Sie die GRE tunnel remote address, wie 11.11.11.2, und die Subnetzmaske, wie 30. Diese IP-Adresse gehört zum Remote-GRE-Tunnel-Endpunkt. Das Subnetz wird verwendet, um herauszufinden, welches Netzwerk tunnelt wird.

  7. Geben Sie einen beschreibenden Namen im Feld Description zu Ihrer Referenz ein, wie zum Beispiel MyGRE Tunnel.

  8. Klicken Sie auf Save, um die GRE-Schnittstelle hinzuzufügen.

    Anzeigen der vorhandenen GRE-Schnittstelle auf OPNsense

    Abbildung 3. Anzeigen der vorhandenen GRE-Schnittstelle auf OPNsense

  9. Für die Schnittstellenzuweisung auf OPNsense navigieren Sie zu InterfacesAssignments. Sie werden die vorhandenen Schnittstellen und Ihre neu erstellte GRE-Schnittstelle sehen.

    Zuweisung der GRE-Schnittstelle auf OPNsense

    Abbildung 4. GRE-Schnittstellenzuweisung auf OPNsense

  10. Geben Sie einen beschreibenden Namen im Feld Description zu Ihrer Referenz ein, wie zum Beispiel MyGRE.

  11. Klicken Sie auf die Schaltfläche + Hinzufügen, um die GRE-Schnittstellenzuweisung abzuschließen.

  12. Klicken Sie auf Save, um die Schnittstelleneinstellungen zu speichern.

    Anzeigen der GRE-Schnittstellenzuweisung auf OPNsense

    Abbildung 5. Anzeigen der Schnittstellenzuweisung auf OPNsense

Starten Sie noch heute kostenlos mit Zenarmor

2. Aktivieren Sie das GRE-Tunnel-Interface auf OPNsense

Um Ihr neu erstelltes GRE-Tunnel-Interface auf OPNsense zu aktivieren, können Sie die folgenden Anweisungen befolgen:

  1. Gehen Sie zu den Interfaces im OPNsense Web-UI.

  2. Wählen Sie das neu erstellte GRE-Tunnel-Interface, wie MyGRE.

  3. Klicken Sie auf das Kontrollkästchen Enable Interface. Dies öffnet das Generic Configuration-Fenster.

    Aktivieren der GRE-Schnittstelle auf OPNsense

    Abbildung 6. Aktivierung der GRE-Schnittstelle auf OPNsense

  4. Sie können die Optionen Block private networks und Block bogon networks zur Sicherheit auswählen.

  5. Sie können die anderen Optionen als Standard belassen.

    Konfiguration der GRE-Schnittstelle auf OPNsense

    Abbildung 7. Einstellung der generischen GRE-Schnittstellenkonfiguration auf OPNsense

  6. Klicken Sie auf Save, um die Schnittstelleneinstellungen zu speichern.

  7. Klicken Sie auf die Schaltfläche Apply changes, um die Einstellungen zu aktivieren.

  8. Um den Status der GRE-Schnittstelle anzuzeigen, gehen Sie zu InterfacesOverview im OPNsense Web-UI.

  9. Wählen Sie die neu erstellte GRE-Schnittstelle, wie MyGRE. Sie sollten sehen, dass der Status up ist, wie unten dargestellt.

    Anzeigen des GRE-Schnittstellenstatus auf OPNsense

    Abbildung 8. Anzeigen des GRE-Schnittstellenstatus auf OPNsense

3. Definieren Sie eine Firewall-Regel, um den Datenverkehr auf der GRE-Tunnel-Schnittstelle zuzulassen

Sie können eine Firewall-Richtlinie definieren, um den Verkehr vom GRE-Tunnel-Interface zuzulassen, indem Sie die folgenden Anweisungen befolgen. Wir erlauben allen Verkehr über das GRE-Tunnel, aber Sie können je nach Bedarf restriktivere Regeln festlegen.

  1. Navigieren Sie zu FirewallRules und wählen Sie die GRE-Schnittstelle, wie MyGRE.

    Hinzufügen einer Firewall-Regel auf der GRE-Tunnel-Schnittstelle

    Abbildung 9. Hinzufügen einer Firewall-Regel auf der GRE-Tunnel-Schnittstelle

  2. Klicken Sie auf die Schaltfläche + Hinzufügen, um eine Regel zu definieren.

    Hinzufügen einer Any-to-Any-Firewall-Regel auf der GRE-Tunnel-Schnittstelle

    Abbildung 10. Hinzufügen einer beliebigen Firewall-Regel auf der GRE-Tunnel-Schnittstelle

  3. Sie können alle Optionen auf den Standardwerten belassen, wenn Sie beliebigen Verkehr zulassen.

  4. Wählen Sie die Option Log packets that are handled by this rule.

  5. Geben Sie einen beschreibenden Namen in das Feld Description zu Ihrer Referenz ein, wie zum Beispiel Allow GRE All Traffic.

    Protokollierung für Firewall-Regel auf GRE-Tunnel-Schnittstelle aktivieren

    Abbildung 11. Aktivieren Sie das Protokollieren für die Firewall-Regel auf der GRE-Tunnel-Schnittstelle

  6. Klicken Sie auf Save, um die Regel hinzuzufügen.

  7. Klicken Sie auf die Schaltfläche Apply changes, um die Einstellungen zu aktivieren.

    Anwenden der Firewall-Regel auf GRE-Tunnel-Schnittstelle

    Abbildung 12. Anwenden der Firewall-Regel auf die GRE-Tunnel-Schnittstelle

4. Definieren Sie eine Firewall-Regel, um das GRE-Protokoll auf der WAN-Schnittstelle zuzulassen

  1. Navigieren Sie zur Seite FirewallAliases. Sie werden feststellen, dass standardmäßig 4 vordefinierte Aliase in der Liste vorhanden sind.

  2. Klicken Sie auf die Schaltfläche "+" in der unteren rechten Ecke des Fensters.

  3. Geben Sie den Name des Alias ein, wie Linux_GRE_Peer.

  4. Wählen Sie Host(s) im Dropdown-Menü Type aus.

  5. Geben Sie die Ubuntu Linux IP-Adressen, 22.22.22.22, in das Feld Content ein.

  6. Geben Sie eine Description ein, die Ihnen hilft, den Zweck oder die Details des Alias zu verstehen, wie z.B. Ubuntu Linux GRE Peer.

    Definieren des Alias für Ubuntu Linux Server auf OPNsense

    Abbildung 13. Definition des Alias für Ubuntu Linux Server auf OPNsense

  7. Klicken Sie auf Speichern, um die Aliase hinzuzufügen.

  8. Klicken Sie auf Apply, um die Einstellungen zu aktivieren.

  9. Navigieren Sie zu FirewallRules und wählen Sie die WAN-Schnittstelle aus.

  10. Klicken Sie auf die Schaltfläche + Hinzufügen, um eine Regel zu definieren.

  11. Wählen Sie GRE in der Protocol-Option.

  12. Wählen Sie Linux_GRE_Peer für die Source-Option.

    Definieren Sie eine Firewall-Regel, um das GRE-Protokoll auf WAN-Schnittstelle-1 zuzulassen

    Abbildung 14. Definieren Sie eine Firewall-Regel, um das GRE-Protokoll auf WAN-Schnittstelle-1 zuzulassen

  13. Wählen Sie die Option Log packets that are handled by this rule.

  14. Geben Sie einen beschreibenden Namen im Feld Description zu Ihrer Referenz ein, wie zum Beispiel GRE-Protokoll erlauben.

  15. Sie können die anderen Optionen als Standard belassen.

  16. Klicken Sie auf Save, um die Regel hinzuzufügen.

  17. Klicken Sie auf die Schaltfläche Apply changes, um die Einstellungen zu aktivieren.

    Definieren Sie eine Firewall-Regel, um das GRE-Protokoll auf der WAN-Schnittstelle-2 zuzulassen

    Abbildung 15. Definieren Sie eine Firewall-Regel, um das GRE-Protokoll auf WAN-Schnittstelle-2 zuzulassen

Lassen Sie uns die andere Seite des Tunnels auf dem Ubuntu Linux-Server erstellen.

5. GRE-Tunnel unter Linux einrichten

Sie können einen GRE-Tunnel zwischen Ihrem Ubuntu Linux-Server und dem OPNsense-Knoten ganz einfach einrichten, indem Sie die folgenden Schritte befolgen:

  1. Auf Linux müssen Sie das ip_gre-Modul in Ihrem Kernel geladen haben, um ein GRE-Tunnel einzurichten. Um sicherzustellen, dass es geladen ist, führen Sie den folgenden Befehl aus:

    sudo modprobe ip_gre
    lsmod | grep gre

    You should see the output similar to the given below:

    ip_gre 28672 0
    ip_tunnel 24576 1 ip_gre
    gre 16384 1 ip_gre

Wenn Sie etwas anderes sehen, könnte es sein, dass Ihr Kernel GRE nicht unterstützt.

  1. Alle großen Linux-Distributionen sollten iproute2 bereits installiert haben. Falls sie noch nicht installiert sind, verwenden Sie den folgenden Befehl:

    sudo apt install iptables iproute2
  2. Überprüfen Sie die Hilfetipps von iproute2, um zu sehen, wie die Syntax geschrieben wird:

    ip tunnel help

    You should see the output similar to the given below:

    Usage: ip tunnel { add | change | del | show | prl | 6rd } [ NAME ]
    [ mode { ipip | gre | sit | isatap | vti } ] [ remote ADDR ] [ local ADDR ]
    [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]
    [ prl-default ADDR ] [ prl-nodefault ADDR ] [ prl-delete ADDR ]
    [ 6rd-prefix ADDR ] [ 6rd-relay_prefix ADDR ] [ 6rd-reset ]
    [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]
    Where: NAME := STRING
    ADDR := { IP_ADDRESS | any }
    TOS := { STRING | 00..ff | inherit | inherit/STRING | inherit/00..ff }
    TTL := { 1..255 | inherit }
    KEY := { DOTTED_QUAD | NUMBER }
  3. Um das GRE-Tunnelgerät (ohne Schlüssel) auf Ihrem Linux zu erstellen, führen Sie den folgenden Befehl aus:

    sudo ip tunnel add tun0 mode gre remote 33.33.33.33 local 22.22.22.22 dev ens18

    Hier sollten Sie die Parameter gemäß Ihren Einstellungen ändern:

    • 33.33.33.33 ist die öffentliche IP-Adresse der OPNsense WAN-Schnittstelle.
    • 22.22.22.22 ist die öffentliche IP-Adresse der Linux-WAN-Schnittstelle.
    • ens18 ist der WAN-Gerätename des Linux.
  4. Um eine IP-Adresse dem GRE-Tunnel-Interface zuzuweisen, führen Sie den folgenden Befehl aus:

    sudo ip addr add 11.11.1.2/30 dev tun0
  5. Um die GRE-Schnittstelle zu aktivieren, führen Sie den nächsten Befehl aus:

    sudo ip link set tun0 up
  6. Um das neu erstellte GRE-Tunnel-Interface unter Linux anzuzeigen, führen Sie den folgenden Befehl aus:

    ip addr show

    Sie sollten die Ausgabe ähnlich wie die unten Gegebene sehen:

    tun0@ens18: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue state UNKNOWN group default qlen 1000
    link/gre 22.22.22.22 peer 33.33.33.33
    inet 11.11.1.2/30 scope global tun0
    valid_lft forever preferred_lft forever
    inet6 fe80::5efe:c0a8:1e/64 scope link
    valid_lft forever preferred_lft forever

    Or run the next command:

    ip tunnel show
    gre0: gre/ip remote any local any ttl inherit nopmtudisc
    tun0: gre/ip remote 33.33.33.33 local 22.22.22.22 dev ens18 ttl inherit

Da es im GRE keinen Handshake gibt, spielt es keine Rolle, in welcher Reihenfolge Sie die Tunnelenden aktivieren. Es bedeutet auch, dass der Tunnel immer in einem von zwei Zuständen sein wird: DOWN oder UNKNOWN. Da ein GRE-Tunnel keinen Zustand hat, kann er auf einem Linux-Server niemals wirklich UP sein.

Führen Sie den folgenden Befehl auf Linux aus, wenn Sie den bestehenden GRE-Tunnel abbauen möchten:

sudo ip link set tun0 down
sudo ip tunnel del tun0

Was ist der Unterschied zwischen GRE- und IPsec-VPN-Tunneln?

GRE- und VPN-Tunnel sind beide Möglichkeiten, entfernte Netzwerke virtuell zu verbinden, aber jeder hat seine eigenen Vor- und Nachteile. Der größte Vorteil von VPNs ist, dass sie dem Site-to-Site-Verkehr eine sicherere Möglichkeit bieten, über das Internet zu kommunizieren, das ein öffentlicher Raum ist. Wenn der Datenverkehr über ein VPN-Tunnel gesendet wird, wird er verschlüsselt, aber wenn der Datenverkehr über ein GRE-Tunnel gesendet wird, wird er nur eingekapselt.

Durch die Verwendung einer VPN-Lösung kann ein Unternehmen all die folgenden Vorteile erhalten:

  • Kosteneinsparungen: Wenn Sie ein VPN über eine bestehende Internetverbindung nutzen, müssen Sie keine Leitungen von einem Telekommunikationsdienstanbieter mieten, um ein Weitverkehrsnetz aufzubauen. (WAN). Es kostet also weniger, ein VPN einzurichten, als ein traditionelles Mietleitungs-WAN. Eine VPN-Lösung hingegen erfordert, dass jede Site oder jeder mobile Benutzer, der sich mit dem VPN verbinden möchte, Zugang zum Internet hat.

  • Verschlüsselter Verkehr: VPNs können eine Vielzahl von Verschlüsselungsmethoden innerhalb des IPSec-Protokollrahmens verwenden, um den Datenverkehr zwischen einer Organisation und ihren entfernten Standorten oder Benutzern zu schützen. Secure Sockets Layer (SSL), der Verschlüsselungsstandard, der von vielen Online-Händlern, Bank-Websites und anderen internetbasierten Unternehmen verwendet wird, wird von einigen VPN-Installationen zur Datenverschlüsselung genutzt.

  • Einfache Netzwerkexpansion: Die meisten VPN-Verbindungen benötigen nur eine Internetverbindung, ein VPN-Gateway-Gerät und in einigen Fällen eine Softwareanwendung. Das Hinzufügen neuer Standorte und Remote-Nutzer zu einem VPN ist in der Regel günstiger und einfacher einzurichten als die Anbindung eines neuen Standorts an ein leased-line WAN.

Aber VPN-Tunnel haben einige Nachteile. Der Verkehr, der durch das Tunnel geleitet werden darf, muss in statischen Zugriffslisten aufgeführt sein, die auf dem neuesten Stand gehalten werden. Für größere Netzwerke kann dies ein langwieriger Prozess sein. Diskontinuierliche Subnetze erfordern separate Tunnel. Da VPNs keine routbaren Schnittstellen erstellen, können Sie einige Dinge auf VPN-Tunneln nicht tun, die Sie auf anderen Schnittstellen tun könnten. Außerdem lassen VPNs keinen Multicast-Verkehr durch, sodass Sie dynamische Routing-Protokolle wie RIP und OSPF über VPN nicht verwenden können.

GRE-Tunnel werden verwendet, um zwei Netzwerke Punkt-zu-Punkt zu verbinden, genau wie IPSec-VPNs. Einige der Vorteile von GRE-Tunneln sind wie folgt:

  • Datenkapselung: GRE-Tunnel umhüllen Pakete, die Protokolle verwenden, die mit einem Zwischen-Netzwerk nicht kompatibel sind (Passagierprotokolle), in Protokolle, die es sind (transport protocols). Dies ermöglicht es, Daten über Netzwerke zu senden, die zuvor nicht erreichbar waren. Sie könnten beispielsweise einen GRE-Tunnel verwenden, um zwei AppleTalk-Netzwerke über ein reines IP-Netzwerk zu verbinden oder IPv4-Pakete über ein reines IPv6-Netzwerk zu senden.

  • Einfachheit: Standardmäßig haben GRE-Tunnel keine Mechanismen zur Steuerung des Datenflusses oder zur Gewährleistung ihrer Sicherheit. Diese fehlenden Funktionen erleichtern die Einrichtung. Aber Sie möchten wahrscheinlich keine unverschlüsselten Daten über ein öffentliches Netzwerk senden. Aus Sicherheitsgründen können Sie die IPSec-Protokollsuite zu GRE-Tunneln hinzufügen, um Ihre Daten zu schützen. Außerdem können GRE-Tunnel Daten von Netzwerken, die nicht miteinander verbunden sind, durch einen einzigen Tunnel senden, was VPNs nicht können.

  • Multicast-Verkehrsweiterleitung: GRE-Tunnel können verwendet werden, um Multicast-Verkehr weiterzuleiten, aber ein VPN kann das nicht. Die Verwendung eines GRE-Tunnels erleichtert das Senden von Multicast-Verkehr wie Werbeanzeigen, die von Routing-Protokollen zwischen weit voneinander entfernten Standorten gesendet werden.

Aber GRE-Tunnel sind nicht sicher, da der Netzwerkverkehr nicht verschlüsselt ist.

Beide Protokolle haben zusätzliche Header, die die Pakete größer machen. Dies kann zu Paketfragmentierung führen, was das Netzwerk verlangsamt. Moderne Betriebssysteme verwenden TCP Path Maximum Transmission Unit Discovery (PMTUD), um automatisch herauszufinden, welches Paket das größte ist. Aber das User Datagram Protocol funktioniert nicht mit PMTUD. Die andere Option besteht darin, die MTU im Netzwerk manuell einzustellen, damit die IP-Fragmentierung außerhalb des Tunnels erfolgt.

Wenn Organisationen sicheres IP-Tunneling benötigen, sollten sie IPsec VPN verwenden. Sie sollten GRE verwenden, wenn sie mehrere Protokolle oder Multicast ohne Datenschutz tunneln müssen.

Viele Organisationen kombinieren VPNs und GRE-Tunnel, um die Sicherheit von VPNs ohne die Einschränkungen zu erhalten, die VPNs haben. So werden GRE über IPSec VPN-Tunnel eingerichtet. Dies ermöglicht es dem GRE-Tunnelverkehr, durch den VPN-Tunnel zu gehen und erstellt nur eine IPSec Assoziation, egal wie viele Subnetze überquert werden müssen. Es bietet auch eine Möglichkeit, Änderungen an der Routing-Tabelle zu senden.

Wenn sowohl GRE- als auch IPsec-Tunnel kombiniert werden, steigen die Kosten. Durch die Konfiguration eines GRE-Tunnels über einen IPsec-Tunnel können Organisationen sicher Pakete tunneln, die kein IP sind oder die an mehr als eine Person gesendet werden. Wenn beide Protokolle zusammen verwendet werden, steigt der Overhead.

KriterienGREIPsec
Steht FürGeneric Routing EncapsulationIP-Sicherheit
ZweckGRE ist ein Protokoll, das Pakete so kapselt, dass andere Protokolle über IP-Netzwerke gesendet werden können.Das IP-Sicherheitsprotokoll (IPsec) ist eine Reihe von Standards, um sicherzustellen, dass Informationen, die über IP-Netzwerke gesendet werden, privat, korrekt und echt sind.
VerwendungGRE wird verwendet, um IP-Pakete von einem Netzwerk zu einem anderen zu senden, ohne dass Router dazwischen sie lesen oder wie IP-Pakete behandeln.IPsec ESP wird verwendet, wenn IP-Pakete von einem System zu einem anderen gesendet werden müssen, während sie vor dem Ausspionieren oder Verändern geschützt werden.
ModiEinzelmodus - GRE-TunnelZwei Modi - Tunnelmodus und Transportmodus
Privatsphäre, Integrität und Authentizität der InformationenNicht unterstütztUnterstützt
KapselungKapselung der NutzlastTransportmodus - Nur die Nutzlast ist geschützt.
StandardGRE ist im RFC 2784 Standard definiertIPSEC ESP ist im RFC2406 definiert
Protokoll & PortGRE verwendet die IP-Protokollnummer 47IPSec verwendet ESP (IP-Protokollnummer 50) und AH (IP Protocol number 51). Zusätzlich verwendet IPSec IKE für Verhandlungen (UDP-Portnummer 500).
IP-Header4 zusätzliche IP-Header-BytesZusätzliche Bytes werden nicht verwendet.
Multicast-, Routing-Protokoll- und Routed-Protokoll-UnterstützungUnterstütztNicht unterstützt
EinfachheitEinfacher und schnellerKomplex

Tabelle 1. GRE-Tunnel vs IPsec-VPN-Tunnel