Benutzer-Werkzeuge


Policy Based Routing

Normalerweise erfolgt das Routing auf Basis des Ziels (Destination). Es gibt jedoch auch viele Fälle wo man das Routing basierend auf der Quelle eines Paketes machen will. Oft hört man auch den Ausdruck 'Source Based Routing' dafür. Genau genommen ist das aber nur eine Teilmenge des 'Policy Based Routing'.

Das Prinzip ist recht einfach: man markiert in der Firewall (mangle/prerouting) die gewünschten Pakete und kann dann auf Basis dieser Markierung spezifische Routingtabellen laden.

Als Beispiel nehmen wir einen Gateway 192.168.50.1 mit seinem LAN 192.168.50.0/24. Dieser Gateway habe ein VPN Interface tun0 mit dem Subnetz 10.0.0.0/24, der Gateway selber hat 10.0.0.1 in VPN. Im VPN gibt es einen Client (10.0.0.10) hinter welchem sich ein öffentliches Netz (1.2.3.4/28) befindet. Das Ziel ist es für bestimmte Client im LAN den Traffic für dieses öffentliche Netz durch den VPN Tunnel zu jagen. Für alle anderen Sourcen soll dieser Traffic via default gw raus.

Als erstes müssen wir eine neue Routing Tabelle definieren

#/etc/iproute2/rt_tables
1 ovpn

Die Tabelle heisst also ovpn mit einer Metrik von 1

Dann müssen wir dieser Tabelle die entsprechende Firewallmarkierung zuweisen (in diesem Fall 2, Wert ist aber egal)

ip rule add fwmark 2 table ovpn

Dann generieren wir die Firewall Regel welche die Pakete markiert. Hier sollen Pakete des Admin-PC (192.168.50.55) markiert werden. Das LAN Interface ist eth2

iptables -t mangle -A PREROUTING -i eth2 -s 192.168.50.55 -j MARK --set-mark 2

Jetzt sollte auch klar werden wieso Source Based Routing nicht ganz korrekt ist. Die Firewall kann ja nach jedem beliebigen Kriterium markieren. Das muss nicht unbedingt etwas mit der Source zu tun haben.

Damit sind wir schon fast fertig, man muss nur noch der Routing Tabelle (ovpn) die passenden Routen hinzufügen

ip route add 1.2.3.4/28 via 10.0.0.10 dev tun0 table ovpn
Melden Sie sich an, um einen Kommentar zu erstellen.

Seiten-Werkzeuge