(バグ?)DNS接続時に、DNSプロファイルで設定したDNSサーバを利用しない

バージョン10.15.6(Catalina)を利用中  ※バージョン10.14.6(Mojave)でも同じ現象を確認


1。ネットワーク環境設定>新規インターフェイス作成にて、以下のパラメタを入れてVPNインターフェイスを作成

●インターフェイス:VPN

●VPNタイプ: IKEv2


2。サーバアドレス、リモートID、ローカルIDを設定

3。認証設定>認証設定のプルダウンから「なし」を選択、共有シークレットを設定、OKをクリック

4。詳細>DNSサーバで社内のDNSサーバを指定、OKをクリック

5。適用をクリックし、VPNインターフェイスの作成を完了

6。接続をクリックし、正常にVPN終端装置(VPNサーバ)に接続できることを確認。

7。IPアドレスを指定したウェブ通信ができることを確認

8。FQDNで指定したウェブ通信ができない不具合を確認

9。「scutil --dns」、および「/var/run/resolv.conf」では、上記4で指定したDNSサーバの設定が反映されていることを確認。(期待どおり)

10。以下のコミュニティサイトを参考に、上記で作成したVPNインターフェイス>詳細>検索ドメインにて、社内のドメインを入力、OKをクリック、適用をクリック

https://community.spiceworks.com/topic/696734-vpn-on-a-mac-cannot-resolve-name

11。「/var/run/resolv.conf」では、上記10で設定した内容が正しく表示されていることを確認。(期待どおり)

12。digで社内サーバを引いても、上記4で指定したDNSサーバを参照していないことを確認。(不具合)


<考察>

「scutil --dns」、および「/var/run/resolv.conf」の表示上は問題ないが、実際には動作していない。

Mac OSの不具合では?


<ワークアラウンド>

求む・・・Any idea?




MacBook Air 13″, macOS 10.15

投稿日 2020/09/08 00:56

返信

類似の質問

返信: 24

2020/09/09 05:19 しょうこさん への返信

> ネットワークは、IPv4のみ


今では、ないというのはありえないです。いくらユーザがipv4のみで繋いでるつもりでも、ipv6は自動で設定されてます。fqdnがグローバルで通用するものなら、ipv6のdns名前解決で(vpnを経由せずに)通信先としてファイアウォールの外側にいってしまってる可能性があると思います。

今時なら、インターネットに接続すれば、ipv6のアドレスを必ず取ります。そもそも日本の通信回線そのものがipv6で運用されてます。光でインターネットに繋いでればipv6のネットワークに繋がってます。この影響を避けるにはipv6の設定をリンクローカルにしておく必要があります。

ipv6の設定をリンクローカルにしてもダメなら、vpnの構成がすべてのtrafficをvpnに向けてない設定になってるためと思われます。

2020/09/10 04:55 しょうこさん への返信

> この回答は、sureでしょうか?それとも、believe/guessでしょうか?


ここは単なる一般ユーザのボランティアが対応してるだけですから、1ボランティアの推測に過ぎません。

マニュアルで書き換えればそちらになりますから、「静的にユーザが指定した情報の方が優先度が高い」のは同じなのでは?プロファイルでの指定が静的にユーザが指定したものになるかどうかという形而上学的問題だけでは?

だからスクリプトでも作って、プロファイルで設定して接続が完了した直後、dnsを変更するようにしておけば、ワークアラウンドにはなるかも。

2020/09/10 00:02 はに への返信

>3。で共有シークレットを設定と書かれてますが、IKEv2に共有シークレットなんてあるかな?


Macユーザでしょうか・・?以下のとおり、ありますよ。


(1)インターフェイスを新規作成



(2)上記1で作成したVPNインターフェイスの中で、認証設定をクリックして、以下を表示




(3)上記1で作成したVPNインターフェイスの中で、詳細をクリックして、以下を表示

DNSサーバのアドレスを指定


どこか間違っていますか?


なお、設定は、何度も作り直しています。

設定変更後の再起動も複数回、実施しています。

3台の異なるMac端末で同じ不具合を確認しています。


