PBR (Policy Based Routing)

Aus Portunity Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (Änderungen von Mah@portunity (Diskussion) rückgängig gemacht und letzte Version von Ffa@portunity wiederhergestellt)
(Kurzes Beispiel unter Linux)
 
(Der Versionsvergleich bezieht 3 dazwischenliegende Versionen mit ein.)
Zeile 3: Zeile 3:
= Funktionsweise =
= Funktionsweise =
-
Normalerweise werden beispielsweise alle Pakete nach den Gleichen Regeln abgearbeitet diese Regeln finden sich in der Routingtabelle.
+
<p>
-
Wenn Sie jetzt aber mehrere Verbindungen zum Internet haben (wie z.b. Einen [http://www.portunity.de/s/10 VPN-Tunnel] und Ihren "normalen" Internetanschluss) kann nur einer davon als Standartroute ins Internet genutzt werden.
+
Normalerweise werden alle Pakete nach den gleichen Regeln abgearbeitet und über das selbe Default-Gateway geschickt.
-
In einigen fällen kann es sein das sie einen Server von außen erreichbar machen wollen (Route Über den Tunnel mit fester IP) aber nicht über diesen Tunnel ins Internet gehen möchten (also Route über Normalen Internet Anschluss).
+
Wenn Sie mehrere Verbindungen zum Internet haben (wie z.B. einen [https://www.portunity.de/s/6w VPN-Tunnel] und Ihren "normalen" Internetanschluss) kann nur einer davon als Standardroute ins Internet genutzt werden.
-
Hier kann PBR helfen. So können sie konfigurieren das alle Pakete die von der Tunnel-IP versendet werden auch durch den Tunnel geroutet werden.
+
Dies führt jedoch dazu, dass Pakete entweder aufgrund falscher Quell-Adressen vom jeweiligen Provider verworfen werden oder ein lokaler Router diese "falsch" NATet.
 +
</p>
 +
 
 +
<p>
 +
Hierfür kann PBR verwendet werden: Hierbei werden mehrere Routingtabellen angelegt, die unter Berücksichtigung der Quell-IP ausgewählt werden.
 +
Somit können Sie in der Haupt-Routingtabelle Ihr reguläres Default-Gateway über den normalen Internetzugang eingetragen lassen, Traffic mit Quell-Adresse des Tunnels jedoch in eine alternative Routingtabelle werfen, in der das Standardgateway auf den Tunnel zeigt.
 +
</p>
 +
 
 +
<p>
 +
Wichtig hierbei ist, dass Ihr Tunnel-Client nicht selbstständig das Default-Gateway ändert, denn dies würde weiterhin nur in der Haupt-Tabelle passieren.
 +
</p>
= Kurzes Beispiel unter Linux =
= Kurzes Beispiel unter Linux =
-
Auf einem Linux basierten System lässt sich dies beispielsweise so erreichen:
+
Auf einem Linux-basierten System lässt sich dies beispielsweise so erreichen:
-
* Eine neue Routingtabelle anlegen, die als Defaultroute da Tunnelinterface tun0 benutzt
+
* Eine neue Routingtabelle anlegen, die als Defaultroute das Tunnelinterface tun0 benutzt
<source lang="command">ip route add default table 10 dev tun0</source>  
<source lang="command">ip route add default table 10 dev tun0</source>  
<br>
<br>
* Routingregel hinzufügen, dass der Traffic von der Tunnel-IP ausgehend durch Routingtabelle 10 (und damit durch tun0) fließen soll.
* Routingregel hinzufügen, dass der Traffic von der Tunnel-IP ausgehend durch Routingtabelle 10 (und damit durch tun0) fließen soll.
-
<source lang="command">ip rule add from 188.246.5.8/32 to all prio 9999 table 10</source>  
+
<source lang="command">ip rule add from 188.246.x.x/32 to all prio 9999 table 10</source>  
<br>
<br>

Aktuelle Version vom 14:38, 8. Okt. 2025

Als PBR (Policy Based Routing) bezeichnet man eine Technik um IP-Pakete in Netzwerken anhand bestimmter Kriterien zu Routen.

Funktionsweise

Normalerweise werden alle Pakete nach den gleichen Regeln abgearbeitet und über das selbe Default-Gateway geschickt. Wenn Sie mehrere Verbindungen zum Internet haben (wie z.B. einen VPN-Tunnel und Ihren "normalen" Internetanschluss) kann nur einer davon als Standardroute ins Internet genutzt werden. Dies führt jedoch dazu, dass Pakete entweder aufgrund falscher Quell-Adressen vom jeweiligen Provider verworfen werden oder ein lokaler Router diese "falsch" NATet.

Hierfür kann PBR verwendet werden: Hierbei werden mehrere Routingtabellen angelegt, die unter Berücksichtigung der Quell-IP ausgewählt werden. Somit können Sie in der Haupt-Routingtabelle Ihr reguläres Default-Gateway über den normalen Internetzugang eingetragen lassen, Traffic mit Quell-Adresse des Tunnels jedoch in eine alternative Routingtabelle werfen, in der das Standardgateway auf den Tunnel zeigt.

Wichtig hierbei ist, dass Ihr Tunnel-Client nicht selbstständig das Default-Gateway ändert, denn dies würde weiterhin nur in der Haupt-Tabelle passieren.

Kurzes Beispiel unter Linux

Auf einem Linux-basierten System lässt sich dies beispielsweise so erreichen:

  • Eine neue Routingtabelle anlegen, die als Defaultroute das Tunnelinterface tun0 benutzt
ip route add default table 10 dev tun0


  • Routingregel hinzufügen, dass der Traffic von der Tunnel-IP ausgehend durch Routingtabelle 10 (und damit durch tun0) fließen soll.
ip rule add from 188.246.x.x/32 to all prio 9999 table 10


So sollten sie ihre Tunneladresse auch ohne die "redirect-gateway" Option in OpenVPN von außen erreichen können.

Um sich die PBR-Routingtabellen anzuzeigen, müssen Sie explizit immer die entsprechende Table anzeigen lassen. Dies geschieht mit

ip route list table 10

und

ip rule list

Beim Herunterfahren des tun0-Interfaces werden die Regeln übrigens nicht gelöscht sondern bleiben (inaktiv) erhalten. Es kann jedoch zu interessanten Problemen kommen, wenn PBR-Regeln zu inaktiven Geräten vorhanden sind, deswegen empfiehlt es sich die Regeln über die ifup- und ifdown-Scripte zu setzen resp. wieder zu löschen.

Persönliche Werkzeuge