Hallo,
Na een hele tijd zwoegen is het me gelukt om een linux-server gekoppeld aan een intern netwerk (10.0.20.x) te configureren als IPSec/L2TP-server. Als IPSec-software gebruik ik OpenSWAN en de ingebouwde NETKEY 2.6-kernelmodule (dus niet KLIPS), en als L2TP-daemonsoftware gebruik ik rp-l2tp.
Na een hoop geprobeer (het is toch vreemd dat er eigenlijk nergens een duidelijk stappenplan is - de HOWTO van Jacco komt nog het dichtste bij maar laat toch nog veel aan de verbeelding over) is het me uiteindelijk gelukt om met een windows XP SP2-machine achter een lan (10.0.0.0/24) te connecten naar het public IP van de linuxserver, te authenticeren, etc etc.
Dit resulteert in een VPN-verbinding op mijn XP-machine waarbij mijn PC het adres 10.0.20.120 heeft, en vanuit waar ik het ppp0-adres op de server (de interface die L2TP voor de verbinding heeft aangemaakt, met als IP 10.0.20.100) en het gateway/hoofd-adres van hetzelfde interne LAN (10.0.20.1) kan pingen. Super, heel fijn. Tot zover is (HOOP IK) alles goed.
Maar. Wat ik natuurlijk wil is dat ik bij de machines kan die op het netwerk daar staan (dus het hele 10.0.20.0/24-subnet, bijvoorbeeld 10.0.20.2). En dit lukt me maar niet. Als ik een VPN-verbinding heb opgebouwd kan ik dus vanuit mijn machine thuis wel 10.0.20.1 pingen, en vanuit de fysieke machines in het LAN aldaar (dus als ik daar ben, dus vanuit bv 10.0.20.2), kan ik wel het IP-adres van de ppp0-iface pingen, maar niet mijn XP-pc thuis. Om het brak te illustreren:
Voor wie het nu nog duidelijk is (
): ik denk dus dat het aan de routing ligt dat ik niet bij het netwerk kan. En hier zit ik dus vast. Alle online helpteksten zeggen dus dat ik het hele 10.0.20.0/24-subnet via ppp0 (dus de vpn-interface) moet routen. Dus:
Maar aangezien dezelfde linux-server ook de internetgateway/dhcp/whatever-server is voor de machines op m'n werk, moet die route dus al gereserveerd zijn voor eth0 (zodra ik de route toevoeg aan ppp0 kunnen de fysieke PCs in de 10.0.20.0/24-range niets meer). Ik vraag me dus heel erg af hoe ik dit nu in 'shemelsnaam moet oplossen. Hieronder de relevante linux-output:
(Ja, eth4, er zitten nog een aantal meer netwerken achter de server. Dit is hiervoor echter niet relevant).
Dus. Ik hoop dat m'n verhaal enigszins te begrijpen is, en vooral dat iemand me hier mee kan helpen
Bij voorbaat dank!
Na een hele tijd zwoegen is het me gelukt om een linux-server gekoppeld aan een intern netwerk (10.0.20.x) te configureren als IPSec/L2TP-server. Als IPSec-software gebruik ik OpenSWAN en de ingebouwde NETKEY 2.6-kernelmodule (dus niet KLIPS), en als L2TP-daemonsoftware gebruik ik rp-l2tp.
Na een hoop geprobeer (het is toch vreemd dat er eigenlijk nergens een duidelijk stappenplan is - de HOWTO van Jacco komt nog het dichtste bij maar laat toch nog veel aan de verbeelding over) is het me uiteindelijk gelukt om met een windows XP SP2-machine achter een lan (10.0.0.0/24) te connecten naar het public IP van de linuxserver, te authenticeren, etc etc.
Dit resulteert in een VPN-verbinding op mijn XP-machine waarbij mijn PC het adres 10.0.20.120 heeft, en vanuit waar ik het ppp0-adres op de server (de interface die L2TP voor de verbinding heeft aangemaakt, met als IP 10.0.20.100) en het gateway/hoofd-adres van hetzelfde interne LAN (10.0.20.1) kan pingen. Super, heel fijn. Tot zover is (HOOP IK) alles goed.
Maar. Wat ik natuurlijk wil is dat ik bij de machines kan die op het netwerk daar staan (dus het hele 10.0.20.0/24-subnet, bijvoorbeeld 10.0.20.2). En dit lukt me maar niet. Als ik een VPN-verbinding heb opgebouwd kan ik dus vanuit mijn machine thuis wel 10.0.20.1 pingen, en vanuit de fysieke machines in het LAN aldaar (dus als ik daar ben, dus vanuit bv 10.0.20.2), kan ik wel het IP-adres van de ppp0-iface pingen, maar niet mijn XP-pc thuis. Om het brak te illustreren:
[ thuis ] PING-BEREIK
[10.0.20.120] -------------------------------|
[10.0.20.100] - [10.0.20.1]
[ ppp0 ] [ eth0 ]
|-----------------------------[10.0.20.2]
PING-BEREIK [ werk-pc ]
Voor wie het nu nog duidelijk is (
# route add -net 10.0.20.0/24 ppp0
Maar aangezien dezelfde linux-server ook de internetgateway/dhcp/whatever-server is voor de machines op m'n werk, moet die route dus al gereserveerd zijn voor eth0 (zodra ik de route toevoeg aan ppp0 kunnen de fysieke PCs in de 10.0.20.0/24-range niets meer). Ik vraag me dus heel erg af hoe ik dit nu in 'shemelsnaam moet oplossen. Hieronder de relevante linux-output:
# route -n 10.0.20.120 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 10.0.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 [extern adres] 0.0.0.0 255.255.255.248 U 0 0 0 eth4 0.0.0.0 [hoofdgateway] 0.0.0.0 UG 1 0 0 eth4
(Ja, eth4, er zitten nog een aantal meer netwerken achter de server. Dit is hiervoor echter niet relevant).
# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.0.20.100 P-t-P:10.0.20.120 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1400 Metric:1
RX packets:56 errors:0 dropped:0 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:5942 (5.8 Kb) TX bytes:1722 (1.6 Kb)
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:04:23:B8:81:34
inet addr:10.0.20.1 Bcast:10.0.20.255 Mask:255.255.255.0
inet6 addr: fe80::204:23ff:feb8:8134/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8417 errors:0 dropped:0 overruns:0 frame:0
TX packets:10653 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:885012 (864.2 Kb) TX bytes:2491229 (2.3 Mb)
Dus. Ik hoop dat m'n verhaal enigszins te begrijpen is, en vooral dat iemand me hier mee kan helpen
Bij voorbaat dank!