[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ein kleines routing Problem



On Sun, 29 Mar 2015 14:13:00 +0200, Christian Wolf
<ChristianLupus@gmx.de> wrote:
>ich springe noch einmal rein, weil ich glaube das Problem gesehen zu haben.
>
>Kannst du den Client anpingen? Sprich sowohl 10.101.101.22 als auch (!) 
>10.101.2.253?
>
>>>>> ##### ip ro li
>>>>> default 	via 10.101.1.254 	dev eth0
>>>>> 10.100.0.0/16 	via 10.100.100.253 	dev vpn2boe
>>>>> 10.101.1.0/24 	dev eth0  proto kernel  	scope link  src 10.101.1.1
>>>>> 10.101.101.0/24 via 10.101.101.2 	dev tun0
>>>>> 10.101.101.2 	dev tun0  proto kernel  	scope link  src 10.101.101.1
>>>>> 10.101.102.0/24 dev vmbr0  proto kernel  	scope link  src 10.101.102.1
>>>>> 10.101.200.0/24 dev eth2  proto kernel  	scope link  src 10.101.200.1
>>>>> 239.0.0.0/8 	dev eth0  scope link
>>
>> Hier fehlt die Route für 10.101.2.0/24 oder eine Route, die dieses
>> Netz einschließt. Dein Server weiß nicht, dass Pakete für die
>> Wetterstation in den Tunnel müssen.
>>
>>> #######################################################################
>>> Ich dachte dem Server zu sagen das an dem VPN Client 10.101.101.22 ein
>>> Netz 10.101.2.0/24 hängt und der VPN Client ist dafür der Router, langt.
>>> #######################################################################
>>
>> Du sagst dem Server aber nicht, dass der VPN-Client für 10.101.2.0/24
>> der Router ist.
>
>Eine grundsätzliche Regel zum Routing:
>Eine Route sollte immer nur zum nächsten GW zeigen. Es macht also wenig 
>Sinn, dem Server zu sagen, dass 10.101.2.0/24 über 10.101.101.22 zu 
>erreichen ist. Siehe unten.

Ein Gateway muss immer direkt erreichbar sein, die von Dir
angesprochene Route zu 10.101.2.0/24 über 10.101.101.22 ist also nur
dann sinnvoll wenn das Gerät, das die Route hat, auch eine IP-Adresse
im gleichen Netz wie 10.101.101.22 hat. Das kann 10.101.101.0/24, aber
auch exemplarisch 10.101.101.16/28 sein.

>> ip ro add 10.101.2.0/24 dev tun0?
>> ip ro add 10.101.2.0/24 via 10.101.101.22 dev tun0?
>>
>> Wenn das nicht hilft, geht es nicht ohne OpenVPN, "route 10.101.2.0
>> 255.25.255.0" in der Konfiguration des Servers. An manchen Stellen
>> sitzt OpenVPN quer zum normalen Routing. Ja, das ist unlogisch und
>> häßlich.
>
>Nein, es ist logisch. Ob hässlich, kann man drüber streiten, das gebe 
>ich zu.

Ich finde das nicht logisch und ich hätte es vermutlich auch so
implementiert. Die zwei OpenVPN contributors, die ich persönlich
kenne, sehen das ähnlich ("historisch gewachsen").

>So jetzt zur Erklärung:
>Du verwendet OpenVPN mit tun Geräten. Lies dir man die Doku dazu durch. 
>Daran liegt nämlich vermutlich dein Problem. Es funktioniert so:
>Der Server legt ein Subnetz /30 für sich selbst und für jeden einzelnen 
>Client an. Das erste ist das Subnetz 10.101.101.0/30, das nächste 
>10.101.101.4/30 etc. In jedem Subnetz gibt es 4 IPs. Die mit dem selben 
>Offste haben immer die selbe Funktion:
>- Offset 0 (...0, ...4, ...20) beschrieben das Subnetz.
>- Offset 1 (...1, ...5, ...21) beschrieben die IP des jeweiligen Geräts.
>- Offset 2 (...2, ...6, ...22) beschrieben die IP des Tunnels. Die Route 
>auf dem Gerät muss über diesen P2P Tunnel laufen
>- Offset 3 (...3, ...7, ...23) ist der Broadcast in dem Subnetz.
>Intern bildet OpenVPN einen Router virtuell ab, der für den Server und 
>jeden Client einen Port hat. Das sind die P2P Tunnel-IPs (Offset 2).

Nichtsdestotrotz kann man (IIRC seit OpenVPN 2.1) die IP-Adressen der
Tunnelgegenstellen frei und insbesondere direkt aufeinanderfolgend
vergeben:

|[4/501]mh@torres:~$ grep -h "ifconfig-push" /etc/openvpn/client-config-dir/* | sort -n
|ifconfig-push 10.8.0.10 10.8.0.1
|ifconfig-push 10.8.0.11 10.8.0.1
|ifconfig-push 10.8.0.12 10.8.0.1
|ifconfig-push 10.8.0.128 10.8.0.1
|ifconfig-push 10.8.0.13 10.8.0.1
|ifconfig-push 10.8.0.14 10.8.0.1
|ifconfig-push 10.8.0.15 10.8.0.1
|ifconfig-push 10.8.0.16 10.8.0.1
|ifconfig-push 10.8.0.17 10.8.0.1
|ifconfig-push 10.8.0.18 10.8.0.1
|ifconfig-push 10.8.0.19 10.8.0.1
|ifconfig-push 10.8.0.27 10.8.0.1
|ifconfig-push 10.8.0.28 10.8.0.1
|ifconfig-push 10.8.0.30 10.8.0.1
|ifconfig-push 10.8.0.31 10.8.0.1
|[5/502]mh@torres:~$

Interessanterweise habe ich "topology subnet" nicht explizit
konfiguriert, und die manpage schweigt sich darüber aus, welche
Topologie in OpenVPN 2.3 der Default ist (ich verwende einen
Backport).

Grüße
Marc
-- 
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834


Reply to: