openvpn metric … ich bin verwirrt.

Von | 6. Februar 2009

OpenVPN fehlt meiner Meinung nach eine Art [[Split Horizon]]. Ich hatte bisher immer ein Problem. Läuft mein OpenVPN Client immer, also auch wenn ich meinen Computer zu Hause betreibe, so gerät das Routing durcheinander. Zu Hause benutze ich das 172.16.1.0/24 Netz. Fürs VPN 172.16.3.0/24. Verbindet sich nun mein Client auch zu Hause mit meinem Server per OpenVPN so sieht die Routing Tabelle bei mir wie folgt aus:

Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
172.16.1.0      0.0.0.0         255.255.255.0   U     1      0        0 eth0
172.16.1.0      172.168.3.1     255.255.255.0   UG    1      0        0 tap1
172.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 tap1
0.0.0.0         172.16.1.1      0.0.0.0         UG    0      0        0 eth0

Wie man sieht, soll das lokale Netz plötzlich über das VPN erreichbar sein. Dieses ist aber wiederum über das lokale Netz angebunden. Deadlock!

Bisher habe ich das „einfach“ gelöst. Ich habe auf meinem VPN-Server den entsprechenden Port von Innen gesperrt und so das VPN verhindert. Jetzt ist aber alles anders. Mein VPN läuft auf Port 443 und darauf sollen auch der Apache per https antworten. Daher setze ich nun OpenVPN 2.1 mit Port-Share ein. Soweit so gut. Dank meiner Konfiguration konnte ich aber den HTTPS Server von Innen nicht erreichen. Blöd! Also musste der Filter wieder weg. Damit nun aber meine Routing Tabellen nicht wieder kaputt gehen bzw. unlogisch werden habe ich die Metric entsprechend in der OpenVPN.conf auf meinem Server geändert:

push route 172.16.1.0 255.255.255.0 vpn_gateway 150

Was zu der folgenden Routingtabelle führt:

Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
172.16.1.0      0.0.0.0         255.255.255.0   U     1      0        0 eth0
172.16.1.0      172.168.3.1     255.255.255.0   UG    150    0        0 tap1
172.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 tap1
0.0.0.0         172.16.1.1      0.0.0.0         UG    0      0        0 eth0

Damit kommt der Client nicht auf die Idee, das lokale Netz über das VPN erreichen zu wollen. Also alles in bester Ordnung.

Warum bin ich aber nun verwirrt? Ich zitiere mal man route:

 
Metric The  ’distance’ to the target (usually counted in hops). 
  It is not used by recent kernels, but may be needed by routing daemons.

Ist der Kommentar so alt, oder wer kümmert sich um die Metric? Aber Hauptsache es funktioniert jetzt.

Ein Gedanke zu „openvpn metric … ich bin verwirrt.

  1. Jan

    Hallo Gerd,

    das mit der Metric ist eine einfache Sache die sich unabhängig von der „route“ manpage erläutern lässt. Der Metric liegt wie bereits geschrieben die Reichweite in Hops zugrunde. Sie legt leitet das statische Path-routing und nimmt für jedes Netz unabhängig vom Default Gateway das entsprechende Interface mit der niedrigsten Metric um das Netz zu erreichen.

    Logisch betrachtet ist dies nicht verkehrt da die Round Trip Time (RTT) somit am niedrigsten gehalten wird (naja soweit in der Theorie ;]).

    Besten Gruß
    Jan

    Antworten

Schreibe einen Kommentar

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