インターネットのしくみ2

DNS

インターネットで通信先のコンピュータを指定するにはIPアドレスを使いますが、番号ですから人間が覚えるには適していません。コンピュータに人間にもわかりやすい名前をつけて、通信時にIPアドレスにすることを考えました。

初期には名前と番号を一覧にしたファイルを使っていましたが、コンピュータの数が増えるとこれでは無理。DNSというシステムが考え出されました。

このコンピューター名もIPアドレス同様、世界で一つしかない名前にしなければなりません。

コンピュータの名前

名前の付け方

正式なコンピュータ名は所属するグループ内で個別につけられる「ホスト名」と、グループの名前である「ドメイン名」とをつなげたものです。ホスト名.ドメイン名という形をしておりFQDN(Fully Qualified Domain Nameまたは完全修飾ドメイン名)とよばれます。

ドメイン名は登録制なので世界で一つであることが保証されます。登録されたドメインの管理者がホスト名の部分を管理します。こうしてコンピュータの名前(FQDN)が世界で一つであることが保証されます。

コンピュータの例 FQDN
ホスト名 . ドメイン名
聖愛のウェブサーバー www . seiai.ed.jp
校内のウェブサーバー www . st.seiai.ed.jp
校内のDNSサーバー dns . st.seiai.ed.jp
校内の過去のファイルサーバー xebedee . st.seiai.ed.jp
南側実習室の生徒機のひとつ fish25 . st.seiai.ed.jp

st.seiai.ed.jpはseiai.ed.jpをさらに細分したドメインでサブドメインといいます。seiai.ed.jpの管理者が自由に設定できます。ただしst.seiai.ed.jpの場合はインターネットから見えるDNSに登録していませんので外からは認識されません。

コンピューター名を調べる

使っているコンピュータの名前を調べます。Linuxの場合コマンドライン端末を使います。

[アプリケーション]-[アクセサリ]-[端末]で起動されるソフトウェアです。

コマンドライン端末はターミナルとかコンソールなどとも呼ばれます。

プロンプトの $ の後に、hostname と入力して[Enter]キーを押します。

adachi@fish41:~$ hostname[Enter]

次のような表示になるはずです。

adachi@fish41:~$ hostname[Enter]
fish41

fish41 がLAN内でのコンピュータの名前であるホスト名です。もちろんホスト名はそれぞれ異なるはずです。

さらに -f, -d などオプションをつけることで、使っているコンピュータのいろいろな情報を得ることができます。

adachi@fish41:~$ hostname -f[Enter]
vine41.st.seiai.ed.jp
adachi@fish41:~$ hostname -d[Enter]
st.seiai.ed.jp
adachi@fish41:~$ hostname -i[Enter]
10.20.20.41

-f がFQDNでドメイン名を含む正式名称。-d がドメイン名のみ。-i がIPアドレスです。

DNSで他のコンピュータのIPアドレスを調べる

hostnameは自分自身の名前やIPアドレスを知るためのコマンドです。他のコンピュータの情報を調べるには、多くの場合DNSを使う必要があります。

一般ユーザーが直接他のコンピュータのIPアドレスを調べる必要はほとんどないですが、Linuxの場合、hostコマンドやdigコマンドなどでIPアドレスを調べることができます。(このコマンドが使えないシステムもあります)

これもコマンドライン端末を使います。

プロンプトの $ の後に、host コンピューター名 と入力して[Enter]キーを押します。

adachi@fish41:~$ host xebedee.st.seiai.ed.jp[Enter]

これはxebedee.st.seiai.ed.jpのIPアドレスを調べます。

次のような表示になるはずです。

adachi@fish41:~$ host xebedee.st.seiai.ed.jp[Enter]
xebedee.st.seiai.ed.jp has address 10.30.30.3

ドメイン名

ドメイン名は「文字列」をピリオドで区切った形をしています。一番右側を「トップレベルドメイン」と呼び、以下左へ順に「第2レベルドメイン」、「第3レベルドメイン」、……と呼びます。

address

後ろの方ほど大きな分類なので最後の部分をトップレベルドメインと呼ぶのです。これは欧米では住所は後ろほど広い地域を指し、最後が国名になることと対応しています。

ドメイン名は大文字、小文字の区別をしません。特殊な場合を除いて半角文字です。(全角のドメイン名も実際には半角に変換されて使用しています)

トップレベルドメインの種類

トップレベルドメインは大きく分類するとauやjpなど国を2文字で表現する国コードトップレベルドメイン(ccTLD)とその他のジェネリックトップレベルドメイン(gTLD)になります。

TLD 読み 管理団体
ccTLD 国コード 国ごと(国家機関とは限らない) au jp kr us to tv it fr ru
gTLD ジェネリック さまざま com net org info biz

gTLDは歴史的事情もあって違う分類をする場合もありますが、Internet Assigned Numbers Authority(IANA、アイアナ)のウェブページによると、つぎの5つのTypeに分類されています。

