Чи можливо на OS X замінити DHCP, призначені DNS-сервери, але все ж зберігати їх для резервного використання?


9

За замовчуванням я хотів би використовувати загальнодоступні сервери DNS google та відновлювати їх до інтрамережі, коли вони не вдається.

Чи можливо це? ... Я шукаю налаштування, яке б не порушилось, коли я переміщую свій ноутбук не в інші мережі.

Було б прийнятно, якби я знайшов рішення, специфічне для цього підключення до мережі Wi-Fi (робити трюк лише в цьому випадку та використовувати типові настройки для інших).


Що означає "коли сервери DNS google не працюють"? Існує маса способів скриптування зміни мережевого розташування та / або просто скриптування введення різних DNS, але не ясно, як би ви перевірили збій DNS google. Гірше, що коментар нижче про VPN ще більше ускладнить речі, якщо ви додасте їх до своїх вимог.
bmike

Я здивований, що це неможливо. У мене іноді сервери DNS, які мені подаються через DHCP, не вдається, тому я використовую сервіси Google. Однак зараз я не можу використовувати жодні мережі, які використовують DNS, для впровадження захопленого порталу. Якщо я міг би мати резервні сервери, що постачаються DHCP, це вирішило б це. Ви знайшли рішення?
Джейк

Відповіді:


4

Ви можете використовувати ipconfig getpacketдля пошуку сервера DNS, який рекомендував DHCP:

$ ipconfig getpacket en0 
...
domain_name_server (ip_mult): {192.168.3.2, 192.168.42.1}
...

Отже, якщо ви використовуєте Wi-Fiадаптер та його пристрій en0, ви можете:

#!/bin/bash

default_servers=$( ipconfig getpacket en0 | \
   perl -ne'/domain_name_server.*: \{(.*)}/ && print join " ", split /,\s*/, $1' )
networksetup -setdnsservers Wi-Fi 127.0.0.1 $default_servers

2

Так, ви можете додати сервери DNS Google у верхній частині списку і дотримуватися тих, які є своїми (інтранет-сервери).

  • Перейдіть до Налаштування системи> Мережа
  • Виберіть мережевий інтерфейс зі списку зліва
  • Натисніть кнопку Додатково праворуч
  • На вкладці DNS діалогового вікна натисніть "+", щоб додати або "-", щоб видалити записи (ви також можете редагувати записи, подвійним клацанням або вибором та натисканням на адресу)
  • Додайте адреси Google DNS як перші дві записи
  • Додайте свої Інтранет DNS-сервери нижче цих
  • Натисніть кнопку ОК
  • Натисніть Застосувати
  • Закрийте Налаштування системи

1
Я це знаю, але проблема полягає в тому, що це робить неможливим використання того ж VPN з іншого місця розташування. Це має бути іншим рішенням, можливо, щось налаштувати на сервері VPN (PPTP) або налаштувати DNS з адресою 127.0.0.1 та налаштувати локальний DNS, який все ще використовує надані DHCP сервери DNS.
sorin

1

Існує також спосіб зробити це з командного рядка, якщо ви мережевий адміністратор, який шукає спосіб зробити це в пакетному:

networksetup listallnetworkservices
# look for the correct network device here, probably "Wi-Fi"
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

Замініть "Wi-Fi" правильним мережевим пристроєм. Замість цього ви можете скористатися:

device=`networksetup listallnetworkservices | grep Wi-Fi`
sudo networksetup -setdnsservers "$device" 8.8.8.8 8.8.4.4

1

Я намагаюся зробити те саме. Я збираюся вручну запустити кеш-сервер dns на локальному рівні і дозволити йому вивчити інтранети під час приєднання.

Я схвильований, що сервер dns може навіть змогти розмежувати імена внутрішньої мережі та Інтернет, перш ніж робити рекурсивний виклик.

Я переживаю, що мені знадобляться або короткі TTL, або потрібно записати гачки, щоб кожен раз, коли змінювався інтерфейс, я вважав, що миє кеш-пам'ять dns, або подібний.

Я докладу звіт у разі успіху ...

Перші 50%

Переглянувши порівняння Вікіпедії серверів DNS , Dnsmasq потрапляє у верхню частину мого списку.

Виявляється, brewє форумла для dnsmasq, і навіть є якийсь servicesпідінтерфейс, написаний для brew... чудово, менше думати, просто треба опрацювати конфігурацію.

$ brew install dnsmasq  # [libidn] internation domain names
$ cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
# To have launchd start dnsmasq now and restart at startup:
$ sudo brew services start dnsmasq 

( brewтакож є bind, але мінімальний стан привабливий і для мене - не потрібно очищати це під час налаштування мережі).

Зробити

  • З'ясуйте налаштування мережевих налаштувань для використання моїх нових dns та
  • Налаштуйте, dnsmasqщоб переконатися, що він може використовувати параметри інтрамережі. (справжній виклик)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.