Facebook にはなぜ IP アドレスが 2 つしかないのですか?

Facebook にはなぜ IP アドレスが 2 つしかないのですか?

自分のウェブサイトの DNS を設定する過程で、大企業の DNS レコードを調べたいと思いました。facebook.com を選択し、dnschecker.org を使用してその DNS レコードを表示しました。大多数の人がまだ IPv4 を使用しているため AAAA レコードを無視すると、返されるアドレスは 2 つだけです: 31.13.71.36 と 157.240.26.35

おそらく私はここで何らかの技術を見逃しているのでしょうが、各静的 IP は、特定の時点で 1 つの NIC にのみ割り当てることができます。つまり、Facebook は、データ センターからのすべての IPv4 の入出力を 2 台の (非常に高速な) マシンのみで処理していることになります。そんなわけはありません。

ここで何が欠けているのでしょうか?

答え1

DNS サーバーにクエリを実行する場合、特にレコードなどを検索する場合A、サイトのセットアップの全体像は得られません。要求を満たし、目的のターゲットに接続するのに十分な情報しか得られません。

以前は追加のクエリを実行して完全なリストを取得することができましたが、セキュリティ上の理由から、これは長い間無効になっており、非推奨となっています。

セキュリティ対策によって DNS から取得できる情報量が減る以前から、サイトは動的 DNS 技術を使用して負荷分散を実装していました。基本的に、ホストが Facebook の A レコードをクエリすると、サイズが不明な大きなリストから 1 つまたはいくつかの回答が返されます。システムはその結果をキャッシュするため、以降のクエリで同じ回答が返されますが、ソース DNS サーバーはこれにタイムアウトを設定できます (私が確認したとき、タイムアウトは約 300 秒でした)。

つまり、基本的に、facebook.com にクエリを実行すると、リストからランダムな回答が返されますが、その回答は変わる可能性があります (おそらく 300 秒ごとに)。Facebook の DNS サーバーは、クエリを実行した各クライアントにまったく異なる回答を簡単に返すことができます。また、ネットワークの場所を検出して回答を微調整し、ネットワーク上でユーザーに近いサーバーを返すこともできます。他の回答で述べたように、これはまさに CDN が設計されている目的です。

答え2

これらのIPはサーバーに属していないため、FacebookのCDN「コンテンツ配信ネットワーク」を指しています。

もしかしたら他の誰かがその設定について多少の知識を持っているかもしれませんが、私の DNS サーバーは異なる IP を報告しているので、常に動的に変化している IP が何千もあると断言できます。

関連情報