Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VPN i walka z routingiem ?

Doom 03 Cze 2012 11:38 1613 9
  • #1 03 Cze 2012 11:38
    Doom
    Poziom 18  

    Witam,

    ma problem z routingiem przy VPN -ie, zestawiłem tunel dodałem trasy niby działa ale linux nie chce przesłać dalej pakietów.

    W uproszczeniu całość wygląda tak:

    [LAN 10.0.20.0/24]---10.0.20.251
    |
    10.0.20.249 [R2- LAN ]
    10.7.0.6 [R2 - tun VPN] ifoconfig podaje 10.7.0.6 jako adres i 10.7.0.5 jako ptp
    ||
    10.7.0.1 [R1 tun VPN - server] ifconfig 10.7.0.1 jako adres a 10.7.0.2 jako ptp
    10.0.21.254 [R1 - tun LAN ]
    |
    [ LAN 10.0.21.0/24]---10.0.21.6


    Do tego niestety w obu sieciach jest jeszcze router dostępowy do neta. Niestety w jednej jest adsl a R1 - TP-link niema modemu adsl a w drugiej R2 jest serwerem z ESXI na którym jest linux.


    I teraz pierwszy problem:

    z R2 pinguje po dodaniu ip r a 10.0.21.0/24 via 10.7.0.5 wszystko w tej podsieci.

    z R1 po dodaniu ip r a 10.0.20.0/24 via 10.7.0.2 nie pinguje nic tak samo jak zmienię 10.7.0.2 na 10.7.0.1

    Drugi problem mimo że z R2 pinguje wszystko to z końcówki - 10.0.20.251 nie pinguje nic oprócz 10.7.0.6 tracert pokazuje że na 10.0.20.249 wszystko się kończy. Tcpdump pokazuje że ping z 10.0.20.249 dochodzi i jest przekazany do 10.7.0.6 ale jak robię tcpdump na R1 to ping nie dochodzi na 10.7.0.1.

    na obu linuxach mam ip_forwarding ustawione na 1.

    0 9
  • #2 04 Cze 2012 14:33
    mbo
    VIP Zasłużony dla elektroda

    Co robi za VPN i co jest ustawione w jego konfiguracji ?

    Wklej route -n z obu serwerów.

    0
  • #3 05 Cze 2012 08:43
    Doom
    Poziom 18  

    Code:


    [root@pld-VPN ~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    10.7.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
    10.0.20.0       10.7.0.2        255.255.255.0   UG    0      0        0 tun0
    192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
    10.7.0.0        10.7.0.2        255.255.255.0   UG    0      0        0 tun0
    0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0



    Code:

    [Doom@PLD Doom]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    10.7.0.1        10.7.0.5        255.255.255.255 UGH   0      0        0 tun0
    10.7.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
    10.0.20.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
    192.168.0.0     10.7.0.5        255.255.255.0   UG    0      0        0 tun0
    0.0.0.0         10.0.20.253     0.0.0.0         UG    0      0        0 eth0
    [Doom@PLD Doom]#



    Jedna z maszyn to PLD wirtualka na serwerze a druga to albo openWRT albo PLD (na początku było Openwrt ale było podejrzenie że właśnie coś jest skopane więc postawiłem drugą z PLD). Konfiguracja tunelu:

    Server:
    Code:

    [root@pld-rescue ~]# cat /etc/openvpn/tunel.conf
    dev tun
    mode server
    proto udp
    port 1973
    ca /etc/openvpn/certs/cacert.pem
    cert /etc/openvpn/certs/servercert.pem
    key /etc/openvpn/certs/serverkey.pem_bezhasla
    dh /etc/openvpn/certs/dh1024.pem
    server 10.7.0.0 255.255.255.0
    status /var/log/openvpnstatus.log
    keepalive 10 120
    comp-lzo
    cipher AES-128-CBC
    log /var/log/openvpn.log
    verb 6


    Klient

    Code:

    [Doom@PLD Doom]# cat /etc/openvpn/tunel.conf
    client
    proto udp
    port 1973
    remote adresservera.pl
    dev tun
    cert /etc/openvpn/certs/serverpcert.pem
    key /etc/openvpn/certs/serverpkey.pem
    ca /etc/openvpn/certs/cacert.pem
    auth-nocache
    cipher AES-128-CBC
    keepalive 10 120
    comp-lzo
    verb 6
    log /var/log/openvpn.log
    status /var/log/openvpnstatus.log
    resolv-retry infinite

    0
  • #4 05 Cze 2012 09:50
    mbo
    VIP Zasłużony dla elektroda

    Brakuje routingu do sieci 10.0.21.0/24

    0
  • #5 05 Cze 2012 17:33
    Doom
    Poziom 18  

    Wiem, zamiast 10.0.21.0/24 w tym momencie jest 192.168.0.0/24 . Kazda z sieci ma przed soba jeszcze router z dostepem do internetu. W przypadku 10.0.21.0 jest to router z podsiecia 192.168.0.0/24. Pominelem 10.0.21.0 aby wykluczyc jakis problem z routerem.

    0
  • #6 12 Cze 2012 16:58
    konradwo
    Poziom 10  

    Doom napisał:
    Wiem, zamiast 10.0.21.0/24 w tym momencie jest 192.168.0.0/24 . Kazda z sieci ma przed soba jeszcze router z dostepem do internetu. W przypadku 10.0.21.0 jest to router z podsiecia 192.168.0.0/24. Pominelem 10.0.21.0 aby wykluczyc jakis problem z routerem.


    nie bardzo wczytywałem się w routing - ale jeśli jest ok - to może trzeba zezwolić na forward ? - kolejna sugestia - to sprawdzić kwestie NATu - ruch między sieciami nie powinien być NATowany - nie wiem jak jest u Ciebie.

    Ogólnie - jak zestawisz tunele - to sprawdź routing, potem np. pingi - po kolei po całej trasie - od siebie, poprzez wszystkie kolejne adresy pośredniczące. jak ping nie wraca to znaczy że tam nie dociera - albo nie wiej jak wrócić - albo nie ma prawa do dotarcia i/lub powrotu. Następnie posprawdzaj iptables - uprawnienia na Input na interfejsach, na forward i na output - no i w ustawieniach interfejsów (/proc/sys/net/...) możliwość forwardu

    0
  • #7 12 Cze 2012 18:47
    Doom
    Poziom 18  

    Witam

    Problem był zupełnie gdzie indziej. Problemem był sam tunel spięty w trybie client - server. Spiąłem tunel w trybie serwer-serwer i wszystko poszło od tzw. "kopa" wpis do tabelu routingu i od razu ruszyło. Teraz mam jeszcze pytanie jak na sztywno w konfigu openvpn-a wpisać routing ? Po rozpięciu i spięciu tunelu muszę się logować po kolei i dorzucać routing jak i forwarding w iptables...

    0
  • #8 12 Cze 2012 19:01
    bogiebog
    Specjalista Sieci, Internet

    http://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html
    --client-connect script
    Run script on client connection. The script is passed the common name and IP address of the just-authenticated client as environmental variables (see environmental variable section below). The script is also passed the pathname of a not-yet-created temporary file as $1 (i.e. the first command line argument), to be used by the script to pass dynamically generated config file directives back to OpenVPN.

    If the script wants to generate a dynamic config file to be applied on the server when the client connects, it should write it to the file named by $1.

    See the --client-config-dir option below for options which can be legally used in a dynamically generated config file.

    Note that the return value of script is significant. If script returns a non-zero error status, it will cause the client to be disconnected.

    0
  • #9 12 Cze 2012 19:06
    konradwo
    Poziom 10  

    Doom napisał:
    Witam

    Problem był zupełnie gdzie indziej. Problemem był sam tunel spięty w trybie client - server. Spiąłem tunel w trybie serwer-serwer i wszystko poszło od tzw. "kopa" wpis do tabelu routingu i od razu ruszyło. Teraz mam jeszcze pytanie jak na sztywno w konfigu openvpn-a wpisać routing ? Po rozpięciu i spięciu tunelu muszę się logować po kolei i dorzucać routing jak i forwarding w iptables...


    co do routingu to np:
    push "route 192.168.0.0 255.255.255.0"

    albo skryptami przy podłączeniu - tru jest to w miarę opisane:

    http://ubuntuguide.org/wiki/OpenVPN_server

    0
  • #10 13 Cze 2012 08:09
    Doom
    Poziom 18  

    push nie zadziała, push działa przy połączeniu klient serwer. Testowałem :D Pytanie czy to wystarczy :

    Code:

    route 10.0.21.0 255.255.255.0
    route 192.168.0.0 255.255.255.0


    I jeszcze jedno macie może jakiś przykład takiego skryptu startowego ?

    Odpowiedź na moje pytanie.

    Wystarczy:

    Code:

    route 10.0.21.0 255.255.255.0 10.7.0.1
    route 192.168.0.0 255.255.255.0 10.7.0.1

    0
  Szukaj w 5mln produktów