プログラミングについて数年自学したり講義を受けたりする中で必ずネットワークについて学ぶ機会がある。
「なぜインターネットを通じてWebページが見られるのか」
「そもそもインターネットとは」
「IPアドレスとは何」
「MACアドレスって何のためにあるの?」などなど
プログラミングってWebページやアプリケーション、システムを構築するのになぜ必要なのかなど疑問を持つ人も多いが、要は通信の仕組みを知らずしてWebサービスを作ることはできないということ。
(知ったような口でいう)
その中で今回はドメインとIPアドレスの関係とそこからどんな仕組みが関わっているのかを纏めたのでここに記していきます。
IPアドレス
ネットワーク上の住所といわれる。コンピューターが通信する時の相手コンピューターの宛先として特定するために使う情報です。
表示方法は[192.168.1.1]などのように数字の羅列で表される。
IPアドレスの種類としてプライベートIPアドレスとグローバルIPアドレスの2つがよくあげられる。
プライベートIPアドレスは家庭やオフィスなどLAN内で使用されるIPアドレス。家庭でWi-Fiに繋いだり、LANケーブルを繋いだ機器はプライベートIPアドレスを保有している。(例外もあります)
一方でグローバルIPアドレスはインターネット上で使用されるIPアドレスで世界中のインターネット網を繋ぐIPアドレス。グローバルIPアドレスを通信先とするため固有の数字で構成され、世界中のどのグローバルIPアドレスとも重複することがない仕組みとなっている。
IPアドレスは住所といわれる理由が通信の宛先として使用されており、コンピュータからコンピュータの通信を行う場合にIPアドレス宛にデータを送る仕組みがとられているためである。
まずはIPアドレスの概要を確認できた。
ドメイン
次にドメインはインターネット上の住所といわれる。
「example.com」と記載した方が見慣れた人も多いかと思う。インターネットのURL、メールアドレスの@の右側などにこの.comや.co.jpなどを含んだ文字列がドメインである。
インターネットで通信する時にこのドメインに対して要求することでWebページを閲覧することができる。
IPアドレス同様に”住所”といわれるが、表示の違いとしてIPアドレスが数字なのに対して、ドメインは文字列で表示される点である。
この文字列の表記というのは人間が視認でき、尚且つ記憶しやすいために採用されており実はコンピュータ自体は文字列そのものを識別していない。
では文字列をどのように識別して通信を確立しているかを確認していく。
IPアドレスとドメインの関係
IPアドレスはサーバーの変更などによって変更される可能性はあるが、ドメインは基本的に変わることはない。
例えば[example.com]というドメインのWebサイトがあるとする。
そのWebサイトのIPアドレスは[182.21.xx.xx]という数字だったとする。
ブラウザでドメインを含んだURL、あるいはIPアドレスを入力することでそのページを表示することはできる。
しかし、IPアドレスはサーバーによって変わる場合があり、その数字が変更される場合がある。
一方でドメインは一度取得されると他者が同じドメインを取得できない様に定められている固定された文字列でる。その特性から実際に閲覧する人もドメイン(この場合はURL)を記憶しやすく、ブックマークに保存するなどでいつでもアクセスできる特性を持つ。
また、世界中のコンピュータは通信の宛先を文字列であるドメインで識別せずIPアドレスで認識をしている。つまり、ドメインはIPアドレスの置き換えに相当するともいえる。
DNS
ドメインはIPアドレスの「置き換え」に相当するとした。
この「置き換え」を実現する仕組みがDNSである。
DNSサーバーの役割
コンピュータが例えば[example.com]というドメインを指定して通信を行なった場合、コンピュータはその文字列では宛先を特定できない。
そこでコンピュータはDNSサーバーにドメインがどのネットワーク上にあるどのIPアドレスなのかを探すよう依頼する。依頼を受けたDNSサーバーはドメインの階層を確認して[.com]のルートサーバを確認、続いて[example.com]というネームサーバからIPアドレスを特定する作業を行なっている。
IPアドレスが特定でき通信ができることが確認できたらコンピュータに結果が返ってくる。
“nslookup”でIPアドレスを調べられる
ドメインから宛先のIPアドレスを確認できる仕組みがDNSである。
DNSの仕組みを利用してドメインに対してどのIPアドレスかを知りたいときは「nslookup」コマンドを使って調べることができる。
Macではターミナル、Windowsではコマンドプロンプトを使ってnslookup example.comと入力するとDNSを参照してドメインに対して割り当てられているIPアドレスを表示する。
インターネットで何気なく開いているWebページのURLを入力、あるいはブックマークからクリックして表示できていのはこんな裏方の仕組みがあるからなのだ。
まとめ
インターネットでは何となくいつも閲覧しているWebページにはドメインという住所があり、通信をするにはIPアドレスというさらに細かい住所まで知る必要がある。しかし、コンピュータから文字列宛に通信をしようとしてもその文字列がどの宛先かも特定できない。
そこでDNSの登場!
DNSの機能を持ったサーバーに依頼することでドメインのIPアドレスを特定することができて、自分のコンピュータやスマホで見たいページやアプリケーションの通信が確立しているということ。
参考サイト
コメント