1

Temat: Tunel PPTP tylko LAN

Próbuję stworzyć tunel pomiędzy moją siecią LAN a drugim LANem w innej lokalizacji z routerem na DD-WRT (dlatego PPTP a nie OpenVPN). Nie chcę kierować przez tunel całego ruchu sieciowego a tylko "lokalny". Niestety tutoriale jakie znalazłem nie rozważają mojej sytuacji dlatego potrzebuję wskazówek.

Na docelowej lokalizacji z routerem DD-WRT konfiguruję serwer PPTP, połączam się do niego klientem na OpenWRT.

Moja sieć: 192.168.10.0/24
Sieć docelowa: 192.168.9.0/24 (routing na serwerze jest skonfigurowany dobrze)

Przed komendą ifup:

root@Gargoyle:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         89-76-252-1.dyn 0.0.0.0         UG    0      0        0 eth1
89.76.252.0     *               255.255.252.0   U     0      0        0 eth1
192.168.10.0    *               255.255.255.0   U     0      0        0 br-lan

Po połączeniu:

root@Gargoyle:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.9.1     0.0.0.0         UG    0      0        0 pptp-vpn
89.68.237.37    89-76-252-1.dyn 255.255.255.255 UGH   0      0        0 eth1
89.76.252.0     *               255.255.252.0   U     0      0        0 eth1
192.168.9.1     *               255.255.255.255 UH    0      0        0 pptp-vpn
192.168.10.0    *               255.255.255.0   U     0      0        0 br-lan

Po rozłączeniu:

root@Gargoyle:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
89.68.237.37    89.76.252.1     255.255.255.255 UGH   0      0        0 eth1
89.76.252.0     *               255.255.252.0   U     0      0        0 eth1
192.168.10.0    *               255.255.255.0   U     0      0        0 br-lan

Problem:
1. Po połączeniu cały ruch sieciowy kierowany jest przez tunel. Chcę żeby tylko i wyłącznie kierowane były tam pakiety przeznaczone do tamtej sieci (192.168.9.0/24).
2. Po rozłączeniu routing jest niepoprawny, tracę całkowicie dostęp do internetu.

Nie bardzo wiem jaki skrypt ustawia ten routing po połączeniu żeby to poprawić.
Używam obrazu Gargoyle PL 1.5.9.2 AA (r35228).

Mogłem źle skonfigurować firewall (?)

config zone
        option name 'vpn'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option masq '0'

config forwarding
        option src 'lan'
        option dest 'wan'

config forwarding
        option src 'lan'
        option dest 'vpn'

config forwarding
        option src 'vpn'
        option dest 'lan'
<br />
<b>Deprecated</b>:  htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in <b>/home/jackiewicz/domains/eko.one.pl/public_html/forum/include/functions.php</b> on line <b>17</b><br />

2

Odp: Tunel PPTP tylko LAN

defaultroute 0 w konfigu w sekcji pptp?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez theboo 2013-02-19 20:24:37)

Odp: Tunel PPTP tylko LAN

Ok, zmieniłem i działa.

root@Gargoyle:~# cat /etc/config/network
[...]
config interface 'vpn'
        option proto     'pptp'
        option username  '####'
        option password  '####'
        option server    '####.dyndns.org'
        option buffering '1'
        option auto '0'
        option defaultroute '0'

To jeszcze tylko przydałoby się żeby trasa do sieci zdalnej ustawiała się automatycznie.
Teraz mam po połączeniu:

root@Gargoyle:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         89-76-xxx-1.dyn 0.0.0.0         UG    0      0        0 eth1
89.68.xxx.37    89-76-xxx-1.dyn 255.255.255.255 UGH   0      0        0 eth1
89.76.xxx.0     *               255.255.252.0   U     0      0        0 eth1
192.168.9.1     *               255.255.255.255 UH    0      0        0 pptp-vpn
192.168.10.0    *               255.255.255.0   U     0      0        0 br-lan

