OS Xでは、DHCPで割り当てられたDNSサーバーをオーバーライドできますが、フォールバックのためにそれらを維持できますか?


9

デフォルトでは、GoogleパブリックDNSサーバーを使用し、これらが失敗したときにイントラネットサーバーにフォールバックしたいと思います。

これは可能ですか?...私はラップトップを他のネットワークに移動しても壊れないセットアップを探しています。

このWi-Fiネットワーク接続に固有のソリューションを見つけた場合は受け入れられます(この場合のみトリックを行い、他のユーザーにはデフォルトを使用します)。


「GoogleパブリックDNSサーバーに障害が発生した場合」とはどういう意味ですか?ネットワークロケーションの変更をスクリプト化する方法や、異なるDNSのエントリをスクリプト化する方法はたくさんありますが、Google DNSの失敗をテストする方法は明確ではありません。さらに悪いことに、VPNに関する以下のコメントは、それを要件の組み合わせに追加すると、事態をさらに複雑にします。
bmike

これが不可能だと驚いています。DHCPサーバー経由で提供されるDNSサーバーが時々あるので、Googleのサーバーを使用します。ただし、現在、DNSを使用してキャプティブポータルを実装するネットワークは使用できません。DHCPで提供されるサーバーをバックアップとして使用できれば、これは解決します。解決策を見つけましたか?
ジェイク

回答:


3

あなたは使用することができますipconfig getpacketDHCPが推奨DNSサーバーを見つけること:

$ 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

はい。リストの一番上にGoogle DNSサーバーを追加し、独自のサーバー(イントラネットサーバー)をフォローできます。

  • [システム環境設定]> [ネットワーク]に移動します
  • 左側のリストからネットワークインターフェイスを選択します
  • 右側の[ 詳細設定 ]ボタンをクリックします
  • ではDNSのダイアログのタブの追加、またはするために「+」をクリックし、「 - 」のエントリを削除するには(あなたはまた、ダブルクリックまたは選択し、アドレスをクリックしてエントリを編集することができます)
  • Google DNSアドレスを最初の2つのエントリとして追加します
  • イントラネットDNSサーバーをそれらの下に追加します
  • OKをクリック
  • 適用をクリックします
  • システム環境設定を閉じる

私はこれを知っていますが、問題は、これにより別の場所から同じVPNを使用することが不可能になることです。VPNサーバー(PPTP)で構成するか、127.0.0.1アドレスでDNSを構成し、DHCPが提供するDNSサーバーをまだ使用するローカルDNSを構成するなど、別のソリューションにする必要があります。
ソリン

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イントラネット設定を使用できるように構成します。(本当の挑戦)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.