Dokumentation des GRE-Tunnel-Konfigurationsskripts
Übersicht
Dieses Bash-Skript konfiguriert einen GRE (Generic Routing Encapsulation)-Tunnel zwischen zwei IP-Adressen, richtet die Tunnel-Schnittstelle ein, weist eine IP-Adresse zu, aktiviert die Schnittstelle und erstellt Routing-Regeln für spezifische IP-Adressen.
Skript-Details
Variablendefinitionen
- INTERFACE: Name der GRE-Tunnel-Schnittstelle. Standard ist
gre1
. - LOCAL_IP: Lokale IP-Adresse des Hosts. Beispiel:
192.0.2.1
. - REMOTE_IP: Remote-IP-Adresse des Tunnelendpunkts. Beispiel:
203.0.113.1
. - TUNNEL_IP: Der Tunnel-Schnittstelle zugewiesene IP-Adresse. Beispiel:
198.51.100.2/30
. - SPECIFIC_IPS: Array von spezifischen IP-Adressen (letztes Oktett), für die Routing-Regeln erstellt werden. Beispiel:
(10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160)
. - PREFIX: Gemeinsames Präfix für die spezifischen IP-Adressen. Beispiel:
198.51.100.
. - DEFAULT_GATEWAY: Standard-Gateway-IP-Adresse für den Tunnel. Beispiel:
198.51.100.1
.
Befehle
-
Tunnel-Schnittstelle hinzufügen:
ip tunnel add $INTERFACE mode gre local $LOCAL_IP remote $REMOTE_IP ttl 255
- Erstellt eine GRE-Tunnel-Schnittstelle mit dem Namen
$INTERFACE
mit der lokalen IP$LOCAL_IP
, der Remote-IP$REMOTE_IP
und einer TTL von 255.
- Erstellt eine GRE-Tunnel-Schnittstelle mit dem Namen
-
IP-Adresse der Schnittstelle zuweisen:
ip addr add $TUNNEL_IP dev $INTERFACE
- Weist der GRE-Tunnel-Schnittstelle
$INTERFACE
die IP-Adresse$TUNNEL_IP
zu.
- Weist der GRE-Tunnel-Schnittstelle
-
Schnittstelle aktivieren:
ip link set $INTERFACE up
- Aktiviert die GRE-Tunnel-Schnittstelle
$INTERFACE
.
- Aktiviert die GRE-Tunnel-Schnittstelle
-
IP-Regeln für spezifische Adressen hinzufügen:
for i in "${SPECIFIC_IPS[@]}"; do ip rule add from $PREFIX$i table 20 prio 1 done
- Iteriert über das Array
SPECIFIC_IPS
und erstellt für jede IP eine Regel, um den Verkehr mit dieser Quell-IP über die Routing-Tabelle 20 mit Priorität 1 zu routen.
- Iteriert über das Array
-
Standardroute hinzufügen:
ip route add default via $DEFAULT_GATEWAY dev $INTERFACE table 20
- Fügt eine Standardroute über die GRE-Tunnel-Schnittstelle
$INTERFACE
unter Verwendung des Gateways$DEFAULT_GATEWAY
über die Routing-Tabelle 20 hinzu.
- Fügt eine Standardroute über die GRE-Tunnel-Schnittstelle
Nutzung
-
Variablen anpassen:
- Passen Sie die Variablenwerte nach Bedarf für Ihre spezifische Netzwerkkonfiguration an.
-
Skript ausführen:
- Führen Sie das Skript mit den entsprechenden Berechtigungen aus (z.B.
sudo ./script_name.sh
).
- Führen Sie das Skript mit den entsprechenden Berechtigungen aus (z.B.
Beispielkonfiguration
Hier ist eine Beispielkonfiguration mit den Beispielwerten:
- GRE-Schnittstelle: gre1
- Lokale IP: 192.0.2.1
- Remote-IP: 203.0.113.1
- Tunnel-IP: 198.51.100.2/30
- Spezifische IPs: 10 bis 160 (als letztes Oktett)
- Präfix: 198.51.100.
- Standard-Gateway: 198.51.100.1
Hinweise
- Stellen Sie sicher, dass das Paket
iproute2
auf Ihrem System installiert ist. - Das Skript erfordert Root- oder Superuser-Rechte.
- Passen Sie den TTL-Wert bei Bedarf an, um Ihren Netzwerkanforderungen zu entsprechen.
Automatisches Ausführen des Skripts nach einem Neustart
Um sicherzustellen, dass das Skript nach einem Neustart des Systems erneut ausgeführt wird, können Sie es in die Crontab des Systems eintragen oder einen systemd-Dienst erstellen.
Methode 1: Crontab
-
Öffnen Sie die Crontab des Root-Benutzers:
sudo crontab -e
-
Fügen Sie die folgende Zeile hinzu, um das Skript beim Systemstart auszuführen:
@reboot /pfad/zum/script_name.sh
Methode 2: systemd-Dienst
-
Erstellen Sie eine neue systemd-Dienstdatei:
sudo nano /etc/systemd/system/gre-tunnel.service
-
Fügen Sie den folgenden Inhalt hinzu:
[Unit] Description=GRE Tunnel Setup After=network.target [Service] Type=oneshot ExecStart=/pfad/zum/script_name.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target
-
Speichern Sie die Datei und schließen Sie den Editor.
-
Aktivieren Sie den Dienst, damit er beim Systemstart ausgeführt wird:
sudo systemctl enable gre-tunnel.service
-
Starten Sie den Dienst sofort:
sudo systemctl start gre-tunnel.service
Mit diesen Schritten wird sichergestellt, dass das GRE-Tunnel-Konfigurationsskript automatisch nach einem Systemneustart ausgeführt wird.