2025-01-04

ドメインとIPアドレスを理解する

🏷️
  • ネットワーク

ドメインってなに?

ドメインとは、インターネット上の住所のようなものです。例えば、k-work.space や google.com などがそれにあたります。これらのドメインを使って、特定のウェブサイトにアクセスできます。

ちなみに、k-work.space/articles/xxTQU9uLIMIkWAHxwB1u のように、URLに続く部分(/articles/xxTQU9uLIMIkWAHxwB1u)は「URLパス」と呼ばれ、アクセスしたいリソースを指定するために使われます。

ドメインにアクセスしたら、なぜページが表示されるの?

ドメインは、あくまで人間にとって覚えやすく理解しやすいものです。実際にウェブサイトにアクセスする際、コンピュータは「IPアドレス」を使って通信相手を識別します。

では、なぜドメインでアクセス先を識別できるのでしょうか? それは、DNS(ドメインネームシステム)がドメインとIPアドレスをマッピングして管理しているからです。

例えば、ドメインにアクセスが来ると、DNSはそのドメインを検索し、対応するIPアドレスを返します。その後、コンピュータはそのIPアドレスにアクセスすることでウェブページを表示します。

DNSではどうやってドメインとIPアドレスをマッピングしているの?

DNSでは、Aレコード(Address Record)を使って、ドメインとIPアドレスを紐づけています。これにより、ドメイン名を入力すると、DNSが自動的に対応するIPアドレスに変換してくれるのです。

他にはどんなレコードがあるの?

DNSには、Aレコード以外にもさまざまなレコードがあります。代表的なものをいくつか紹介します。

AAAAレコード(IPv6 Address Record)
AレコードがIPv4アドレスを使用するのに対して、AAAAレコードはIPv6アドレスを使用します。これにより、IPv6対応のIPアドレスを指定できます。

TXTレコード(Text Record)
任意のテキスト情報をDNSに追加するためのレコードです。主に認証情報やドメイン所有権の確認などに使われます。

CNAMEレコード(Canonical Name Record)
CNAMEレコードを使用すると、ドメイン名を別のドメイン名にエイリアス(別名)として設定できます。これにより、複数のドメインを1つのドメインに関連付けることができます。

サブドメインの仕組みについて教えて

このブログはGoogle CloudのCloud Runで動いているため、Cloud Runを前提に説明します。

例えば、a.k-work.space と b.k-work.space の2つのサブドメインを設定している場合、それぞれのサブドメインにはCNAMEレコードが設定されています。どちらのCNAMEレコードもghs.googlehosted.comを指しています。

この場合、どちらのサブドメインにアクセスしても、DNSを経由してghs.googlehosted.comにアクセスが転送されます。しかし、ghs.googlehosted.comではHTTPリクエストのホストヘッダーを参照して、どのサブドメインに対するリクエストかを判断します。これにより、a.k-work.spaceとb.k-work.spaceそれぞれに対応する適切な処理が行われます。