1 (edytowany przez jejek 2009-12-02 22:10:34)

Temat: Podstawy routingu - vpn4all ;-)

Witam!

Mam następującą sytuację: sieć w pracy (10.8.16.0/24), w niej laptopy z jedną kartą sieciową i WiFi (co wydaje mi się ważne ze względu na dostępność drugiego interfejsu sieciowego). Mamy dostęp do klienta przez "windowsowy wipien", co załatwiam pptp przez ppp i otrzymuję interfejs ppp0. Problem w tym, że jak ja mam połączenie to nikt inny nie ma. Wymyśliłem, że jak uruchomię forwardowanie pakietów a kolega doda regułkę routingu dla adresu klienta z bramką na mnie to zadziała. Ale tak się nie stało. :-(  Pomyślałem, że skoro to VPN to może daje czas życia pakietu tak mały, żebym tego nie posłał dalej i podbiłem TTL w następujący sposób:

root@sedes:~# iptables -F -t mangle
root@sedes:~# iptables -t mangle -I POSTROUTING -j TTL --ttl-set 255

Ale to też nie pomogło.
Teraz zaczynam podejrzewać, że router po stronie klienta ma w tablicy routingu tylko mój adres przydzielony do ppp0 a pakiety od kolegi lecą w powietrze (uwaga, kolega pinguje router po stronie klienta, więc nie jestem pewien tej hipotezy). Czy to oznacza konieczność uruchomienia maskarady na moim komputerze i skorzystania z WiFi do tego celu?

A teraz na obrazkach:
Docelowy host:  194.92.210.8
Router klienta:  194.92.210.170
mój adres ppp0:  194.92.210.171
mój adres eth0:  10.8.16.1  (dynamiczny, ale chodzi o przykład)
adres kolegi:  10.8.16.57
bramka domyślna w podsieci: 10.8.16.254

a routing jest taki:

root@sedes:~# route -nv
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
194.92.210.8    194.92.210.170  255.255.255.255 UGH   0      0        0 ppp0
194.92.210.170  0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
xx.xx.xx.xx    10.8.16.254     255.255.255.255 UGH   0      0        0 eth0
10.8.16.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         10.8.16.254     0.0.0.0         UG    0      0        0 eth0

Jak napisałem, ping z 10.8.16.57 do 194.92.210.170 dochodzi, dalej już nie, czyli ten router klienta wie jak odpowiedzieć (chyba).
Jak odczytać TTL przychodzących pakietów ? Bo jakieś odczytuję poleceniem ping, ale są to wartości
ttl=127  dla 194.92.210.8
ttl=64  dla  194.92.210.170

Proszę o jakieś podpowiedzi dotyczące rozwiązania, mogę podobną konfigurację sprawdzić w domu, gdzie mam większą kontrolę nad siecią (w pracy ustawianie ttl chyba wpływa na pracę urządeń sieciowych - switchy).

Zdrówko!

------------------------------------------------------

Jeszcze jedna sprawa, którą właśnie zauważyłem, jest różnica w odpowiedzi na pinga (mój komputer) :

root@sedes:~# ping 194.92.210.170
PING 194.92.210.170 (194.92.210.170) 56(84) bytes of data.
64 bytes from 194.92.210.170: icmp_seq=1 ttl=64 time=17.4 ms
64 bytes from 194.92.210.170: icmp_seq=2 ttl=64 time=18.1 ms
^C
--- 194.92.210.170 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1005ms
rtt min/avg/max/mdev = 17.472/17.815/18.158/0.343 ms
root@sedes:~# ping 194.92.210.8 
PING 194.92.210.8 (194.92.210.8) 56(84) bytes of data.
From 194.92.210.254: icmp_seq=1 Redirect Network(New nexthop: 194.92.210.8)
64 bytes from 194.92.210.8: icmp_seq=1 ttl=127 time=124 ms
From 194.92.210.254: icmp_seq=2 Redirect Network(New nexthop: 194.92.210.8)
64 bytes from 194.92.210.8: icmp_seq=2 ttl=127 time=21.7 ms

Ten docelowy host jest w jakiś sposób przekierowywany, ale nie potrafię tego zinterpretować.