Type
(タイプ)
運用・用途 このタイプに分類されるTLD
generic
(ジェネリック)
世界中の人が取得可能 .COM .INFO .NET .ORG
generic-restricted
(制限付)
取得要件が厳しい .BIZ .NAME .PRO
sponsored
(スポンサー付)
特定組織の資金で運用 .AERO .ASIA .CAT .COOP .EDU .GOV .INT .JOBS .MIL .MOBI .MUSEUM .TEL .TRAVEL
infrastructure
(インフラ)
DNS逆引きなどに使用 .ARPA
test
(テスト)
国際化ドメインのテスト .δοκιμήtest:el-Grek .испытаниеtest:ru-Cyrl .טעסטtest:yi-Hebr .آزمایشیtest:fa-Arab .إختبارtest:ar-Arab .परीक्षाtest:hi-Deva .பரிட்சைtest:ta-Taml .테스트test:ko-Hang .テストtest:ja-Kana .測試test:zh-Hant .测试test:zh-Hans

最初に決められたTLDは .com .edu .gov .mil .org です。1984年のRFC920に「一般用途のドメイン(general purpose domains)」と書いてあります。genericTLDはそこから一般と訳されることもあるが、「汎用」、あるいはccTLDと違って地域や国の明示がないドメイン名と考えて「無印」と訳すのが適当かもしれません。

IPアドレスやドメイン名を管理調整しているのは現在、ICANN(The Internet Corporation for Assigned Names and Numbers、アイキャン)というアメリカ合衆国の法の元にある民間の非営利法人です。上記のIANA(アイアナ)はその下部組織です。

TLD以下はそれぞれの組織・団体に管理を任せています。たとえばccTLDはそれぞれの国で管理方法が決められていますし、gTLDもそれぞれ企業・非営利団体・政府組織などによって管理されています。

教科書にはcomやnetが国際的な組織で管理されていると書いてありますがこれは間違い。実際には以下の様になっています。国際的な組織と言えるのはインターネット協会のみです。

TLD 管理団体 団体の説明
com VeriSign アメリカの企業
net VeriSign アメリカの企業
org Public Interest Registry (運営はAfilias) インターネット協会(ISOC)の下部組織
edu Educause (運営:VeriSign) アメリカの非営利団体
gov General Services Administration 米連邦政府一般調達局

国際化ドメイン名(IDN)

英字を前提としたドメイン名だけではなく、他の国の文字も使えるようにしようという試みです。簡体字、繁体字、アラビア文字、デバーナガリ、キリル、ヘブライ、ハングルなどがあります。

http://例え.テスト/ でICANNのテストページにアクセスできます。ブラウザが対応していればですが。

jpドメイン

国コードトップレベルドメインの場合の第2レベルドメインをどう分類するかは各国に任されています。日本では現在3つのやり方で登録をしています。属性型JPドメイン、地域型JPドメイン、汎用JPドメインです。

分類
属性型(組織種別型)JPドメイン名 AC.JP 大学 学校法人
CO.JP 株式会社、有限会社など
GO.JP 日本国の政府機関
OR.JP 財団法人、社団法人など
AD.JP JPNICの正会員
NE.JP ネットワークサービス
GR.JP 個人、任意団体
ED.JP 幼稚園、小中高校など
LG.JP 地方公共団体など
地域型JPドメイン名 example.shinjuku.tokyo.jp、pref.aomori.jp
汎用JPドメイン名 example.jp、日本語.jp

属性型JPドメインでは第2レベルドメインが組織の種類を表します。第3レベルドメインに申請により登録し、.jpまでを加えてドメイン名になります。

汎用JPドメインでは第2レベルドメインに申請のあった名前を登録し、.jpを加えてドメイン名になります。

URL

ウェブブラウザのアドレス欄には、ウェブページのデータがどこにあるかを示すURLが表示されます。コンピュータ名やドメイン名はここにも使用されています。

URL は Uniform Resource Locator の頭文字。無理に訳せば統一資源位置子

URLの例

一般的なURLはたとえば次のようになっています。

アドレス http://www.st.seiai.ed.jp/t2010/cs/chp00/c00a060.html
それぞれ
の意味
http: // www.st.seiai.ed.jp / t2010/cs/chp00 / c00a060.html
スキーム名 コンピュータ名(FQDN) パス(フォルダ)名 ファイル名

教科書のスキーム名の説明は間違い。スキーム名はこの後の記述の読み方を指定するもの。この例では最初がFQDNでその後がパス名でその後がファイル名という約束で書いてあるということ。httpという名前のプロトコルもあり、このサーバーからデータをもらうための手順がhttpというプロトコルです。

教科書では第4レベルドメイン(ホスト名)と書いてありますが、これは常にこうなのではありません。本校の校内の様にサブドメインを設定すれば第5レベルドメインがホスト名になります。

また、汎用JPドメインならば第3レベルドメインの所にホスト名がきます。

