DNSとHTTPは「別々の通信」

技術の仕組み | ネットワークの基礎

← 技術の仕組み

Webサイトを開く動作は、実は1回の通信ではありません。まず「相手の住所(IPアドレス)を調べる」DNSの通信があり、そのあとで「実際にデータを送る」HTTPの通信が始まります。2つは別々の通信で、通る装置も違います。

よくある思い込み

「1つの通信の中に宛先の情報も全部入っていて、それがプロキシ→FW→DNSと流れていく」——と考えると混乱します。実際は、宛先を調べる通信と、宛先へ送る通信が別々に・2回発生します。

前提の構成

社内のPCが、境界の装置(プロキシ・FW)を通って外部とやり取りする、という構成を前提にします。

社内
PC利用者の端末
社内と外部の境界
プロキシHTTP/HTTPS専用・認証の関門
FW全通信が通る関所
外部(インターネット)
外部のDNSサーバ名前解決を担う
Webサーバ目的の相手

順番に見る

1まず住所を調べる(DNS)
PC利用者の端末
「このドメインのIPアドレスは?」(DNSの問合せ)
FW社内と外部の関所📝 DNSはここに記録
外部のDNSサーバ名前解決を担う
「IPアドレスはこれ」と返ってくる
2その住所へ実際に送る(HTTP)
PC宛先IPが分かった状態で送信
プロキシHTTP/HTTPS専用の中継認証の関門📝 HTTPはここに記録
FW
Webサーバ目的の相手

ポイントは、DNSはプロキシを通らないこと。プロキシはHTTP/HTTPSだけを中継する装置で、DNSというプロトコルを扱いません。だからDNSの通信はプロキシを飛ばしてFWを通り、HTTPの通信はプロキシを通ってからFWへ進みます。

装置ごとの守備範囲

プロキシ

  • 扱うのは HTTP / HTTPS だけ
  • DNSは通らない(理解しない)
  • ここで認証(本人確認)を課せる
  • HTTP通信のログが残る

FW(ファイアウォール)

  • すべての通信が通る関所
  • DNSもここを通過する
  • 通信の可否をルールで制御
  • DNS通信のログが残る

だから「片方だけ」認証で止められる

プロキシに認証(本人確認)を設定すると、プロキシを通るHTTPは認証を突破できないと止まります。一方、DNSはプロキシを通らないので、その認証の影響を受けません。

見抜きどころ

認証はあくまでプロキシという1つの装置の中だけの関門です。ネットワーク全体の関所ではありません。だから「認証があるのに、なぜDNSは素通りするの?」の答えは——DNSはそもそもその装置を通らないから。この非対称(HTTPは止まる/DNSは通る)が、多くのインシデント問題の背骨になります。

つながる仕組み

次に読むと深まるDNSの名前解決 ― 3つの役割 → その先DNSトンネリング →

この仕組みを使う設問