そもそも、この問題は、Mac端末がVPNインターフェイスで設定したDNSサーバにパケットを出していないので、

DNS終端装置(VPNサーバ)は、関係ないです。Mac端末の通信ログはすべて確認済みです。

仮に、上記(3)で設定したDNSサーバの設定がいきていれば、

「scutil --dns」、および「/var/run/resolv.conf」で確認できると思うのですが、いずれも確認できませんでした。

また、dig @でVPNサーバを指定すれば、名前解決はできますし、ルーティングの問題であれば、失敗するはずですよね?


そのため、Mac端末側の不具合ではないか、と思っています。

どなたか、正常動作を確認された方はいるのでしょうか?


当方のパラメタ指定ミスなどありましたら、具体的にご指摘いただけると助かります。

2020/09/08 04:43 しょうこさん への返信

> 12。digで社内サーバを引いても、上記4で指定したDNSサーバを参照していない


社内サーバを引くというのは、dig で @serverとして社内サーバを指定するという意味ですか?

@serverを指定しないでdigを実行するとどのdns serverに行くのですか?


すべてのtrafficをvpnの方に向けてるのですか?それとも社内向けのみvpnに回す設定ですか?

前者なら、他のdnsを引くというのがどういうことかわからないのですが。

2020/09/08 16:22 はに への返信

目的

リモートから、社内のサーバにIPアドレスではなく、FQDNでアクセスしたい。


問題点

Windows端末では、問題ないが

Mac端末では、VPNプロファイルのDNSサーバ設定が効かなく、動作しない


VPNプロファイルの中で、特定のドメインを指定しない場合でも(ステップ4)、

VPNプロファイルの中で、社内のドメインを指定した場合でも(ステップ10)

そのドメインを含んだFQDNを持つ社内サーバの名前解決ができない。


状況か理解できましたでしょうか?


2020/09/09 04:03 gaitiro への返信

〉dig の@serverで社内dnsサーバをipアドレスで指定したら社内ホストの名前解決はできるのですか?


はい、VPNが接続されている状態で、dig @DNSサーバを指定すれば、期待どおりにアドレスは引けます。


〉社内のホストのfqdnはグローバルでも通用する名前がついてますか?


はい。


〉ipv6のため(ipv6のdnsに問い合わせが行ってる)という可能性は?


ないです。ネットワークは、IPv4のみで構成されていて、すべてのノードはIPv4のみのアドレスのみを持っています。


〉すべてのトラフィックをVPNに通す設定をしないとVPNじゃない接続回線のdnsで解決しようとするのでおっしゃる通りの問題がおきます。


スプリットトンネルのような設定はしてない(デフォルトから変えていない)のですが、具体的にどこの設定をどのようにすればいいのでしょうか?








2020/09/09 20:40 しょうこさん への返信

不具合再現手順のステップ9と11に誤記がありました。正しくは以下です。


1。ネットワーク環境設定>新規インターフェイス作成にて、以下のパラメタを入れてVPNインターフェイスを作成

●インターフェイス:VPN

●VPNタイプ: IKEv2


2。サーバアドレス、リモートID、ローカルIDを設定

3。認証設定>認証設定のプルダウンから「なし」を選択、共有シークレットを設定、OKをクリック

4。詳細>DNSサーバで社内のDNSサーバを指定、OKをクリック

5。適用をクリックし、VPNインターフェイスの作成を完了

6。接続をクリックし、正常にVPN終端装置(VPNサーバ)に接続できることを確認。

7。IPアドレスを指定したウェブ通信ができることを確認

8。FQDNで指定したウェブ通信ができない不具合を確認

9。「scutil --dns」、および「/var/run/resolv.conf」では、上記4で指定したDNSサーバの設定が反映されていないことを確認。(不具合)

10。以下のコミュニティサイトを参考に、上記で作成したVPNインターフェイス>詳細>検索ドメインにて、社内のドメインを入力、OKをクリック、適用をクリック

https://community.spiceworks.com/topic/696734-vpn-on-a-mac-cannot-resolve-name

11。「/var/run/resolv.conf」では、上記10で設定した内容が反映されていないことを確認。(不具合)

