Mac OS X Mountain Lion - Розв’язання DNS використовує неправильний порядок VPN через комутований зв’язок


23

Я використовую MacBook з Mac OS X 10.8.2 і підключаюся до мережі моєї компанії через VPN. Все чудово працює при встановленні VPN-з'єднання через LAN або WLAN. Однак, коли я використовую комутований з'єднання (Huawei HSDPA USB Stick), імена хостів неправильно вирішені в додатках (наприклад, веб-браузері). Інструменти командного рядка, як-от host nameбуде правильно вирішити IP-адресу, ping nameне вирішать.

Використовуючи, scutil --dnsя скидав конфігурацію DNS під час підключення через WLAN та комутований номер. Існує помітна різниця в порядку пошуку:

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

З'єднання ppp0 - це з'єднання VPN. Як бачите, два сервери підключені і вони відповідають правильно в командному рядку та в додатках.

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

Цього разу ppp1 - це VPN-з'єднання, а ppp0 - з'єднання UMTS. З часу відповідей команд (використовуючи неіснуюче ім’я хоста foo.bar.local) я роблю висновок, що pingвикористовує першу ланцюжок розв'язувача, де як hostвикористовує конфігурацію діапазону запитів. pingпотрібно 5 секунд, щоб повернути "Невідомий хост", hostповертається негайно. Я припускаю, що ping запускається на 5 секунд таймауту розв’язувача mdns.

Для того, щоб виправити свою проблему зі зламаними підключеннями DNS під час набору номера через VPN через модем, мені потрібно змінити порядок розв’язувачів. Поки що я не знайшов способу зробити це.

Будь-які ідеї вітаються.

Відповіді:


7

У мене була така ж проблема і на моєму Mac, і після її виправлення я зрозумів, що її викликав FortiClient (VPN-клієнт). Навіть коли відключений FortiClient - це DNS все ще з'явився в скуті.

Рішення для мене було:

scutil
> list ".*DNS"

Це покаже вам список усіх конфігурацій DNS, який буде виглядати приблизно так:

subKey [0] = State:/Network/Global/DNS <br>
subKey [1] = State:/Network/MulticastDNS<br>
subKey [2] = State:/Network/OpenVPN/DNS<br>
subKey [3] = State:/Network/OpenVPN/OldDNS<br>
subKey [4] = State:/Network/PrivateDNS<br>
subKey [5] = State:/Network/Service/forticlientsslvpn/DNS <br>

Щоб перевірити виконання кожного з них: (поки ви не знайдете проблемного)

> get key_name
> d.show

… І виправити це:

> get key_name
> d.remove ServerAddresses
> set key_name

Ось як це виглядало на моїй машині:

