Używam MacBooka z systemem Mac OS X 10.8.2 i łączę się z siecią mojej firmy przez VPN. Wszystko działa świetnie podczas nawiązywania połączenia VPN przez sieć LAN lub WLAN. Jednak gdy używam połączenia telefonicznego (Huawei HSDPA USB Stick), nazwy hostów nie są poprawnie rozpoznawane w aplikacjach (np. Przeglądarce internetowej). Narzędzia wiersza polecenia, takie jak host name
poprawnie rozpoznają adres IP, ping name
nie zostaną rozpoznane.
Używając scutil --dns
Zrzuciłem konfigurację DNS podczas łączenia przez sieć WLAN a połączenie telefoniczne. Istnieje znacząca różnica w kolejności wyszukiwania:
connecting using WLAN:
resolver #1
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 6 (ppp0)
reach : Reachable,Transient Connection
order : 100000
resolver #2
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 6 (ppp0)
reach : Reachable,Transient Connection
order : 200000
resolver #3
domain : local
options : mdns
timeout : 5
order : 300000
resolver #4
domain : 254.169.in-addr.arpa
options : mdns
timeout : 5
order : 300200
resolver #5
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300400
resolver #6
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300600
resolver #7
domain : a.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300800
resolver #8
domain : b.e.f.ip6.arpa
options : mdns
timeout : 5
order : 301000
DNS configuration (for scoped queries)
resolver #1
nameserver[0] : 192.168.1.1
if_index : 4 (en0)
flags : Scoped
reach : Reachable,Directly Reachable Address
resolver #2
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 6 (ppp0)
flags : Scoped
reach : Reachable,Transient Connection
Połączenie ppp0 to połączenie VPN. Jak widać, dwa serwery są połączone i odpowiadają poprawnie w wierszu poleceń i aplikacjach.
Connecting via UMTS:
resolver #1
nameserver[0] : 139.7.30.126
nameserver[1] : 139.7.30.125
if_index : 6 (ppp0)
reach : Reachable,Transient Connection
order : 100000
resolver #2
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 7 (ppp1)
reach : Reachable,Transient Connection
order : 100000
resolver #3
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 7 (ppp1)
reach : Reachable,Transient Connection
order : 200000
resolver #4
domain : local
options : mdns
timeout : 5
order : 300000
resolver #5
domain : 254.169.in-addr.arpa
options : mdns
timeout : 5
order : 300200
resolver #6
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300400
resolver #7
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300600
resolver #8
domain : a.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300800
resolver #9
domain : b.e.f.ip6.arpa
options : mdns
timeout : 5
order : 301000
DNS configuration (for scoped queries)
resolver #1
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 7 (ppp1)
flags : Scoped
reach : Reachable,Transient Connection
resolver #2
nameserver[0] : 139.7.30.126
nameserver[1] : 139.7.30.125
if_index : 6 (ppp0)
flags : Scoped
reach : Reachable,Transient Connection
Tym razem ppp1 to połączenie VPN, a ppp0 to połączenie UMTS. Z czasów odpowiedzi poleceń (przy użyciu nieistniejącej nazwy hosta foo.bar.local
) wnioskuję, że ping
używa pierwszego łańcucha resolvera, gdzie podobnie jak host
konfiguracja zapytania o zasięgu. ping
powrót „Unkown host” zajmuje 5 sekund, host
natychmiast wraca. Zakładam, że ping działa z 5-sekundowym limitem czasu resolvera mdns.
Aby rozwiązać mój problem z uszkodzonymi zapytaniami DNS podczas wybierania numeru przez VPN przez modem, muszę zmienić kolejność resolverów. Do tej pory nie znalazłem sposobu na zrobienie tego.
Wszelkie pomysły są mile widziane.
Znalazłem obejście: Twój VPN DNS będzie nadal ignorowany i będzie używany tylko DNS-3G 3G, ale samo dodanie DNS VPN do listy pod interfejsem 3G rozwiązuje problem… Główny problem polega na tym, że menedżer łączności 3G zastępuje konfigurację za każdym razem klikasz połącz i potrzebujesz menedżera łączności, aby włączyć Radio w kluczu 3G… więc zmieszałem oba rozwiązania w jednym:
Połącz się z VPN i zapisz DNS (mam 2 na liście). Możesz to sprawdzić w Preferencjach sieciowych → Zaawansowane → zakładka DNS. Odłącz VPN. Musisz połączyć się z VPN, ponieważ DNS jest przydzielany dynamicznie po połączeniu…
Połącz się z 3G i zrób to samo: napisz DNS na papierze. Następnie odłącz 3G.
Przejdź do Preferencji sieciowych → kliknij interfejs 3G → Zaawansowane → Karta DNS, a pod tabelą DNS (która zwykle będzie pusta, gdy nie będziesz podłączony) kliknij „+”. Dodaj wszystkie serwery DNS (najpierw 3G, a następnie VPN później). Kliknij OK i Zastosuj.
Odtąd , aby połączyć się z 3G, wystarczy podłączyć USB i poczekać, aż uzyskasz zasięg 3G (musisz otworzyć menedżera łączności 3G), ale nie używaj dostarczonego menedżera połączeń do połączenia. A jeśli łączy się automatycznie, przejdź do preferencji i usuń zaznaczenie tego tiku. Trzeba, że menedżer tylko włączyć radia na na USB Dongle, nic innego.
Jeśli klikniesz „Połącz” w menedżerze 3G, zastąpi on konfigurację w interfejsie 3G i musisz powtórzyć krok 3.
Przejdź do Sieć → Preferencje i kliknij interfejs 3G. Następnie kliknij Połącz. Połączy się z 3G za pomocą skonfigurowanych serwerów DNS (zamiast dynamicznie odbieranych), które obejmują zarówno „publiczny” DNS, jak i VPN DNS.
Połącz się z siecią VPN. Będzie działać zgodnie z oczekiwaniami.
Pamiętaj tylko, że:
Jeśli twoja VPN VPN ulegnie zmianie, musisz ją zmienić ręcznie. Można to łatwo sprawdzić w opcji Sieć → Interfejs VPN w zakładce Zaawansowane → DNS, ponieważ Twój VPN DNS jest nadal dynamicznie przypisywany do interfejsu (chociaż ignorowany przez OS X).
Jeśli Twój DNS 3G zmieni się (mało prawdopodobne), musisz go również zmienić ręcznie. Jeśli coś pójdzie nie tak i nie możesz się poruszać, musisz przejść przez menedżera łączności 3G, kliknąć „Połącz” i zobaczyć, które DNS są dynamicznie przypisywane… Będzie to wymagać powrotu do kroku 3 i ponownej konfiguracji.
źródło
Przez długi czas miałem ten sam problem, ale teraz miałem czas, aby znaleźć rozwiązanie, które będzie dla mnie odpowiednie. Nie zmieniłem kolejności serwera DNS, ale używam serwera DNS za VPN na stałe.
Połącz przez dial-up.
Połącz połączenie VPN i skopiuj adresy IP serwera DNS i domenę wyszukiwania z Połączenia VPN → Zaawansowane → DNS.
Rozłącz połączenie VPN.
Ping
<name>
lub<hostname>
serwera VPN i zanotuj adres IP.Odłącz połączenie dial-up.
Zduplikuj połączenie telefoniczne (np. Nadaj mu nazwę „3G dla VPN”).
Wprowadź adresy IP i domenę wyszukiwania na karcie DNS połączenia telefonicznego. Będą przechowywane i używane na stałe.
Połącz przez nowe połączenie dial-up.
Teraz nie masz dostępu do serwerów nazw (ponieważ są one chronione przez VPN) - musisz edytować adres serwera połączenia VPN. Zastąp hosta adresem IP.
Połącz przez połączenie VPN i powinieneś być w stanie z niego korzystać.
Uwaga: Ogólnie nazwy hostów się nie zmieniają, ale adresy IP mogą. Jeśli więc kiedyś nie zadziała, wykonaj ponownie czynności…
źródło
to, co powiedziałeś, dało mi podpowiedź, więc dodałem ip dns w połączeniu VPN do listy dns w głównym połączeniu (nic szczególnego, tylko za pomocą interfejsu graficznego dla preferencji sieci.) Nie jestem pewien, czy to, co ty Radzenie sobie jest inne, ale zadziałało ze mną
źródło
Dzieje się tak nadal w 10.13.0
Otworzyłem raport o błędach w Apple. Nie jest normalne, że „ping nazwa_hosta” działa, ale „nazwa hosta hosta” lub „nazwa hosta nslookup” kończy się niepowodzeniem w przypadku VPN dzielonych tuneli (opartych na Cisco IPSec lub IKEv2).
Ponadto, jak niektórzy zauważyli, połączenia Cisco IPsec, a także połączenia IKEv2, nie mogą być traktowane priorytetowo za pomocą „Ustaw zlecenie usługi”, w przeciwieństwie do L2TP / IPsec, które mogą.
Kolejną kwestią, którą chciałbym poruszyć, jest to, że VPN Cisco IPSec lub IKEv2 z tunelem podzielonym nie wyświetlają żadnych serwerów DNS ani domen wyszukiwania w swoich ustawieniach zaawansowanych, nawet jeśli te informacje są wyświetlane z „scutil --dns”. VPN L2TP / IPsec pokazuje te informacje w porządku.
Coś musi dać, a Apple musi wyjaśnić / naprawić.
źródło
scutil --dns
komendy wyżej i wydaje się, że DNS z sieci VPN jest zawsze ostatni, i nie są wykorzystywane do domeny internetowej, nawet jeśli zostanie prawidłowo ustawione.Nie działa w Lion / Mountain Lion z powodu błędu, który powoduje, że lokalny serwer DNS jest zawsze używany zamiast serwera DNS w sieci zdalnej, nawet jeśli Split DNS jest poprawnie skonfigurowany w routerze VPN.
Jeśli jednak używasz routera Cisco ASA IPSEC, możesz wymusić używanie zdalnych serwerów DNS przy każdym ustanowieniu połączenia VPN:
Jeśli używasz Cisco ASDM, przejdź do Konfiguracja> Dostęp do sieci (klienta)> Zasady grupy> (Twoja grupa VPN dla OSX / iPhone'ów)> Zaawansowane> Podział tunelowania
Ustaw: Nazwy DNS (odznacz „dziedzicz” i zdefiniuj wewnętrzne nazwy domen dns, np. Myoffice.local) Wyślij wszystkie wyszukiwania DNS przez tunel: Ustaw na TAK (jest to ważne ustawienie)
Zapisz go i nie zapomnij przechowywać w pamięci flash do wykorzystania w przyszłości.
Jeśli używasz wiersza polecenia IOS, ustaw:
źródło
Możesz to naprawić, dostosowując kolejność usług połączeń sieciowych. Przenieś VPN na początek listy, a nastąpi kolejność resolvera.
http://support.apple.com/kb/PH14006
źródło