a potrzebuję jeszcze trasę do 192.168.9.0/24 przez 192.168.9.1

--- edytowany ---

Ręcznie robię to tak:

root@Gargoyle:~# route add -net 192.168.9.0 netmask 255.255.255.0 gw 192.168.9.1 dev pptp-vpn
root@Gargoyle:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         89-76-xxx-1.dyn 0.0.0.0         UG    0      0        0 eth1
89.68.xxx.37    89-76-xxx-1.dyn 255.255.255.255 UGH   0      0        0 eth1
89.76.xxx.0     *               255.255.252.0   U     0      0        0 eth1
192.168.9.0     192.168.9.1     255.255.255.0   UG    0      0        0 pptp-vpn
192.168.9.1     *               255.255.255.255 UH    0      0        0 pptp-vpn
192.168.10.0    *               255.255.255.0   U     0      0        0 br-lan
<br />
<b>Deprecated</b>:  htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in <b>/home/jackiewicz/domains/eko.one.pl/public_html/forum/include/functions.php</b> on line <b>17</b><br />

4

Odp: Tunel PPTP tylko LAN

Ustaw sobie, możesz przecież trasy ustawiać statyczne. Lub po podniesieniu pptp ustawiaj ręcznie w skrypcie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Tunel PPTP tylko LAN

Witam, podepnę się do tematu bo mam problem z konfiguracją połączenia. Z konfiguracją klienta pod openvpn, w ogóle nie mogłem sobie poradzić (na windowsie nawet).

Moje połączenie wan wygląda następująco: modem adsl(192.168.1.1)->router openwrt pppoe(192.168.0.1).

Chciałbym podłączyć się jako klient do zewnętrznego serwera pptp, stojącego na debianie, aby móc streamować przez dlna obraz bezpośrednio na telewizor.

config interface 'vpn'
        option proto     'pptp'
        option username  'user'
        option password  'xxx'
        option server    'xxx'
        option buffering '1'
        option auto '0'
        option defaultroute '0'
        option 'pppd_options' 'mppe required,no40,no56,stateless'

route po połączeniu wygląda następująco

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         lodz-bg1.neo.tp 0.0.0.0         UG    0      0        0 pppoe-wan
adres serwera pptp     lodz-bg1.neo.tp 255.255.255.255 UGH   0      0        0 pppoe-wan
83.1.4.17       *               255.255.255.255 UH    0      0        0 pppoe-wan
192.168.0.0     *               255.255.255.0   U     0      0        0 br-lan
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0.2
192.168.10.1    *               255.255.255.255 UH    0      0        0 pptp-vpn

Przy takiej konfiguracji z poziomu routera adres 192.168.10.1 pinguję się bezproblemowo. Na komputerze podłączonym do routera nie znajduję hosta. Po dodaniu reguł do fw podanych przez użytkownika theboo, łączy się po czym zaraz rozłącza, czasem zdąży przed rozłączeniem jakiś ping przelecieć. Z tego co się domyślam to muszę inny interfejs w fw podać i zmienić trasę?

6

Odp: Tunel PPTP tylko LAN

logread zobacz co wypisuje po połączeniu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7 (edytowany przez Zarys 2013-02-15 07:51:56)

Odp: Tunel PPTP tylko LAN

