Po spędzeniu godzin na rozwiązywaniu problemów, przeszukiwaniu potencjalnych rozwiązań na tej stronie i innych, zrezygnowałem z błagania rad moich lepszych. Pracuję nad kierowaniem całego ruchu sieciowego na instancji Ubuntu przez Cisco VPN na uniwersytecie. Korzystając z wbudowanego menedżera sieci lub vpnc, mogę z powodzeniem ustanowić połączenie z VPN i mogę z powodzeniem kierować ruch do dowolnego uniwersyteckiego adresu IP przez VPN. Jednak poza tymi konkretnymi zakresami adresów IP nie mogę wyczarować żadnej trasy, która z powodzeniem zmapowałaby cały ruch sieciowy w sieci VPN.
Do tej pory próbowałem:
route add -net 0.0.0.0 gw homeportal dev tun tun0
Dodaj trasę -net 0.0.0.0 tun0
route add -net 0.0.0.0 gw 128.122.252.77 dev tun0
route add -net 0.0.0.0 gw 128.122.252.77 dev eth0
iptables -A DO PRZODU -o tun0 -j AKCEPTUJĘ iptables -A DO PRZODU -i tun0 -j AKCEPTUJĘ iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
I wiele innych głupich, nieskutecznych rzeczy, których nie pamiętam na tyle dobrze, aby dokładnie opisać.
Ponadto próbowałem przekierować mniejsze zakresy adresów IP i określone adresy IP, każdy bezskutecznie. Nie jestem do końca pewien, co się dzieje, ponieważ zakres efektów, które mogłem zaobserwować, to błędy w rozpoznawaniu nazw i błędy w kierowaniu ruchem przez VPN. Co robię tutaj źle?
Edytować-
Oto dane wyjściowe ip route show
po uruchomieniu połączenia VPN z VPNC:
domyślnie przez 192.168.1.254 dev eth0 proto static 10.0.0.0/8 dev tun0 link do zakresu 91.230.41.0/24 dev tun0 link do zakresu 128.122.0.0/16 dev tun0 link do zakresu 128.122.252.68 przez 192.168.1.254 dev eth0 src 192.168.1.32 128.122.253.46 dev tun0 link do zakresu 128.122.253.79 dev tun0 link do zakresu 172.16.0.0/12 dev tun0 link do zakresu 192.168.0.0/16 dev tun0 link do zakresu 192.168.1.0/24 dev eth0 proto jądro zakres link src 192.168.1.32 metryczny 1 193.175.54.0/24 dev tun0 link do zakresu 193.205.158.0/25 dev tun0 link do zakresu 193.206.104.0/24 dev tun0 link do zakresu 195.113.94.0/24 dev tun0 link do zakresu 203.126.200.0/24 dev tun0 link do zakresu 203.174.165.128/25 dev tun0 link do zakresu 212.219.93.0/24 dev tun0 link do zakresu 216.165.0.0/17 dev tun0 link do zakresu
Więcej informacji-
Z powodzeniem przekierowałem dowolny ruch przez VPN w MS Windows za pomocą klienta Cisco AnyConnect z domyślną konfiguracją. Oto jak wygląda tabela routingu, gdy działa klient AnyConnect (jest to inny komputer za tym samym routerem pod adresem 192.168.1.254).
Tabela tras IPv4 ================================================== ========================= Aktywne trasy: Metryka Interfejs sieci docelowej maski bramy 0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.13 30 10.0.0.0 255.0.0.0 192.168.128.1 192.168.128.197 2 91.230.41.0 255.255.255.0 192.168.128.1 192.168.128.197 2 127.0.0.0 255.0.0.0 Łącze internetowe 127.0.0.1 306 127.0.0.1 255.255.255.255 On-link 127.0.0.1 306 127.255.255.255 255.255.255.255 On-link 127.0.0.1 306 128.122.0.0 255.255.0.0 192.168.128.1 192.168.128.197 2 128.122.252.68 255.255.255.255 192.168.1.254 192.168.1.13 31 172.16.0.0 255.240.0.0 192.168.128.1 192.168.128.197 2 192.168.0.0 255.255.0.0 192.168.128.1 192.168.128.197 2 192.168.1.0 255.255.255.0 On-link 192.168.1.13 286 192.168.1.13 255.255.255.255 On-link 192.168.1.13 286 192.168.1.254 255.255.255.255 On-link 192.168.1.13 31 192.168.1.255 255.255.255.255 Łącze internetowe 192.168.1.13 286 192.168.31.0 255.255.255.0 On-link 192.168.31.1 276 192.168.31.1 255.255.255.255 On-link 192.168.31.1 276 192.168.31.255 255.255.255.255 Łącze 192.168.31.1 276 192.168.128.0 255.255.255.0 On-link 192.168.128.197 257 192.168.128.197 255.255.255.255 On-link 192.168.128.197 257 192.168.128.255 255.255.255.255 On-link 192.168.128.197 257 192.168.203.0 255.255.255.0 Łącze internetowe 192.168.203.1 276 192.168.203.1 255.255.255.255 Łącze internetowe 192.168.203.1 276 192.168.203.255 255.255.255.255 On-link 192.168.203.1 276 193.175.54.0 255.255.255.0 192.168.128.1 192.168.128.197 2 193.205.158.0 255.255.255.128 192.168.128.1 192.168.128.197 2 193.206.104.0 255.255.255.0 192.168.128.1 192.168.128.197 2 195.113.94.0 255.255.255.0 192.168.128.1 192.168.128.197 2 203.126.200.0 255.255.255.0 192.168.128.1 192.168.128.197 2 203.174.165.128 255.255.255.128 192.168.128.1 192.168.128.197 2 212.219.93.0 255.255.255.0 192.168.128.1 192.168.128.197 2 216.165.0.0 255.255.128.0 192.168.128.1 192.168.128.197 2 224,0.0.0 240,0,0,0 Łącze internetowe 127.0.0.1 306 224.0.0.0 240.0.0.0 Łącze 192.168.1.13 286 224.0.0.0 240.0.0.0 Łącze internetowe 192.168.203.1 276 224,0.0.0 240,0,0,0 Łącze internetowe 192.168.31.1 276 224,0.0.0 240,0,0,0 Łącze 192.168.128.197 10000 255.255.255.255 255.255.255.255 On-link 127.0.0.1 306 255.255.255.255 255.255.255.255 On-link 192.168.1.13 286 255.255.255.255 255.255.255.255 On-link 192.168.203.1 276 255.255.255.255 255.255.255.255 On-link 192.168.31.1 276 255.255.255.255 255.255.255.255 On-link 192.168.128.197 10000 ================================================== =========================
ip route
.ip route
poleceniu, nie spotkałem go wcześniej.Odpowiedzi:
Twoja sieć lokalna to 192.168.1.0/24, jak pokazuje ten wiersz w tabeli routingu:
Twoja sieć VPN to 10.0.0.0/8, jak pokazano w tym wierszu:
Obecnie domyślnym routerem jest:
czego oczywiście nie chcesz, ponieważ należy do lokalnej sieci LAN: w ten sposób wszystkie twoje rzeczy są kierowane przez lokalną bramę, tak jakby VPN nie istniał.
która jest drogą do twojego dostawcy VPN.
EDYTOWAĆ:
Nie zdawałem sobie sprawy, że tabela routingu jest po prostu tabelą uzyskaną z Twojej sieci VPN bez Twojej interwencji. Może to wskazywać (pośrednio), że twój usługodawca jest skłonny przekazywać tylko ruch wyraźnie dozwolony w twojej tabeli przez interfejs tun0, i mógł podjąć dalsze kroki w celu zablokowania całego innego ruchu, w takim przypadku twoje wysiłki będą daremne.
Jednak przy założeniu, że Twój dostawca jest skłonny przekazać cały Twój ruch, musisz wykonać następujące czynności.
Najpierw musisz dowiedzieć się, czy istnieje brama gotowa zaakceptować twoje połączenie po drugiej stronie, ponieważ potrzebujemy jego adresu IP. Dam ci cztery metody, aby to zrobić.
1) Po podłączeniu komputera do sieci VPN spróbuj wykonać następujące polecenie:
Jeśli wszystko pójdzie dobrze, powinieneś zobaczyć odpowiedź zawierającą ten wiersz:
xywz to adres IP lokalnej bramy. Być może będziesz musiał zamknąć VPN po tym teście, a może nawet zrestartować komputer, ponieważ całkiem dobrze popsuliśmy tablicę routingu.
2) Alternatywnie możesz spróbować przejść do jednej z dozwolonych witryn (tych, które pojawiają się w tabeli routingu jako przechodzące przez interfejs tun0 ), a następnie wydać polecenie:
Powinieneś otrzymać listę komputerów, z którymi należy się skontaktować za pośrednictwem protokołu ARP, z adresami MAC i IP; najprawdopodobniej otrzymasz zero lub jedną odpowiedź. Jeśli otrzymasz jedną odpowiedź, to jest to twój router.
3) Jeśli nie otrzymasz takiej odpowiedzi, możesz spróbować
(co będzie bardzo wolne). Twoja brama będzie jednym z wymienionych komputerów, najprawdopodobniej z adresem kończącym się na .1 lub .254, jeśli takie istnieją.
4) Użyj polecenia tcpdump:
i zobacz adresy IP wyrzucone przez polecenie.
Jeśli nie otrzymasz również właściwej odpowiedzi na ten test, oznacza to, że ktoś naprawdę dokręcił śruby w swojej sieci.
Ale bądźmy optymistami i załóżmy, że masz teraz kandydujący adres IP xwyz dla zdalnego routera. Musisz usunąć domyślną bramę (jako sudo!):
dodaj nowy:
i spróbuj nawigować.
Powtórzę: ponieważ twój dostawca zezwolił na ruch tylko do kilku wybranych adresów IP za pośrednictwem swojej sieci VPN, możliwe, że mógł podjąć dodatkowe środki (= zapora ogniowa), aby uniemożliwić inteligentnemu użytkownikowi wymuszenie ruchu ogólnego za pośrednictwem swojej sieci VPN. W takim przypadku nic nie możesz zrobić. Ale jeśli nie, powyższe kroki powinny pomóc ci znaleźć rozwiązanie.
źródło
ip addr show dev tun0
odczytu10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1412 qdisc pfifo_fast state UNKNOWN group default qlen 500 link/none inet 192.168.128.193/24 brd 192.168.128.255 scope global tun0 valid_lft forever preferred_lft forever
, bez obserwowanego adresu równorzędnego. Ponadto tabela routingu, którą opublikowałem wcześniej, w ogóle nie została przeze mnie zmodyfikowana - została wygenerowana całkowicie przez klienta VPN.route
We wszystkich twoich poleceniach brakuje masek sieciowych, więc pasują tylko do określonego0.0.0.0
adresu, a nie do całego Internetu. Więc zastąpić0.0.0.0
ze0.0.0.0/0
w pierwszym poleceniu próbowano:ip route add -net 0.0.0.0/0 gw homeportal dev tun0
Może istnieć jedno zastrzeżenie, którego nie jestem pewien, czy Twój klient VPN rozwiązuje się sam: punkt końcowy tunelu musi zostać wykluczony z trasy przez VPN, musi być trasowany przez twój
eth0
interfejs. Jeśli więc dodanie tej domyślnej trasy spowoduje uszkodzenie sieci VPN, dodaj określoną trasę dla punktu końcowego VPN:ip route add <ENDPOINT>/32 dev eth0
źródło
ip route
, nie? Ponadto, chociaż zawsze dobrym pomysłem jest dodawanieroute