, , , , , , , , , , , , , , , , , ,

GRE Tunnel erstellen in Linux – IPv4 und IPv6

Posted by

0
(0)

Herzlich Willkommen!

Zu einen weiteren Tutorial meiner Netzwerk Reihe 🙂 In der letzten Zeit ist der Bedarf nach mehr Wissen und Informationen zum Thema GRE Tunnel deutlich gestiegen. Das freut mich sehr wenn ich euch dabei helfen kann. Nun, in den letzten Monaten habe ich viel darüber berichtet und auch war dies besonders mit Noez.de verbunden. Heute aber werden wir lernen, wie wir selbst einen GRE Tunnel erstellen und aufbauen. Natürlich auch mit Netzwerk Konfigurationen.

1. So erstellen wir den GRE Tunnel

Im Endeffekt werden wir bei Server A, der den GRE Tunnel eröffnet, die zugewiesenen IPv4 oder IPv6 Adressen dem GRE Tunnel zuweisen und routen. Zudem werden wir auch Proxy Arp auf allen Interfaces aktivieren damit das Routing optimal funktioniert. Auch IPv4 und IPv6 Forward muss für Server A aktiviert sein.

				
					# Auf Server A
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
echo 1 > /proc/sys/net/ipv6/conf/default/proxy_ndp

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf

sudo sysctl -p
				
			

Mit diesen Befehlen erlauben wir allen Interfaces das nutzen von Proxy Arp und erlauben das Weiterleiten unserer Statischen IPv4 sowie IPv6 Adressen.

1.2 GRE Tunnel für IPv4 Aufbau

				
					# Auf Server-A Seite
sudo ip link add gre1 type gre local Server-A-IPv4 remote Server-B-IPv4 ttl 255
# Hier könnt Ihr das Internal Subnet individuell anpassen
sudo ip addr add 10.10.0.1/30 dev gre1
sudo ip link set gre1 up
				
			
				
					# Auf Server-B Seite
sudo ip link add gre1 type gre local Server-B-IPv4 remote Server-A-IPv4 ttl 255
# Hier könnt Ihr das Internal Subnet individuell anpassen
sudo ip addr add 10.10.0.2/30 dev gre1
sudo ip link set gre1 up
				
			
				
					# Überpüfe jetzt ob beide Seiten sich anpingen können

# Auf Server A
ping -4 10.10.0.2

# Auf Server B
ping -4 10.10.0.1
				
			

Sollten beide Seiten Pingen und somit erreichbar sein untereinander, so ist der Tunnel Aufbau mit Erfolg erledigt 🙂

1.3 GRE Tunnel für IPv6 Aufbau

Gerade für IPv6 Only Server kann das Modul ip6gre genutzt werden um somit auch nur einen Tunnel Aufbau über IPv6 Adressen zu erstellen.

				
					# Auf Server A
ip tunnel add gre1 mode ip6gre local Server-A-IPv6 remote Server-B-IPv6 ttl 255
sudo ip -6 addr add fd58:fe09:eaed:5e82::1/64 dev gre1
ip link set gre1 up
				
			
				
					# Auf Server B
ip tunnel add gre1 mode ip6gre local Server-B-IPv6 remote Server-A-IPv6 ttl 255
sudo ip -6 addr add fd58:fe09:eaed:5e82::2/64 dev gre1
ip link set gre1 up
				
			
				
					# Überpüfe jetzt ob beide Seiten sich anpingen können

# Auf Server A
ping -6 fd58:fe09:eaed:5e82::2

# Auf Server B
ping -6 fd58:fe09:eaed:5e82::1

# Wenn der Ping erfolgreich war ist der Tunnel Aufbau über IPv6 erfolgreich gewesen
				
			

2. Jetzt die ersten IPv4 Adressen routen

				
					# Auf Server A
# Beachtet das die jeweilige IP nicht zuvor auf eth0 etc. geaddet ist auf Server A
sudo ip route add 45.130.x.y/32 dev gre1
				
			
				
					# Auf Server B
# Wir setzen unseren Internal Gateway auf Table 10
sudo ip route add default via 10.10.0.1 dev gre1 table 10
sudo ip route add 45.130.x.y/32 dev gre1
sudo ip rule add 45.130.x.y table 10
sudo ip addr add 45.130.x.y/32 dev gre1
				
			

Bitte prüft also folgendes:

1. Pingt die Statische IPv4 Adresse auch im Öffentlichen Internet aus?

2. Könnt Ihr gegebenfalls Ports erreichen z.B SSH (22)?

3. Ist auch die IPv4 Adresse intern wenn man diese bei Server A Pingt z.B ping -4 45.130.x.y pingbar?

Wenn der erste Punkt bei der Checkliste nicht funktioniert, so muss hierfür wirklich Proxy Arp auf allen Interfaces aktiviert sein. Der Befehl wurde dazu weiter oben erläutert.

3. Jetzt IPv6 Adressen routen

				
					# Auf Server A
sudo ip -6 route add fd58:fe09:xxxx:yyyy::100 dev gre1
# Bitte ersetzt alle IP-Adressen Beispiele, jeweils zu euren Öffentlichen IP-Adressen
				
			
				
					# Auf Server B
sudo ip -6 route add default via fd58:fe09:eaed:5e82::1 dev gre1 table 10
sudo ip -6 route add fd58:fe09:xxxx:yyyy::100 dev gre1
sudo ip -6 rule add from fd58:fe09:xxxx:yyyy::100 table 10
sudo ip addr add fd58:fe09:xxxx:yyyy::100 dev gre1
				
			

Fertig! 🙂 Jetzt sollte auch die Öffentliche IPv6 Adresse im Internet erreichbar sein und auf Server B verweisen. So einfach kann man also einen selbst erstellen GRE Tunnel routen und sogar auch Statische IPv4 und IPv6 Adressen hin und her routen.

Hier sind noch Hilfreiche Tipps

Damit wir reibungslos unsere Internen IPv6 Adressen generieren können, bietet sich folgender IPv6 Generator als gute Hilfe.

Ich biete Hilfe an und helfe gerne bei Problemen und das auch Kostenlos.

Zumeist mache ich die Meetings dann über Discord: rawnetworks – Einfach als Freund adden

Oder für Terminabsprache via Email: [email protected]

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert