Rechner unter VPN- und PPP-IP-Adresse erreichbar machen

30/10/2007 - 18:23 von Philipp v. Thunen | Report spam
Hallo,

ich habe hier einen Server (Debian Lenny) mit fester IP-Adresse via DSL,
z. B. 1.2.3.4 (Gateway 1.2.4.4). Dieser baut via OpenVPN einen
VPN-Tunnel auf und erhàlt dadurch eine weitere feste IP-Adresse, z. B.
2.3.4.5 (Gateway 2.3.5.5).

(Alle Adressen sind statisch und öffentlich routbar.)

Das Problem jetzt: Besteht die VPN-Verbindung und steht das default
gateway somit auf 2.3.5.5, kann der Rechner unter seiner eigentlichen
Adresse nicht erreicht werden, z. B. (apollon ist "außen"):

| philipp@apollon:~$ ping -a 1.2.3.4
| PING 1.2.3.4 (1.2.3.4) 56(84) bytes of data.
|
| 1.2.3.4 ping statistics
| 2 packets transmitted, 0 received, 100% packet loss, time 999ms

unter seiner VPN-Adresse jedoch schon.

Das Problem ist offenbar, dass die Antworten auf alle Anfragen über den
VPN-Tunnel laufen -- auch die Antworten für die 1.2.3.4, doch das ist ja
eigentlich nicht korrekt. Setze ich die default route auf 1.2.4.4, ist
das Phànomen logischerweise genau umgekehrt, die VPN-Adresse 2.3.4.5 ist
nicht nutzbar, die 1.2.3.4 jedoch schon.

Der langen Rede kurzer Sinn: Ich verstehe zwar, warum das so ist -- aber
wie kann ich es vermeiden, also erreichen, dass der Rechner unter beiden
Adressen erreichbar bleibt?

TIA,
-Philipp
 

Lesen sie die antworten

#1 Holger Marzen
30/10/2007 - 19:15 | Warnen spam
* On Tue, 30 Oct 2007 18:23:06 +0100, Philipp v. Thunen wrote:

ich habe hier einen Server (Debian Lenny) mit fester IP-Adresse via DSL,
z. B. 1.2.3.4 (Gateway 1.2.4.4). Dieser baut via OpenVPN einen
VPN-Tunnel auf und erhàlt dadurch eine weitere feste IP-Adresse, z. B.
2.3.4.5 (Gateway 2.3.5.5).

(Alle Adressen sind statisch und öffentlich routbar.)

Das Problem jetzt: Besteht die VPN-Verbindung und steht das default
gateway somit auf 2.3.5.5, kann der Rechner unter seiner eigentlichen
Adresse nicht erreicht werden, z. B. (apollon ist "außen"):



Du brauchst Policy Based Routing, das geht mit dem Kommando "ip" aus dem
Paket iproute. Beim Tunnel setzt du dann z.B. keine Defaultroute, so
dass die alte Defaultroute erhalten bleibt.

Für den Tunnel baust du eine 2. Routingtabelle mit Defaultroute über das
Tunnelinterface.

Nun brauchst du nur noch eine "Rule" (Regel), dass alle Pakete mit
Absenderadresse des Tunnelinterfaces die 2. Routingtabelle nutzen.

So ein openvpn-ip-up könnte lauten:

#!/bin/sh

TUN_DEV=$1
TUN_MTU=$2
LINK_MTU=$3
LOCAL_IP=$4
REMOTE_IP=$5
PREF00

IPROUTE2=/sbin/ip

$IPROUTE2 route add default dev ${TUN_DEV} table ${TUN_DEV}.out
$IPROUTE2 rule add from $LOCAL_IP table ${TUN_DEV}.out pref $PREF
$IPROUTE2 route flush cache

Ähnliche fragen