Feb 15 07:44:49 Gargoyle daemon.info dnsmasq[16123]: reading /tmp/resolv.conf.auto
Feb 15 07:44:49 Gargoyle daemon.info dnsmasq[16123]: using nameserver 194.204.152.34#53
Feb 15 07:44:49 Gargoyle daemon.info dnsmasq[16123]: using nameserver 194.204.159.1#53
Feb 15 07:44:49 Gargoyle daemon.warn dnsmasq[16123]: ignoring nameserver 192.168.0.1 - local interface
Feb 15 07:44:49 Gargoyle daemon.info dnsmasq[16123]: using local addresses only for domain lan
Feb 15 07:44:53 Gargoyle daemon.info pppd[6769]: Using interface pptp-vpn
Feb 15 07:44:53 Gargoyle daemon.notice pppd[6769]: Connect: pptp-vpn <--> pptp (adres serwera)
Feb 15 07:44:57 Gargoyle daemon.notice pppd[6769]: CHAP authentication succeeded
Feb 15 07:44:57 Gargoyle daemon.notice pppd[6769]: MPPE 128-bit stateless compression enabled
Feb 15 07:44:57 Gargoyle daemon.notice pppd[6769]: local  IP address 192.168.10.234
Feb 15 07:44:57 Gargoyle daemon.notice pppd[6769]: remote IP address 192.168.10.1
Feb 15 07:44:57 Gargoyle daemon.notice pppd[6769]: primary   DNS address 192.168.10.1
Feb 15 07:44:57 Gargoyle daemon.notice pppd[6769]: secondary DNS address 192.168.10.1
Feb 15 07:44:57 Gargoyle daemon.notice netifd: Interface 'vpn' is now up
Feb 15 07:44:58 Gargoyle user.notice ifup: Enabling Router Solicitations on vpn (pptp-vpn)
Feb 15 07:44:59 Gargoyle user.info firewall: removing vpn (pptp-vpn) from zone vpn
Feb 15 07:45:00 Gargoyle user.info firewall: adding vpn (pptp-vpn) to zone vpn
Feb 15 07:45:06 Gargoyle daemon.info pppd[6769]: No response to 5 echo-requests
Feb 15 07:45:06 Gargoyle daemon.notice pppd[6769]: Serial link appears to be disconnected.
Feb 15 07:45:06 Gargoyle daemon.info pppd[6769]: Connect time 0.2 minutes.
Feb 15 07:45:06 Gargoyle daemon.info pppd[6769]: Sent 0 bytes, received 0 bytes.
Feb 15 07:45:06 Gargoyle daemon.info dnsmasq[16123]: reading /tmp/resolv.conf.auto
Feb 15 07:45:06 Gargoyle daemon.info dnsmasq[16123]: using nameserver 194.204.152.34#53
Feb 15 07:45:06 Gargoyle daemon.info dnsmasq[16123]: using nameserver 194.204.159.1#53
Feb 15 07:45:06 Gargoyle daemon.info dnsmasq[16123]: using nameserver 192.168.10.1#53
Feb 15 07:45:06 Gargoyle daemon.warn dnsmasq[16123]: ignoring nameserver 192.168.0.1 - local interface
Feb 15 07:45:06 Gargoyle daemon.info dnsmasq[16123]: using local addresses only for domain lan
Feb 15 07:45:06 Gargoyle daemon.err pppd[6769]: MPPE disabled
Feb 15 07:45:06 Gargoyle daemon.notice netifd: Interface 'vpn' has lost the connection
Feb 15 07:45:09 Gargoyle daemon.notice pppd[6769]: Connection terminated.
Feb 15 07:45:09 Gargoyle daemon.notice pppd[6769]: Modem hangup

i tak w kółko (z dodanymi wpisami do fw)

8

Odp: Tunel PPTP tylko LAN

daemon.info pppd[6769]: No response to 5 echo-requests

To może być problemem. W /etc/ppp/options zmień sobie lcp-echo-failure 5 na coś większego.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Tunel PPTP tylko LAN

Niestety zmiana na większą wartość nie pomogła. Coś musi być, źle z ustawieniami interfejsów. Bez edycji fw, połączenie się trzyma i można pingować z poziomu routera.

10 (edytowany przez theboo 2013-02-19 21:04:54)

Odp: Tunel PPTP tylko LAN

U mnie niestety nadal tunel nie działa jak powinien, ale wydaje mi się że wina leży po stronie serwera (DD-WRT).