12。digで社内サーバを引いても、上記4で指定したDNSサーバを参照していないことを確認。(不具合)


<追加情報>

VPN接続後に「/var/run/resolv.conf」にて、dnsserverの設定を手動で入力すれば、DNSクエリーは指定したサーバに飛びますが、

VPNの切断→接続すると、手動で設定したDNSサーバの情報は消えるため、「/var/run/resolv.conf」の編集はワークアラウンドにはならない。


Mac端末は、有線インターフェイスがないため、WiFiインターフェイスを利用

WiFiインターフェイスではリンクローカルのみとしている



>vpnの構成がすべてのtrafficをvpnに向けてない設定になってる


上記を確認するためには、どこのプロファイルを確認すればいいのでしょうか?

ナビゲートいただけますか?当方のMacはバージョン10.15.6(Catalina)です。


2020/09/09 21:08 しょうこさん への返信

システムの構成


社内にDNSサーバグループが2つあり(DNSグループ1とDNSグループ2とします。各グループでは、持っているレコードが異なります。)、VPN終端装置がVPNクライアントに通知するDNSサーバは、DNSグループ1のアドレスのみです。


今回の要件は、特定のユーザに関しては、DNSグループ2のDNSサーバを使わせたい、というものです。

ただし、DNS終端装置は、接続VPNクライアントごとに通知するDNSサーバを変えられないため、DNSグループ2を参照したいユーザ端末側のVPNプロファイルでDNSグループ2のサーバアドレスを指定しています。


しかし、Mac端末は、VPNプロファイルで設定したDNSサーバの情報を使わずに、常にVPN終端装置が通知したDNSサーバグループ1にDNSクエリーを送信しています。


VPNプロファイルで指定したDNSサーバを使わせるためには、どうすればいいのでしょうか?

正常動作を確認された方はいるのでしょうか・・?


2020/09/10 00:37 しょうこさん への返信

> VPNプロファイルで指定したDNSサーバを使わせるためには、どうすればいいのでしょうか?


vpn装置が通知したdnsサーバになるなら、それはそれで正常なのでは?

ユーザが設定したdnsを優先するのか、vpn装置の通知したdnsを優先するのかは、仕様の違いで、どちらかが正しいというものではないのでは?


そもそも、同じ組織内の違うゾーンで違うdnsサーバが担当するというのは理解できないです。普通dnsサーバはそのゾーンに関する全ての情報を持たせるものと思いますが。dnsサーバを複数設置する場合でもプライマリーは一台だけで、あとはプライマリーに従属させるのでは?違うゾーンは管理者が違うということなら、別のdnsを設置するのもやむないかもしれませんけど。しかし、その場合なら、vpn装置も変えるのが普通でしょう。

vpn装置1台でやると、場合によっては、dns2を使う権限のないユーザが適当にdnsを書き換えてdns2の管轄するサーバに入ることも可能になりませんか?

dns2を通知する別のvpn装置を設置するしかないのでは?


2020/09/10 01:46 はに への返信

つまり、Macの仕様として、以下ということでしょうか?

  1. VPN serverがDNSサーバの情報を通知してこない場合にのみ、Mac端末のVPNプロファイルで指定したDNSサーバが参照され、VPN serverがDNSサーバの情報を通知してきた場合は、Mac端末のVPNプロファイルで指定したDNSサーバ設定は無視される。
  2. また、このMacの動作を変えるワークアラウンドはない。


通常、動的にシステムから通知された情報よりも、静的にユーザが指定した情報の優先度が高いのですが、

Mac+VPN+DNSの環境においては、静的に設定したものより、動的に通知されたものが優先される、というのがMacの仕様なのでしょうか?


ちなみにこの回答は、sureでしょうか?それとも、believe/guessでしょうか?


※一般的なEnterpriseにおけるDNSの構成については理解していますが、当方のネットワークは、中国を含めた世界数十拠点にあり、中国拠点の一部のユーザにおいては、特定のDNSサーバを参照させないといけない事情があります。



このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

(バグ?)DNS接続時に、DNSプロファイルで設定したDNSサーバを利用しない

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。