GRE-Befehle fassen die wichtigsten Kommandos zum Einrichten und Prüfen von GRE-Tunneln zusammen. GRE (Generic Routing Encapsulation) kapselt beliebige Protokolle in ein äußeres IP-Paket (Protokollnummer 47); konfiguriert wird es auf Cisco-Routern im Schnittstellen-Modus und auf Linux über die iproute2-Werkzeuge ip und ip tunnel.

Cisco IOS: GRE-Tunnel anlegen

interface Tunnel0
 ip address 10.0.0.1 255.255.255.252
 tunnel source GigabitEthernet0/1
 tunnel destination 203.0.113.2
 tunnel mode gre ip
 ip mtu 1400
 ip tcp adjust-mss 1360
end

Der Befehl interface Tunnel0 legt die Tunnel-Schnittstelle an; tunnel source und tunnel destination bestimmen die äußeren Endpunkte (Quell-Interface beziehungsweise Ziel-IP). tunnel mode gre ip stellt GRE über IPv4 ein (Standard). Weil GRE 24 Byte Overhead über IPv4 erzeugt, senkt man die ip mtu ab und passt mit ip tcp adjust-mss die TCP-Segmentgröße an — sonst fragmentiert der Verkehr.

Linux: GRE mit iproute2

sudo ip tunnel add gre1 mode gre local 192.0.2.1 remote 198.51.100.2 ttl 255
sudo ip addr add 10.0.0.1/30 dev gre1
sudo ip link set gre1 up
ip tunnel show

ip tunnel add erzeugt die Tunnel-Schnittstelle gre1, local/remote sind die Tunnelendpunkte. Danach bekommt das Interface eine Adresse und wird aktiviert; ip tunnel show listet alle Tunnel. Fehlt die MTU-Anpassung, kann der Datendurchsatz durch Fragmentierung stark einbrechen.

Verifikation und Fehlersuche

show interface tunnel 0
show ip interface brief | include Tunnel
ping 10.0.0.2 source 10.0.0.1

show interface tunnel 0 zeigt, ob der Tunnel up/up ist und ob Keepalives ankommen. GRE selbst verschlüsselt nicht — wer die Daten schützen will, kombiniert den Tunnel mit IPsec (GRE-over-IPsec), wie es DMVPN automatisch tut.

Verwandte Grundlagen: DMVPN-Befehle, IP-in-IP-Befehle, IP-Tunnel, VPN, BGP-Befehle.