Z routera-klienta mogę pingować normalnie sieć zdalną (.9.0/24) no ale to normalne bo przecież ma nadawane IP z tamtej sieci po połączeniu się. Niestety z podsieci klienckiej (.10.0/24) mogę pingować tylko router-serwer (192.168.9.1) ale już nie klientów po drugiej stronie:

C:\>ping 192.168.9.100

Badanie 192.168.9.100 z 32 bajtami danych:
Odpowiedź z 192.168.9.1: Host docelowy jest nieosiągalny.
Odpowiedź z 192.168.9.1: Host docelowy jest nieosiągalny.
Odpowiedź z 192.168.9.1: Host docelowy jest nieosiągalny.
Odpowiedź z 192.168.9.1: Host docelowy jest nieosiągalny.

Statystyka badania ping dla 192.168.9.100:
    Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0
             (0% straty),

route po mojej stronie (.10.0/24):

root@OpenWrt:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         89-76-xxx-1.dyn 0.0.0.0         UG    0      0        0 eth1
89.68.xxx.37    89-76-xxx-1.dyn 255.255.255.255 UGH   0      0        0 eth1
89.76.xxx.0     *               255.255.252.0   U     0      0        0 eth1
192.168.9.0     192.168.9.1     255.255.255.0   UG    1      0        0 pptp-vpn
192.168.9.1     *               255.255.255.255 UH    0      0        0 pptp-vpn
192.168.10.0    *               255.255.255.0   U     0      0        0 br-lan

route po stronie serwera pptp (.9.0/24):

root@DD-WRT:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.9.50    *               255.255.255.255 UH    0      0        0 ppp0
89.68.xxx.1     *               255.255.255.255 UH    0      0        0 vlan2
192.168.10.0    192.168.9.50    255.255.255.0   UG    1      0        0 ppp0
192.168.9.0     *               255.255.255.0   U     0      0        0 br0
89.68.xxx.0     *               255.255.252.0   U     0      0        0 vlan2
169.254.0.0     *               255.255.0.0     U     0      0        0 vlan2
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         89-68-xxx-1.dyn 0.0.0.0         UG    0      0        0 vlan2

Próbowałem kombinować z firewallem po mojej stronie, dodawać pptp to regułek lan, całkowicie przepuszczać cały ruch - zero różnicy. Więc chyba coś po stronie DD-WRT?

=== edycja ===

a może jednak to u mnie nadal coś nie tak...
z klienta mojej sieci pinguję normalnie router-serwer-pptp

C:\>ping 192.168.9.1

Badanie 192.168.9.1 z 32 bajtami danych:
Odpowiedź z 192.168.9.1: bajtów=32 czas=21ms TTL=63
Odpowiedź z 192.168.9.1: bajtów=32 czas=17ms TTL=63
Odpowiedź z 192.168.9.1: bajtów=32 czas=16ms TTL=63
Odpowiedź z 192.168.9.1: bajtów=32 czas=16ms TTL=63

Statystyka badania ping dla 192.168.9.1:
    Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0
             (0% straty),
Szacunkowy czas błądzenia pakietów w millisekundach:
    Minimum = 16 ms, Maksimum = 21 ms, Czas średni = 17 ms

ale w drugą stronę już nie działa... neutral

root@DD-WRT:~# ping 192.168.10.234
PING 192.168.10.234 (192.168.10.234): 56 data bytes

--- 192.168.10.234 ping statistics ---
19 packets transmitted, 0 packets received, 100% packet loss
root@DD-WRT:~# ping 192.168.10.156
PING 192.168.10.156 (192.168.10.156): 56 data bytes

--- 192.168.10.156 ping statistics ---
154 packets transmitted, 0 packets received, 100% packet loss
<br />
<b>Deprecated</b>:  htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in <b>/home/jackiewicz/domains/eko.one.pl/public_html/forum/include/functions.php</b> on line <b>17</b><br />