Moja firma ma VPN, z którym muszę się połączyć. W OSX robię to przy użyciu openvpn
następującej konfiguracji:
client
dev tun
proto udp
remote <GATEWAY_ADDRESS> <PORT>
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /Users/Tommy/.openvpn/dev/ca-dev.crt
cert /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.crt
key /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.key
ns-cert-type server
tls-auth /Users/Tommy/.openvpn/dev/ta-dev.key 1
cipher BF-CBC
comp-lzo
verb 3
auth-nocache
;daemon
;writepid openvpn.pid
W Ubuntu zainstalowałem network-manager-openvpn
i dodałem nowe połączenie VPN (próba zaimportowania pliku konfiguracji spowodowała awarię) z tymi samymi ustawionymi opcjami konfiguracji: Zrzuty ekranu z moich ustawień
Po połączeniu się z VPN nie mogę rozwiązać żadnych domen.
Jeśli dokonam edycji /etc/NetworkManager/NetworkManager.conf
, skomentuję wiersz dns=dnsmasq
i uruchomię ponownie network-manager
, mogę rozwiązać domeny wewnętrzne z mojej firmy, ale inne domeny, takie jak google.com, w ogóle nie zostaną rozwiązane. Upewniłem się, że ustawiłem „Metodę” na „Tylko adresy automatyczne (VPN)” na kartach IPv4 i IPv6 menedżera sieci dla mojego połączenia VPN, ale nie robi to żadnej różnicy.
Próbowałem również ponownie włączyć dnsmasq
i zmodyfikować, /etc/resolvconf/resolv.conf.d/base
aby zawierał nameserver 127.0.1.1
, a następnie działał sudo resolveconf -u
, ale wtedy żadne domeny nie zostaną ponownie rozwiązane.
Chciałbym móc połączyć się z moją siecią VPN, aby domeny wypychane przez serwer DNS mojej firmy zostały rozwiązane w ten sposób, a wszystkie inne domeny zostały rozwiązane normalnie.
EDYCJA: Okazuje się, że dnsmasq nie był właściwie zainstalowany, co myślałem, że będzie domyślnie. Niemniej jednak, jeśli go zainstaluję, włączę ponownie /etc/NetworkManager/NetworkManager.conf
, dodaj adres lokalnego serwera nazw /etc/resolvconf/resolv.conf.d/base
, uruchom ponownie wszystkie usługi i połącz się z VPN, mogę rozwiązać domeny z firmowego DNS, ale nie mogę rozwiązać żadnych innych domen. W zasadzie taka sama sytuacja jak wtedy, gdy całkowicie wyłączyłem dnsmasq.
EDYCJA: Zawartość /etc/dnsmasq.conf
: http://paste.ubuntu.com/7297231/
źródło
/etc/dnsmasq.conf
Odpowiedzi:
Z twojej konfiguracji twoja instalacja dnsmasq pobiera listę serwerów DNS, z których możesz korzystać
/etc/resolv.conf
. Domyślnie dnsmasq próbuje preferować używanie serwerów DNS, które są uruchomione, ale wyśle dane żądanie tylko do jednego serwera DNS. Może to powodować problemy, jeśli masz wiele serwerów DNS, które mogą / będą obsługiwać tylko niektóre zapytania.Wierzę, że możesz rozwiązać ten problem, upewniając się, że masz skonfigurowany serwer DNS w sieci LAN (ten, którego używasz, gdy nie masz połączenia z VPN)
/etc/resolv.conf
, a także serwer DNS w sieci firmowej, w której chcesz używać przez VPN.Następnie musisz edytować
/etc/default/dnsmasq
i dodawać lub edytowaćDNSMASQ_OPTS=
wiersz, który ma zostać dołączony--all-servers
.Jeśli nadal nie możesz uzyskać zapytań DNS przy tej konfiguracji, skopiuj plik resolv.conf utworzony podczas wykonywania powyższych kroków do innej lokalizacji, na przykład
~/resolv.conf
skonfiguruj/etc/resolv.conf
za pomocąnameserver 127.0.0.1
i ustaw następującą opcję w/etc/dnsmasq.conf
:To powinno skonfigurować twój system do wysyłania zapytań do twojej instalacji dnsmasq o DNS, a on z kolei użyje zarówno lokalnego serwera DNS, jak i serwera DNS VPN dla każdego zapytania.
Edycja : Możesz znaleźć serwery DNS, których obecnie używasz do określonego połączenia za pomocą
nmcli
narzędzia. Aby znaleźć serwery DNS używane przez moje połączenie bezprzewodowe, użyłem następującej składni:Jeśli uruchomisz to polecenie, gdy nie masz połączenia z siecią VPN, a następnie ponownie, gdy będziesz podłączony i będziesz w stanie rozwiązać adresy firmowe, powinieneś wyłączyć i włączyć listę serwerów DNS. Mam nadzieję, że to pomoże.
Edycja 2 : Patrząc na tabele routingu, wygląda na to, że administrator VPN skonfigurował Cię do kierowania całego ruchu przez VPN podczas połączenia (Twoja domyślna brama zmienia się na adres VPN). Ponieważ oba serwery DNS są adresami publicznymi i żaden z nich nie ma określonej trasy skonfigurowanej podczas połączenia z siecią VPN, próbujesz przeprowadzić normalne wyszukiwanie DNS za pośrednictwem sieci VPN i właśnie to kończy się niepowodzeniem.
W zależności od konfiguracji VPN możesz mieć kilka sposobów, aby to działało:
Jeśli VPN pozwoli ci na dostęp do Internetu za pośrednictwem sieci firmowej, ale nie będzie wykonywać zapytań DNS do serwerów w Internecie, dodaj trasy do serwerów DNS w następujący sposób:
sudo route add -host 83.255.245.11 gw 192.168.0.1
isudo route add -host 193.150.193.150 gw 192.168.0.1
po połączeniu z VPN.Jeśli VPN nie pozwoli ci na dostęp do Internetu za pośrednictwem sieci firmowej, musisz zmienić domyślne ustawienia bramy na komputerze, aby wskazywały na 192.168.0.1 po połączeniu z VPN. W takim przypadku należy skonfigurować zwykłą bramę domyślną, a następnie dodać trasy sieciowe, aby uzyskać dostęp do urządzeń tylko VPN.
Może być konieczne zmniejszenie tabeli routingu w przypadku połączenia z siecią VPN pokazanego na drugim pasku adresu w następujący sposób:
Następnie dodaj trasy zgodnie z potrzebami, aby uzyskać dostęp do sprzętu firmowego. W powyższej tabeli routingu założyłem sieć / 24 w sieci VPN, która może być niepoprawna. Musisz odpowiednio ustawić maskę.
źródło
nmcli
bez połączenia VPN potrafiłeś poprawnie rozwiązać DNS? Jeśli nie, należy rozłączyć się z VPN, upewnić się, że DNS działa poprawnie, a następnie uruchomićnmcli
.Istnieją pewne luki, których nie mogę wypełnić, związane ze sposobem, w jaki NetworkManager może koordynować za Ciebie. Spróbuję jednak wyjaśnić, jak muszą działać rzeczy, które koordynuje. Nie jest to idealna odpowiedź, ale mam nadzieję, że jest przydatna. W rzeczywistości, biorąc pod uwagę, że jest to stare pytanie, to naprawdę dotyczy potomności.
Prawdopodobnie nie chcesz korzystać z korporacyjnej sieci VPN, z wyjątkiem połączeń z siecią korporacyjną. W takim przypadku byłoby lepiej, gdyby Twoja konfiguracja VPN kierowała tylko odpowiednie zakresy sieciowe do sieci VPN i utrzymywała domyślną trasę wskazującą na router lokalny, jak poprzednio. Byłoby miło, gdyby firmy konfigurowały swoje sieci VPN tak, aby kierowały tylko ruchem lub sieciami, ale niestety wydaje się to rzadkie. Na szczęście możesz skonfigurować trasy w lokalnej konfiguracji.
To wciąż pozostawia potencjalny problem z DNS. Komentarze jtk123 na temat tego, co dnsmasq robi z DNS, nie są specyficzne dla dnsmasq - tak działa DNS. Jeśli klient DNS lub pośredni program tłumaczący otrzyma odpowiedź, że pozycja DNS nie istnieje, powrót do pytania o inny serwer DNS nie jest normalnym zachowaniem. Oznacza to, że potrzebujesz resolvera dns, który odpowie tak, jak chcesz, czy żądanie dotyczy sieci firmowej, czy nie.
Być może sieć Twojej firmy odpowiada na zapytania DNS związane z szerszym Internetem, w którym to przypadku po prostu z niego korzystasz, i prawdopodobnie jest to w porządku. W przeciwnym razie potrzebny jest lokalny serwer DNS, który przekazuje żądania domen powiązanych z firmą na ich serwer DNS i, w razie potrzeby, przekazuje inne żądania w innym miejscu.
dnsmasq może zostać poproszony o przekazywanie żądań dotyczących określonych domen do określonych wcześniejszych serwerów DNS. np. zobacz opcję --server zgodnie z opisem na stronie podręcznika dnsmasq.conf. Nie jestem jednak pewien, jak sprawić, by menedżer sieci dobrze się z tym bawił (o czym obecnie chcę się dowiedzieć).
źródło