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.