さらに本校の外部公開のウェブサーバーはwww.seiai.ed.jpでもseiai.ed.jpでもアクセスが可能になってます。つまり http://seiai.ed.jp/ でもいいのですが、この場合も一番左のseiaiがホスト名になるわけではありません。

コンピュータ名はドメインの管理者が自由に命名するものですが、普通ウェブサーバーはwwwとします。これはアクセスしてくる人にわかりやすい様にしているものです。同様にメールサーバーならmail, smtp, pop などとつけることが多いし、DNSサーバーならnsなどとつけることも多くあります。

ブラウザのアドレス欄に入力して試してください。

http://www.st.seiai.ed.jp/t2010/index.html
http://www.st.seiai.ed.jp/t2010/cs/index.html
http://www.st.seiai.ed.jp/index.html

入力したら[Enter]キーを押すか[移動]をクリックします。

プロトコル

http:は Hypertext Transfer Protocol の略でウェブページへのアクセス手順を示す有名なプロトコルですが、インターネットにはもっと大切なプロトコルがあります。TCP/IPです。IPは Internet Protocol の略で通信相手へパケットを届けるための手順の取り決めです。TCPは Transmission Control Protocol の略で一部のパケットが届かなかったときに再送などのエラー訂正機能などを定めたものです。インターネットの通信のためにはもっと多くの様々なプロトコルがRFCにより決められていますが、TCP/IPはその総称として使われます。

この下層で通信を支えるプロトコルの上に、httpなどのアプリケーション層のプロトコルがあるのです。

名前 名前の由来 説明 WellKnownPort
SMTP Simple Mail Transfer Protocol 簡易メール転送プロトコル 25/587
POP3 Post Office Protocol Version 3 ユーザーがメールサーバから自分のメールを受け取るためのプロトコル 110
IMAP4 Internet Message Access Protocol version 4 メールサーバ上のメールにアクセスし操作するためのプロトコル 143
HTTP HyperText Transfer Protocol ウェブページの閲覧のためのプロトコル 80
FTP File Transfer Protocol ファイル転送プロトコル 20,21
Telnet Telecommunication network 端末間およびプロセス間の通信プロトコル 23
SSH Secure Shell 暗号化された通信プロトコル 22
DNS Domain Name System ドメイン名とIPアドレスとの対応づける分散型データベースシステム。プロトコルとして見るとクライアントからの問い合わせに対してDNSサーバが応答を返すだけなので単純。仰々しくプロトコルと言うことはあまりない。複数のサーバーが連携してデータベースを作っている方に関心があり「システム」と呼ばれる。 53

サービスとport

ソフトウェアの中で上記のプロトコルで他のコンピュータがアクセスしてくるのを待ち、要求に応じて何かをする役割をするものをサーバーという。またそのようなソフトウェアを稼働させているコンピュータもサーバーと呼ばれる。そのコンピュータが他のコンピュータから要求されてする仕事をサービスという。また、サービスを受けようとするコンピュータをクライアントという。

サーバーに要求を出すときFQDNまたはIPアドレスを使用して相手を特定するが、これだけではサーバー役のコンピュータに複数のサービスをさせることができない。そこでポート番号でサービスを区別する。ポートの元々の意味は港である。

サービスを提供するソフトウェアはポート番号を決めてアクセスを待ち受ける。クライアントはIPアドレスでサーバーを特定し、ポート番号でアクセスするサービスを特定する。

どのサービスに何番のポートを割り当てるかはサーバー側で決めてよいが、クライアントもその番号を知っている必要があるので、勝手に決められても困る。そこで主要なサービスには標準のポート番号が割り振られている。これをWell Known Port(ウェルノウンポート)という。

サービスをするソフトウェアの作り方がまずいと外部から意図しないプログラムを実行させられることがある。この様な時は不正に侵入されたといったり、ソフトウェアに脆弱性(ぜいじゃくせい)があるなどという。

このようなことを起こさないためには脆弱性がないことが検証されていないソフトウェアを動かさないことが第一歩だが、必要なポートだけから通信を受け付けるようにするとさらに安心ができる。この様な対策を「不要なポートを閉じる」という。

さらに通信を監視して通信をしてくる相手のIPアドレスや、通信が自分と相手のどちらから始まったものかで受け付けるかどうかを判断したり、頻繁過ぎるアクセスを無視したりする専用コンピュータゃソフトウェアを導入することもある。このようなものを「ファイヤーウォール」とか「パケットフィルタ」などとよぶ。ファイヤーウォールは防火壁の意味である。

「インターネットのしくみ2」の課題

(1)自分の使っているコンピュータのFQDNを調べなさい。

(2)jonah.st.seiai.ed.jpのIPアドレスを調べなさい。

(3)教科書にホスト名について「代表的なものには、wwwなどがある」と書いてあるが、wwwが代表的なのはなぜか。

聖愛中学高等学校
http://www.seiai.ed.jp/
Jun. 2010