Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

Safari DNSラウンドロビンに対応していますか?

Safariで接続するサーバのサービス名(名前)解決をDNSで行っております。

その際、単一のサービス名に対し複数のAレコードを記述する、いわゆるDNSラウンドロビンでの

運用を想定しております。


この場合、Safariの動作として、DNSから複数のIPアドレスが返されても

それぞれ応答可能なサーバに対して接続する仕様でしょうか?

iPad Pro Wi-Fi, iOS 11.2.5

投稿日 2018/01/24 14:44

返信
返信: 2

2018/01/24 20:14 栄治272 への返信

栄治272 による書き込み:

...

この場合、Safariの動作として、DNSから複数のIPアドレスが返されても

それぞれ応答可能なサーバに対して接続する仕様でしょうか?

私の調べた限りでは(少なくともEl Capitan以降では)「はい」ということになります。


基本的にSafari自体はアドレスへの変換を行わず、URLを指定するOSの機能を使用します。

そのOSの機能は、指定されたホストに対する問い合わせで複数のアドレスが得られたときは以下のような動作を行うようです。

  • 受け取った順に接続要求に対する応答時間を調べる。
  • 応答時間の短いものを選ぶ。(他の接続要求はキャンセル)
  • ただしほぼ同じ時間であれば、アドレスから判断してネットワーク的に近いものを優先する。(RFC3484準拠)
  • IPv6とIPv4ではv6を優先する。

# 話を簡単にするため、キャッシュ等は考慮していません。


ですので、渡されたアドレスの中に応答しないものがあれば、その応答時間は無限大となるので応答してきたホストから選択されることになり、「応答可能なサーバに対して接続」することになります。


これは、下のリンクにあるEl Capitanでの説明を私なりに解釈したものです。

大筋では間違ってはいないつもりですが、不安がある場合は原文(英語)を参照してください。

High Sierraでもまったく同じであるとは限りませんが、大きく異なることはないと思います。

[v6ops] Apple and IPv6 - Happy Eyeballs


補足1:DNSサーバ側の(予想される)動作

あるホストにA、B、Cの3個のアドレスを定義した場合

 最初の問い合わせには、A、B、C を返す。

  次の問い合わせには、B、C、A を返す。

その次の問い合わせには、C、A、B を返す。


補足2:検証例

hostコマンドでAppleのソフトウエア配布で使用されるサーバのアドレスを10秒あけて2回問い合わせています。

それぞれ2個のアドレスを得ていますが、最初は 〜.202と〜.207で、次は〜.201と〜202になっています。

$ host swcdn.apple.com ; sleep 10 ; host swcdn.apple.com

swcdn.apple.com is an alias for swcdn.apple.com.akadns.net.

swcdn.apple.com.akadns.net is an alias for swcdn.g.aaplimg.com.

swcdn.g.aaplimg.com has address 17.253.71.202

swcdn.g.aaplimg.com has address 17.253.69.207

swcdn.apple.com is an alias for swcdn.apple.com.akadns.net.

swcdn.apple.com.akadns.net is an alias for swcdn.g.aaplimg.com.

swcdn.g.aaplimg.com has address 17.253.71.201

swcdn.g.aaplimg.com has address 17.253.71.202

ここで行ったのは問い合わせ結果の表示だけですが、ソフトウェアアップデートが問題なく行えていることで動作検証になると考えます。


補足3:RFC 3484

https://www.ietf.org/rfc/rfc3484.txt

Default Address Selection for Internet Protocol version 6 (IPv6)

他のサイトの情報などによると、もともと複数のアドレスから一つを選択する基準は標準というものがなく、ホスト(OS)ごとに違っていたりした(例:最初に得たアドレスを無条件で選択、等)のをネットワーク的に近いホストを選択するようにしようのいうことのようです。


以上、ご参考まで。

2018/01/24 15:14 栄治272 への返信

そんな心配無用では?

DNSが返してくるアドレス以外にアクセスするブラウザなんてないのでは。ブラウザに限らずどんなネットワークアプリでも同じと思うけど。ただ、キャッシュは持ってますので、キャッシュからコンテンツを表示することはあるでしょう。しかしこれはSafariに限らずどのブラウザでも同じ。何度か更新すれば、DNSが指示するアドレスからコンテンツを更新します。

Safari DNSラウンドロビンに対応していますか?

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