> get State:/Network/Service/forticlientsslvpn/DNS 
> d.show
<dictionary> {
  ServerAddresses : <array> {
    0 : 192.168.30.6
    1 : 192.168.30.15
  }
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> d.remove ServerAddresses
> d.show
<dictionary> {
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> set State:/Network/Service/forticlientsslvpn/DNS
> exit

3

Спробуйте змінити порядок записів DNS на панелі налаштувань мережі:

  1. Відкрийте Налаштування системиМережа .

  2. Виберіть мережеву послугу у списку зліва.

  3. Розблокуйте панель налаштувань за допомогою блокування в нижньому лівому куті.

  4. Клацніть Додатково… та виберіть вкладку DNS .

  5. Змініть порядок серверів DNS, перетягуючи їх вгору / вниз.


2
Це не дає відповіді на запитання. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх публікацією - ви завжди можете коментувати свої власні публікації, і як тільки у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію .
гр

Це дивний коментар. Плакат не зазначив, чи намагався він це поставити у своєму питанні, і це може бути актуальним та простим рішенням його проблеми. Важко сказати, не використовуючи те саме налаштування.
дб

2
Як це сформульовано, воно пишеться як запит на роз'яснення - відповіді слід писати як відповіді; коментарі є найбільш підходящим місцем для запиту на роз'яснення. Ця відповідь була в черзі на огляд з низькою якістю, і, на мою думку, коментар щодо акцій видався найбільш підходящим. Дійсно, переформулювання цього питання у відповідь (і додавання деталей, таких як скріншоти та правильно відформатований список інструкцій) зробить це повноцінною і правомірною відповіддю.
гр

Це смішно. Ти Райман чи що? Це була відповідь, висловлена ​​пасивно і покірно (оскільки настільки очевидно, що людина, яка ставила це питання - який здався досить кваліфікованим - мабуть, спробував це, але просто забув згадати його у питанні). І якби ви самі спробували мої пропозиції, ви помітили б, що, швидше за все, не потрібно більше кроків, що виходять за рамки включених кроків (Системні налаштування -> Мережа), для когось такого досвідченого, як і ОП.
дб

Як я вже говорив, це просто моя думка. Я був не той, хто дорікав тебе. Я відредагував вашу відповідь, щоб включити більше подробиць про кроки. Не соромтеся відкатати редагування, якщо вважаєте, що це було недоречно.
гр

2

Я знайшов вирішення: ваш VPN DNS все одно буде ігноруватися, і буде використовуватися лише 3G-Dngle DNS, але тільки додавання VPN DNS до списку в інтерфейсі 3G робить фокус ... Основна проблема полягає в тому, що менеджер підключення 3G переробляє конфігурацію кожного разу ви натискаєте підключити, і вам потрібен диспетчер підключень, щоб увімкнути Радіо на 3G ключі ... тож я змішав обидва рішення в одному:

  1. Підключіться до VPN та запишіть свій DNS (у мене в списку є 2). Перевірити це можна на налаштуваннях мережі → Додатково → вкладка DNS. Відключіть VPN. Вам потрібно підключитися до VPN, оскільки DNS призначається динамічно після підключення ...

  2. Підключіться до свого 3G і зробіть те саме: запишіть DNS на папері. Потім відключіть 3G.

  3. Перейдіть до Мережевих налаштувань → натисніть інтерфейс 3G → Додатково → Вкладка DNS та під DNS-таблицею (яка зазвичай буде порожньою, оскільки ви не підключені) натисніть «+». Додайте всі DNS-сервери (спочатку з 3G, а потім додайте VPN пізніше). Клацніть ОК і застосувати.

  4. Відтепер , щоб підключитися до 3G, просто підключіть свій USB і зачекайте, поки у вас є покриття 3G (вам потрібно буде відкрити 3G менеджер підключення), але не використовуйте доданий менеджер підключення для підключення. І якщо він автоматично підключається, перейдіть до налаштувань і зніміть цей прапорець. Вам потрібно , що менеджер тільки щоб включити радіо на в USB Dongle, нічого іншого.

    Якщо ви натиснете на "підключити" на своєму 3G-менеджері, він перезаписає конфігурацію вашого інтерфейсу 3G і вам потрібно повторити крок 3 ще раз.

  5. Перейдіть до Мережі → Налаштування та натисніть інтерфейс 3G. Потім натисніть підключити. Він підключиться до вашого 3G за допомогою налаштованих серверів DNS (замість динамічно отриманих), які включають як "загальнодоступний" DNS, так і ваш VPN DNS.

  6. Підключіться до VPN. Він буде працювати, як очікувалося.

Просто майте на увазі, що:

  • Якщо ваш VPN DNS змінюється, його потрібно змінити вручну. Це можна легко перевірити в розділі Мережа → VPN інтерфейс w Розширений → вкладка DNS, оскільки ваш DNS VPN все ще динамічно призначається інтерфейсу (хоча ігнорується OS X).

  • Якщо ваш 3G DNS зміниться (навряд чи), вам також потрібно змінити його вручну. Якщо щось піде не так, і ви не можете перейти через ваш менеджер підключення 3G, натисніть «Підключитися» і подивіться, що DNS динамічно призначається… Це вимагатиме повернення до кроку 3 та його перенастроювання.


2

У мене було те саме питання давно, але тепер я встиг знайти рішення, яке працює для мене. Я не змінив порядок сервера DNS, але я постійно використовую DNS-сервер за VPN.

  1. Підключення через комутований номер.

  2. Підключіть VPN-з'єднання та скопіюйте IP-адреси сервера DNS та пошуковий домен із VPN Connection → Advanced → DNS.

  3. Відключіть VPN-з'єднання.

  4. Ping <name>або <hostname>вашого VPN-сервера та запишіть IP-адресу.

  5. Відключіть комутований з'єднання.

  6. Дублюйте комутований зв’язок (наприклад, назвіть його "3G для VPN").

  7. Введіть IP-адреси та пошуковий домен на вкладку DNS комутованого з'єднання. Вони будуть зберігатися та використовуватися постійно.

  8. Підключіться за допомогою нового комутованого з'єднання.

  9. Тепер у вас немає доступу до серверів імен (оскільки вони захищені VPN) - вам доведеться редагувати адресу сервера VPN-з'єднання. Замініть хост на IP.

  10. Підключіться через VPN-з'єднання, і ви зможете ним користуватися.

Примітка. Загалом імена хостів не змінюються, але IP-адреси можуть. Тож якщо колись це не працює, зробіть кроки знову ...


Привіт Олександре, це звучало як багатообіцяючий підхід. Однак мені не пощастило, хоча порядок dns резолюції виглядав досить добре. Доведеться ще раз перевірити наш ІТ.
користувач1248552

1

те, що ви сказали, дало мені підказку, тому я додав dns ip у vpn-з'єднання до списку dns в головному з'єднанні (нічого фантазійного, просто використовуючи графічний інтерфейс для мережевих налаштувань.) Я не впевнений, що ви мають справу з різними, але це працювало зі мною.


1

Це все ще відбувається в 10.13.0

Я відкрив звіт про помилки в Apple. Не нормально, що "ping Internalhostname" працює, але "host Internalhostname" або "nslookup Internalhostname" не вдається з розділеними тунелями VPN (на базі Cisco IPSec або IKEv2).

Крім того, як зауважили деякі, підключення Cisco IPsec, а також з'єднання IKEv2 не можуть мати пріоритет із "Встановити порядок обслуговування" на відміну від L2TP / IPsec, який може.

Ще один момент, який я хотів би підказати, - це те, що розділені тунелі VPN з Cisco IPSec або IKEv2 не показують жодних серверів DNS або пошукових доменів у своїх додаткових налаштуваннях, хоча ця інформація відображається з "scutil --dns". VPN-адреси L2TP / IPsec дійсно показують цю інформацію.

Щось потрібно дати, і Apple має дати пояснення / виправлення.


Я вважаю, що така ситуація зараз з macOS наприкінці 2017 року. Розділений DNS, який налаштовано на домен, не шанується. Я запускаю scutil --dnsкоманди вище, і здається, що DNS від VPN завжди останній і не використовується для пошукового домену, навіть якщо він правильно встановлений.
mcdado

0

Не працює в Lion / Mountain Lion, через помилку, через яку локальний DNS-сервер завжди використовується замість DNS-сервера віддаленої мережі, навіть коли розділений DNS коректно налаштований у маршрутизаторі VPN.

Однак якщо ви використовуєте маршрутизатор Cisco ASA IPSEC, ви можете змусити віддалені сервери DNS використовувати, коли встановлюєте VPN-з'єднання:

Якщо ви використовуєте Cisco ASDM, перейдіть до Конфігурація> Мережевий (клієнтський) доступ> Групова політика> (група vpn для OSX / iPhone)> Додатково> Спліт тунелювання

Там встановлено: Імена DNS (зніміть прапорець "успадкувати" та визначте внутрішні доменні імена dns, наприклад, myoffice.local) Відправити всі тунелі для пошуку DNS-каналів: встановлено значення ТАК (це важлива настройка)

Збережіть його і не забудьте зберігати у спалах для подальшого використання.

Якщо ви використовуєте командний рядок IOS, встановіть:

group-policy <your-tunnel-group-name> attributes
 split-dns value myoffice.local
 split-tunnel-all-dns enable`

-2

Ви можете це виправити, відкоригувавши порядок обслуговування мережевих з'єднань. Перемістіть VPN у верхній частині списку, і наступний порядок вирішення.

http://support.apple.com/kb/PH14006


Стаття тепер відпала.
Ніл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.