webサーバとwebブラウザ

20.10.10 / webのこと / Author: / Comments: (7)

小悪魔ブログのようなインターネットで公開されているページを見るためのサービスをWWWといいます。

小悪魔ブログのようなインターネットで公開されているページはHTMLという言語によって書かれています。

この、HTMLで書かれた文書をドキュメントといい、このドキュメントを公開しているのがWEBサーバです。

WEBサーバの中でも有名なのが、ApacheとIISです。

Apacheは現在世界中でもっとも利用されているWEBサーバで、netcraft社によると、2010年時点で57.12%のシェアを持っています。

Apacheは無料で使われているソフトウェアで、無保証・無対応であるが、ボランティアによるメンテナンスや対応が早く多くのノウハウをもつ人のあつまるコミュニティなどがあり、高い安定性と動作の軽快さ、豊富な機能から高い信頼性があります。

IISとは、Microsoft社が提供しているWindows用のWebサーバです。

Apacheに次いで2番目に高いシェアを持っていて、2010年時点では24,11%となっています。

メールの回でも説明したように、サーバとは、ネットワークでクライアントの要求に応えてサービスを提供してくれるコンピュータのことをいいます。

webサーバにサービスを要求するクライアントが、webページを見るために使うソフトウェアをWebブラウザといいます。

webブラウザの主なものとして、IE、Firefox、chrome、safari、operaなどがあります。

Net Application社による2010年6月時点でのブラウザシェアの報告によると、IEがもっとも高い60.32%を占めています。

また、携帯から、PCページを見るためのwebブラウザにはjigブラウザなどがあります。

今、あなたが小悪魔ブログを見れているのは、WEBサーバが小悪魔ブログを公開し、クライアントであるあなたのコンピュータがWEBブラウザというアプリケーションを使って小悪魔ブログのデータを要求して、データを画面上に表示してくれるからなのです。

…というわけで次回からはwwwの歴史やしくみについて勉強しましょう!

telnetでSMTPとお話してみよう!

16.10.10 / メールのこと / Author: / Comments: (1)

telnetでSMTPサーバとお話してみよう!

まず、$ telnet [メールサーバ名] 25 と入れます。

$ telnet mail.kumatta.kuma 25

Trying 125.○○○.176.△…
Connected to mail.kumatta.kuma.
Escape character is ‘^]’.
220 mail.kumatta.kuma ESMTP Postfix

次に、helo [ドメイン名]と入れます。すると、250 [メールサーバ名]と返ってきます。

helo kumatta.kuma
250 mail.kumatta.kuma

つぎに、mail from:とrcpt to:でメールの送信者受信者を入れます。

この部分が前回勉強したエンベロープの部分です。

mail from:kuma@kumatta.kuma
250 Ok
rcpt to:usao@usausa.usagi
250 Ok

dataと入れて、354 End data with <CR><LF>.<CR><LF>と返ってくれば、本文入力スタートです。

data
354 End data with <CR><LF>.<CR><LF>

次に入れるのは前回勉強したメールヘッダとメールの内容であるメールボディです。

メールヘッダはメールの送受信に関係しないため、何と入れても送受信には影響しません。

くまさんがうさおくんにいたずらをしたようです。

from:usako@usausa.usagi
to:usao@usausa.usagi

kirai!
.

実際に見てみるとこんなかんじ。

くまさんから送られてるはずなのに、うさこちゃんからになってますね。

(これをtelnetで打って送信した私自身もくまさんではないし、受信者もうさおくんではないので現実でもまったく違う名前になってますね。)

これで、メールヘッダーとエンベロープが一致しなくてもエンベロープが正しければ届くことがわかりますね。

また、くまさんがこのように入れたらどうなるでしょう?

from:kuma@kumatta.kuma

to:usao@usausa.usagi
hello
.

正解はこうなります。

宛先が非公開になってますね。

メールヘッダーとメールボディは空の行をはさむことで分けられます。そのため、to:~以降も本文であるように扱われてしまうのです。

このように、メールヘッダーとエンベロープの役割は異なっています。

ですが、実際にメールを打つときは宛先を入れるのは1つの欄で、後の作業はメールのソフトウェアであるメーラーがやってくれちゃう。だから2つの違いがわからないって人が多いのでしょうね。

メールヘッダとエンベロープの役割

16.10.10 / メールのこと / Author: / Comments: (1)

今日はメールヘッダとエンベロープについて勉強しました。

ぜんかいくまさんがうさおくんに送った手紙をこっそり見てしまいましょう。

くまさんの手紙の封筒を見ると、うさおくんの住所と名前、それから、くまさん自身の住所と名前が書かれていますね。この封筒をエンベロープと言います。

envelopeとは封筒という意味の英単語です。

手紙で、宛先として見るのが封筒に書かれた住所と名前であるように、メールで宛先となるのが、エンベロープに書かれたメールアドレスです。

次に、手紙の内容を見てみましょう。

手紙の1番上には、うさおくんへ くまより 2010年●月1△日と書いてありますね。

この部分のことをメールヘッダといいます。

うさおくんが手紙を読む時、「ぼく宛でくまくんからだ」と見るのはここですよね。

メールヘッダーの下に書かれる本文のことをメールボディと言います。

間に空欄の行がはさまることで、メールヘッダーとメールボディを分けています。

メールでも差出人、件名、日時、宛先などが本文の上に書いてありますがこの部分がヘッダー。

つまりヘッダーは手紙を読む人のための記録用として使用される部分です。

手紙でも郵便やぎさんは手紙を読むことがないように、メールでも送信されるときヘッダーを確認することはありません。

そのため、エンベロープさえ正しく書かれていれば、ヘッダーは何と書かれていてもOKで、エンベロープとヘッダーが同じである必要はありません。

ちょっとここでお豆なはなし。

最近iphoneで友達の携帯にメールを送ろうとすると、「宛先メールアドレスが無効だから送信できない」と言われることがあって(でも送信できるんですけど)、なんでなんだろう?と思っていたので調べてみました。

ちなみにそのメールアドレス、こんなかんじ。

インターネットのルールを定めているものにRFCというものがあります。

インターネットは中心のないネットワークですから、ルールであるRFCにも中心の作者はおらず、いろんな人が色々書いて、最善のものだけが自然に残っているという形でつくられています。

そのRFCの2822  Internet Message Formatにメールアドレスについてのルールが書いてあります。

そのRFCによるとどうやらusako..usagi@~.~,jpに使ってはいけないものが含まれているらしい!

それはここです!

どうやらRFCにはいろんな解釈がありますが、どうやら「.」(ドット)の連続はダメなんだそう。

だけどRFCはあくまでルールであって破って使うことだってできてしまうため、それが含まれたメールアドレスを使えて、メールの送受信ができてたのですが、

このように無効と考えられてしまうなどの問題が起きてしまっていたようですね。

実際、私もRFCを読んでみようとしたのですが難しい!これならムリないかも…と思ってしまいますが、

少しずつ、RFCに沿ったアドレスを使おう!となっているようで、携帯会社のメールアドレス(例えばdocomoは2009年からドットの連続が入ったメールアドレスの取得を禁止してます。)もRFCに沿ったものになりつつあるようです。

メールはどうやって送られているのだろう?

16.10.10 / メールのこと / Author: / Comments: (1)

普段当たり前のように使うメールがどのように届いてどのように送られているのか知っていますか?

相手のアドレス宛にメールを書いて受信すればすぐ届く!メールってほんと便利ですよね。

メールで送りあうようになったことで、手紙を書くという機会はほとんどなくなったと思います。

文章を紙に書いて、住所を書いて、切手を貼って、郵便局にだして、しばらくして相手の郵便受けに届き、それを相手が取ってきて見る。

手紙で送ると間に郵便局をはさむからめんどくさい。けどその点、メールってすぐ届くしラクだなー!なんて思うけど、メールのしくみは手紙のしくみとよく似ているのです!

コンピュータ同士が電波でつながっていて間になにもはさまずに届いてるように見えますがメールも郵便局のような仲介役の協力によって届いているのです。

その仲介役をメールサーバといいます!

serverとは仕える人、給仕人という意味の単語です。

サーバとは、ネットワークでサービスを提供するコンピュータのこと。

そして、サービスを提供される側のコンピュータ、それをクライアントといいます。

私たちが普段インターネットをするとき使うパソコンなどがこのクライアントにあたります。

メールにとってのメールサーバーは手紙を届けるサービスをしてくれる郵便局のような存在なのです。

では、今回はメールを送信し、メールサーバに受け取ってもらうところまでの仕組みを勉強しましょう!

メールを送信・転送するためのプロトコルをSMTPといい、SMTPに対応するメールサーバをSMTPサーバといいます。

くまさんがうさおくんに手紙(メール)を送るようです。

すると、くまさんの最寄りの郵便局であるメールサーバが手紙を受け取ります。

郵便物を届けるには宛先が必要ですね。メールでの宛先、それはメールアドレスです。

ではそのメールアドレス、どのような形をしているのでしょうか?

さて、ドメイン名はうさおくんがどこにいるのかを示していますが、ドメイン名だけわかっても通信はできません。

そのドメイン名をもつ人たちを担当してるメールサーバの名前と、そのメールサーバのIPアドレスを調べてコンピュータがわかるようにしてあげなきゃです。そこでDNSの出番です!

メールサーバはDNSサーバにこのドメイン名をもつ人たちを管理してるサーバは誰で、そのサーバのIPアドレスは何?と尋ねます。

これはDNSの回で勉強したMXレコードとAレコードです!

こうしてうさおくんを担当しているメールサーバを調べて、そのメールサーバまで送られます。

届けられたメールサーバは、こんどはメールアドレスのユーザ名を頼りにうさおくんの郵便受けに手紙を入れます。

ここまでがSMTPの役割。

ところで、もしうさおくんが外出していたらその時手紙は郵便受けに保管されますよね。

ここでの外出というのは、ネットワークでいうと、パソコンの電源がOFFになっていてインターネットにつながっていないことを指します。私たちは24時間パソコンをつけっぱなしにはしてませんよね。つまり外出している状態ってことです。

SMTPの役割は手紙を郵便受けに入れるところまでですから、手紙を保管してうさおくんが帰ってきたら手紙を取り出してくれるプロトコルが必要になります。

それがPOPとIMAPです!

POPとIMAPの違い

15.10.10 / メールのこと / Author: / Comments: (1)

今回はメールのお話です。

POPとIMAPの違いについて勉強しました!

その前にメールおさらいはこちら

POPとIMAPとはメール受信のためのプロトコル。つまり、メールを受け取る方法です。

POPとIMAPの受け取り方の違い見てみましょう!

大学生になったうさおくんは念願の一人暮らしを始めました。

だけどうさおくんは住所変更がめんどくさくてそのままにしているので手紙は実家に届きます。

ここでPOPとIMAPの登場です!さぁ手紙を受け取りましょう!

POPの場合、うさおくんは実家(メールサーバ)に帰ります。

実家(メールサーバ)で手紙を受け取ったうさおくんは自分の家(メインのメールクライアント)に帰って手紙を読みます。

POPでは、手紙を実家から持って帰ってしまうため、家や、学校や彼女のお家(サブのメールクライアント)など読んだ所においてきてしまうので手紙がバラバラになりますが、コピーを実家に残しておくこともできます。

IMAPの場合、うさおくんは実家の母(メールサーバ)に電話します。

すると母は手紙の概要をうさおくんに伝えてくれるので、必要な手紙だけファックスでコピーして送ってもらいます。

うさお母はうさおくんが手紙を送って読ませたかどうかも覚えていてくれます。

手紙は実家に残っているので、家や、学校やうさこちゃんの家など、うさおくんがドコにいても手紙をコピーして送ってもらえます。

IMAPでは手紙を実家に置いておくので手紙があふれると母が怒るため(=メールサーバ側のメールボックスの容量オーバー)、家に持って帰ることもできます。しかしその場合、実家には手紙がなくなるので持って帰った場所でしか読むことができなくなります。

IMAPでは実家に手紙が保管されているので電話をしないと(ネットワークを通さないと)手紙を送ってもらえないので読むことができません。ただ、前に読んだ内容ならば、うさおくんが覚えている(キャッシュしている)場合もあります。

ではtelnetでpopの動きを見てみましょう!

$ telnet [メールサーバ名] 110 と入れます。

$ telnet mail.usausa.usagi 110

Trying 125.6.176.12…
Connected to mail.usausa.usagi.
Escape character is ‘^]’.
+OK dovecot ready.

user [ユーザ名]と入れると、+OKと返ってくるので、pass [パスワード]を入れ、また+OKと返ってきます。

user usako
+OK
pass usakochan
+OK Logged in.

そのあと、

listと入れると、メールのリストが返ってくるので、

retr [リスト番号]と入れると、メールの中身が見れます!

list
+OK 6797 messages:

1 5305
2 1552
3 3749


6797 1274
.

retr 6797
+OK 1274 octets

Return-Path: <kumao@kumakuma.kuma>
X-Original-To: usako@usausa.usagi
Delivered-To: usako@usausa.usagi
Received: from [192.168.11.49] (113x32x183x210.ap113.ftth.ucom.ne.jp [113.32.183.210])
by mail.usausa.usagi (Postfix) with ESMTP id D1FB1B70265
for <usako@usausa.usagi>; Fri, 15 Oct 2010 15:17:26 +0900 (JST)
Date: Fri, 15 Oct 2010 15:17:22 +0900
From: Kumao<kumao@kumakuma.kuma>
To: usako@usausa.usagi
Subject: =?ISO-2022-JP?B?GyRCTEBGfCEhRVpNS0Z8GyhC?=
Message-Id: <20101015151722.9BD0.CA69538C@usausa.usagi>
MIME-Version: 1.0
Content-Type: text/plain; charset=”ISO-2022-JP”
Content-Transfer-Encoding: 7bit
X-Mailer: Becky! ver. 2.55 [ja]

くまおだよ

くまくまくーまおつかれさん!

また、dele [リスト番号]と入れるとそのメールが消せます。

dele 6797
+OK Marked to be deleted.

dele 6797+OK Marked to be deleted.

この動きをメールクライアントがやってくれているのでpop語をしゃべれなくてもわたしたちはメールを読むことができるのです。

逆引きって何だろう?

14.10.10 / DNSって何? / Author: / Comments: (1)

ドメイン名(FQDN)からIPアドレスを調べること、それを正引きと呼びます。

DNSがこの正引きをしてくれることで、小悪魔ブログを見たりできるのです。

その反対に、IPアドレスからドメイン名(FQDN)を調べることを逆引きといいます。

今日は、逆引きについて勉強しましょう!

逆引きとは、IPアドレスからドメイン名を調べることをいいます。

正引きにドメインツリーがあるように、逆引きにもドメインツリーが存在します。

小悪魔IPアドレスで見てみましょう!

.arpaとin-addrって2つ何か上に付いてますね。in-addr.arpa.とは、逆引き用のドメインです。

逆引き用のドメインはIPアドレスを逆順に並べたものに、in-addr.arpaのついた形をしています。

試しにdigコマンドで逆引きの様子を見てみましょう!

$ dig 32.176.6.125.in-addr.arpa. ptrと打つと対応するドメイン名(FQDN)が見れます。

すると、このように返ってきました。

125.6.176.32の返事がco-akuma.directorz.jpではないようですね。なぜでしょう?

IPアドレスには対応するドメイン名を複数ふることができます。(※1つのドメイン名にふれるIPアドレスは1つです)

なのでここに書かれたドメイン名はいわば代表ドメイン名のようなもので、ディレクターズで管理しやすいようふったドメイン名です。そのため、co-akuma.directorz.jpではなかったのです。

しかし、この逆引き、何のために必要なのでしょうか?

逆引きは、例えば、アタックを受けたときに、どこのドメインから攻撃を受けているのかを調べることが出来て、トラブル時の手助けになります。(ただし、アタックするようなIPは設定してないことも多い)

他にも、tracerouteで経路確認する時などに、逆引きの設定があると直感的にどこを経由しているかがわかります。

また、アプリケーションの中には、逆引きの応答をタイムアウトまで待ってしまうアプリケーションも存在します。(例えばftpやMySQL)

逆引きの設定はあくまでも任意!設定も自由にできますが、補助的な役割で利用されることが多いため設定しておくと良いことあるかも!

whoisとは?

10.10.10 / DNSって何? / Author: / Comments: (6)

whoisコマンドとは、ドメイン名の登録者などの情報を見ることができるコマンドです。

それではdirectorz.co.jpでwhoisの中身を試しに見てみましょう!

ターミナルで、

$ whois -h whois.jprs.jp directorz.co.jp/eと打つと情報が見れます。

日本のドメイン名を管理している団体はJPRSです。

そのため、検索先サーバにはドメイン名登録を管理しているJPRSのwhoisサーバが入っています。

また、whoisはJPRSの検索サービスでも見ることが出来ます。

さてさて、directorz.co.jpをwhois検索すると、

Domain Information:

a. [Domain Name]                DIRECTORZ.CO.JP

g. [Organization]               Directorz Co., Ltd.

l. [Organization Type]          corporation

m. [Administrative Contact]     KK19885JP

n. [Technical Contact]          KK19885JP

p. [Name Server]                dns1.directorz.jp

p. [Name Server]                dns2.directorz.jp

[State]                         Connected (2010/10/31)

[Registered Date]               2008/10/31

[Connected Date]                2008/10/31

[Last Update]                   2009/11/01 01:48:21 (JST)

となっていて、パッと見ると管理者の名前がわからなくなってますね。

そのため、$ whois -h whois.jprs.jp KK19885JP/eと入れると管理者情報が見れます。

反対にIPアドレスからもwhois検索できます。

$ whois -h whois.nic.ad.jp 182.161.76.35/e

サーバの中でwhoisのサービス用ポート番号として割り当てられているのは43番ポートです。

そのため、telnetでwhois.jprs.jpの43番ポートに入ってdirectorz.co.jpと打つと、whoisと同じ情報が見れます!

このwhois、何のために公開されているのかというと、

ドメイン名の申請時に同じドメインが存在しないかどうか確認したり、ドメイン名の期限管理に使ったり、障害が起きた時の連絡のため…などなどのため公開されています。

このようにwhoisは障害が起きたときにとても便利な機能です。しかし!やはり個人情報なので、プライバシーの問題があります。

しかし、whoisはトラブル解決のための連絡先なので非公開にはできません。

そのため、日本(JP)のドメインは公開連絡窓口というものを設置しています。

この公開連絡窓口の制度は、ドメイン所有者に連絡がつくならば、whoisで公開される個人情報をドメイン管理業者などの代替情報で登録し、公開することができるようにしています。

だけど、悪うささんのような悪い人がいなくなることが1番!ですよね。whoisを使う時は道徳的な判断をもって使いましょう!

digコマンドとレコード

08.10.10 / DNSって何? / Author: / Comments: (5)

とうとう戻ってきましたDNS…わー!がんばりましょう!

今日はdigコマンドについて勉強しました。

…の前に!忘れちゃったあなたへ!DNSおさらいはこちら

人間にわかりやすいドメイン名(FQDN)とコンピュータにわかりやすいIPアドレスを対応付けしてくれるのがDNSで、この仕事を名前解決と呼ぶんでしたよね。

この名前解決を具体的にしてくれるDNSクライアントがdigコマンドです!

digとは、domarn information groperの略です。

ターミナルで、

$ dig [ドメイン名(FQDN)][レコードタイプ]と入れるとそのドメインに関するデータが調べられます。

そのデータの形がレコードです。

DNSレコードにはIPを指定するAレコードやメールサーバを指定するMXレコード…などなどたくさん種類のレコードタイプがあります。

試しに$ dig co-akuma.directorz.jp [レコードタイプ]と小悪魔ブログのドメイン名を入れてみると、

;; ANSWER SECTION:

co-akuma.directorz.jp. 3600 IN A 125.6.176.32

と出ます!

Aレコードは、ドメイン名(FQDN)からIPアドレスを調べる(正引き)レコードです。

ここでは、「coakuma.directorz.jpというドメイン名(FQDN)に対応するIPアドレスは125.6.176.32です。」と書いてあります。

レコードとして得られた情報はしばらくの間保存=キャッシュされます。

キャッシュによって情報が保存されることで同じページを見るのに何度も問い合わせする必要がなくなります。

このレコードのキャッシュの有効期限を秒数で書いているのがTTLです。ここでは3600(秒)となっているので1時間キャッシュされます。

$ dig co-akuma.directorz.jpというようにレコードタイプを省略するとAレコードが検索されます。

$ dig

のようにターミナルでdigとだけ打つと

;; QUESTION SECTION:

;. IN NS

;; ANSWER SECTION:

. 518400 IN NS c.root-servers.net.

. 518400 IN NS i.root-servers.net.

. 518400 IN NS m.root-servers.net.

. 518400 IN NS h.root-servers.net.

. 518400 IN NS d.root-servers.net.

. 518400 IN NS g.root-servers.net.

. 518400 IN NS k.root-servers.net.

. 518400 IN NS b.root-servers.net.

. 518400 IN NS l.root-servers.net.

. 518400 IN NS f.root-servers.net.

. 518400 IN NS j.root-servers.net.

. 518400 IN NS e.root-servers.net.

. 518400 IN NS a.root-servers.net.

のように言われます。

NSレコードが登場しましたね。これは、ゾーン権限を持つDNSサーバを指定するレコードです。

ここでは、「ルートのゾーンを管理しているDNSサーバはこの13個です。」と書いてあります。

NSレコードはフルサービスリゾルバによる反復問い合わせの時に下位のゾーンの権限を持つDNSサーバを指定する時使われます。

DNSサーバは自分の直下と自分しか知らないので、名前解決は1つずつ下に下に反復して情報を聞いていきます。

うさこちゃんのひいおじいちゃんはうさこちゃんのじいちゃんにうさぱぱ(とその下)のことを権限委譲しているため、うさこちゃんのことを知りません。

そのため、「うさこちゃんは知らないけどうさじい(のゾーンのDNSサーバ)が知ってるかも」と言ってうさじいの情報をくれます。このとき渡される情報がうさじいのNSレコードです。

digコマンドでこの動作と同じことをすると

$ dig @m.root-servers.net co-akuma.directorz.jp

こんな感じです。

同じようにうさじいも権限委譲しているのでうさこちゃんのことを知りません。そのためうさぱぱのNSレコードをくれます。

コマンドでいうと

$ dig @a.dns.jp co-akuma.directorz.jp

うさぱぱはうさこちゃんのことを知っているのでIP(Aレコード)を渡します。

コマンドでいうと

$ dig @dns1.directorz.jp co-akuma.directorz.jp

このようにフルサービスリゾルバはどんな風に動いてるのかな?ってことをdigによって見てみたわけですが

$ dig co-akuma.directorz.jp としてもco-akuma.directorz.jpのIPは手に入れられましたよね?

なぜかというと問い合わせ先サーバが空欄になっていると/etc/resolv.confに書いてあるDNSサーバが反復問い合わせをしてくれるからです。これは自分のコンピュータが利用するDNSサーバの情報のファイルです。

つぎはMXレコードです。

$ dig directorz.jp mxと入力するとこのようにでます。

;; ANSWER SECTION:

directorz.jp. 1736 IN MX 3 mail.directorz.jp.

MXレコードはメールアドレスに利用するドメイン名(FQDN)を指定するレコードです。

ここでは「@の後ろがdirectorz.jp となっているメールアドレスに送られたメールはmail.directorz.jpのメールサーバが受け取ります。」と書いてあります。

メールアドレスはユーザ名+ドメイン名(FQDN)で出来ています。

MXレコードはドメイン名とメールサーバのFQDNとを結びつけます。

そのため、もしうさおくんがうさこちゃんにお手紙を出すと、

MXレコードでうさこちゃんのドメイン名と結びつけられたFQDNのメールサーバに送られるのです。

MXレコードにはメールサーバの優先順位をつけるプリファレンス値というものがあります。

プレファレンス値はドメイン名に結びつけられたメールサーバが2つ以上の時どちらを優先的に使うかを表しています。

プレファレンス値がより低い方から順番に優先して使われます。

4つ目はSOAレコードです!

SOAレコードはゾーン権限を持っているDNSサーバとその詳細が書かれているレコードです。

$ dig directorz.jp soaと入力すると…

;; ANSWER SECTION:

directorz.jp. 2560 IN SOA   dns1.directorz.jp. hostmaster.directorz.jp.

1286337318 16384 2048 1048576 2560

数字がたくさん並んでますが、これはゾーン管理のための情報です。

DNSでは、複数のサーバでゾーン管理することによってDNSサーバの負担を軽減したり、障害が発生してもすぐ対策できるようになっています。

ネームサーバには管理者が設定するマスターサーバと、そのデータをコピーをもつスレーブサーバが存在します。

この、スレーブサーバによるマスターサーバのゾーン情報をコピーする作業をゾーン転送といいます。

スレーブサーバはrefreshの時間に沿ってマスターサーバのserialを確認して、自分の持っているものより大きいシリアルナンバーになっていたら、ゾーン転送を行います。

retryはゾーンファイル更新の確認が上手く出来なかった時、再確認を行うまでの時間を指定しています。

再確認が失敗し、expiryに指定された時間が経過してしまった時、スレーブサーバはそのゾーンのサーバとして動くことをやめます。

これは、トラブルが起きた時、誤った情報を流し続けないようにするため指定されています。

minimumはネガティブキャッシュのTTLです。

例えば、存在しないoo-akuma.directorz.jpというFQDNのレコードを尋ねても、ありませんってことがかえってくるだけです。

その、ありませんという返事をキャッシュするのがネガティブキャッシュです。

最後はTXTレコードです。

文章(テキスト)をドメイン名に関連づけられるのがTXTレコードです。

$ dig directorz.jp txtと入力すると…

;; ANSWER SECTION:

directorz.jp. 3600 IN TXT “v=spf1 ip4:125.6.176.0/24 ip4:211.125.109.73 ip4:219.94.152.26 ~all”

ここでは、「directorz.jpのテキストレコードはIPアドレスはIPv4で記述されていて、125.6.176.0/24(他2つ)以外のIPアドレスからdirectorz.jpとして送られてきたメールはなりすましの可能性があるためできるだけ受信しないでください。」と書いてあります。

TXTレコードはDNSの拡張用に用意されたレコードで、最近では主に、メールサーバのIPアドレスを確認して送信メールのなりすましを防ぐために使われます。

ルーティングとは?

29.09.10 / インターネットとは? / Author: / Comments: (2)

さてさて!今回はルーティングについてです。今日はめっちゃ長いです!

ルータはネットワークエンジニアの領域らしいので、今回はサーバエンジニアとしてこれくらいは知っておこう!ということを勉強してみました*

ルータのやくわりは通信の中継。ルータはバケツリレーのように通信先のセグメントのルータまでパケットを送っていくんでしたよね。このバケツリレーをルーティングとよびます。

うささんがねこさんにパケットさんを送りたいので村のルータにパケットさんを預けていますね。

うささんルータはうさぱけっとをねこさんルータまでバケツリレーしていくのですが、次にドコに送ればいいかな?ってことを書いた表を確認します。それがルーティングテーブルです!

あらら?うさルータのルーティングテーブルにねこさんルータへの経路が書いていないようですね。

そんなときうさルータはどうするかというと…

なんとうさパケットさんを破棄してしまうのです!

ルーティングを行うためにはネットワーク上のすべてのルータがルーティングテーブルを作成する必要があるのです。

パケットを捨てられないようにするために、うささんルータにねこさんルータへの経路を登録してあげる必要があります。

この場合、ねこさんルータに渡すにはいぬさんルータに中継してもらえばいいよって書くわけですね。

その書き方の1つがスタティックルーティングです。

スタティックルーティングはネットワーク管理者が行う手動でのルーティング設定です。

同時に送信先(ネコさん)のルータも送信元(うささん)への経路をルーティングテーブルに設定します。

ルーティングテーブルに設定がないと、パケットが破棄されてしまうからです。

インターネットの特徴は経路をたくさん持っていることですから、1つのネットワークへ向かうためにたくさんの経路が存在します。

たとえばこんなかんじになっているとすると…

いぬさんへの経路がブタさんとクマさん、2つ存在します。この時、どちらが選ばれるかというと、くまさんです。

これをロンゲストマッチといいます。どうやって選ばれたのかというと、プレフィックス長の長いネットワークアドレスが選ばれているのです。

プレフィックス長って何か覚えていますか?

では小悪魔IPでロンゲストマッチを見てみましょう!

例えば、うささんから小悪魔に送信!となった時、次に送るところ(ネクストホップ)として選ばれるのはBです。

16より24のプレフィックス長の方が長いからです。このようにしてルータが選んだ最適な経路をベストパスといいます。

スタティックルーティングは、管理人がルーティングテーブルを変更しない限り、ルーティングテーブルを改ざん、偽造される可能性が自動で行われるダイナミックルーティングより少ないというセキュリティ面でのメリットがあります。

しかし、例えばBのルータに障害が起きた時スタテッィックルーティングだとAのルータへ送ることはありません。

小悪魔に送る時に使われないといっても、Aが全く使えないわけではないのです。この場合だと、125.6.176.0/24のネットワーク以外の125.6.176.0/16内のコンピュータに送る時に使われてたりします。

しかし、スタティックルーティングでは手動で小悪魔に送るために次に渡すのはB!決めてしまっているので障害が起きても自動でAに送るよう変わってくれたりしないのです。

ならば!自動でのルーティング設定、それがダイナミックルーティングです!

ダイナミックルーティングではルータ同士で知っている経路情報をやりとりしてルーティングテーブルを作成します。

このとき使われるプロトコルがルーティングプロトコルです。

ダイナミックルーティングのメリットは、障害が発生した時、経路変更を自動で行ってくれることです。

ダイナミックルーティングはルーティングプロトコルによって自動で経路情報を更新します。

ダイナミックルーティングではRIP2とOSPF、BGPなどといったルーティングプロトコルが使われます。

スタティックルーティングではねこさんルータへの経路はいぬさんルータを通る!と決めてしまうので、いぬさんルータが使えなくなってしまうとネコさんルータに手紙を送ることは出来ません。

セキュリティではスタティックルーティング、便利さでいえばダイナミックルーティング、というわけです。

もうひとつ、デフォルトルートというものが存在します。

デフォルトルートは、スタティックルートの一種で、ルーティングテーブルにないすべての経路を指し示す特殊な経路です。

サーバエンジニアがよく見るのはこのデフォルトルート!です。

ネコルータへの経路のわからなかったうさルータはうさパケットを破棄してしまっていましたが、デフォルトルートが設定されていれば捨てられることはありません。

実はパソコンにもルーティングテーブルが存在します。

同じネットワークのコンピュータに送る時、ブロードキャストするとき、サブネットのそとのコンピュータに送る時…

コンピュータはどこに送ればいいのかルーティングテーブルを見て決めています。

パソコンのルーティングテーブルが設定しているのはほとんどがデフォルトルートです。

くまさん宛てのうささんの手紙がまずはうさルータに渡されているのは、デフォルトルートとしてうささんのルーティングテーブルに次はうさルータへと設定されているからなのです。

デフォルトルートのメリットは経路集約です。

インターネットのフルルートは2010年現在約33万経路あります。BGPルータというルータがすべての経路のルーティングテーブルを持っているため、インターネットのすべての機器のルーティングテーブルにすべての経路をのせる必要はないし、ルーティングに時間をかけないためにもデフォルトルートが使われて、ルーティングテーブルをなるべく小さくしています。

インターネットとは?まとめ!

21.09.10 / インターネットとは? / Author: / Comments: (5)

インターネットとは?終了!ってことで今日はまとめです!

情報の流れる経路をネットワークと呼びます。ネットワークが世界規模であつまったのがインターネットです。

インターネットはもとは戦争時に情報を分散させて守るためにつくられた通信の仕組みでした。

インターネットはメインのコンピュータをつくらず、コンピュータを分散させてたくさんの通信経路をつくります。

インターネットは運営している団体はいないのです。(管理をする団体はいます)

1つの通信経路で障害が起きても他の経路を使って通信出来るという利点が、今日インターネットが広く使われている理由の1つです。

インターネットは世界規模のネットワークなわけですから、みんなが守るべき約束事があります。

それがプロトコルで、通信用のプロトコルをTCP/IPといいます。

通信で送られるデータは小さな小包、パケットにわけて送られます。

IPは目的のコンピュータまでパケットを送るための、TCPはパケットを正しく送ってもらうための約束事です。

世界規模の大きなネットワーク、インターネットを構成するもっとも小さなネットワークをセグメントといいます。

家や会社など、狭い範囲でつながれたコンピュータのネットワークがセグメントです。

セグメント内の通信に使われるアドレスをMACアドレスといいます。

MACアドレスはNICというパソコンの部品につけられた固有の番号です。

IPによって振り分けられるIPアドレスと通信に使うMACアドレス、なぜ二つもアドレスが必要なのでしょうか?

それは、MACアドレスが規則性がなくグループ化ができないからです。

IPアドレスはネットワークアドレス部とホストアドレス部からできていて、グループ化が可能です。

IPアドレスをネットワークアドレスごとにグループ化することで通信の効率化ができるのです。

しかし、IPアドレスは変わることがあります。

IPアドレスは固定で使えるようにしない限り、ネットワークへの接続のたびにあいているアドレスをつけるようなっているからです。

そのため、MACアドレスのみの通信も難しいですが、IPアドレスだけでの通信も出来ないのです。

こうして、IPアドレスを使って通信したいコンピュータのいるサブネットまで送り、セグメント内ではMACアドレスを使うしくみができました。

セグメントの中のコンピュータはハブとLANケーブル(もしくは無線LAN)でつながってネットワーク化されています。このネットワーク内で他のセグメントとの通信の制御を行うものをルータといいます。

ルータはセグメント内のコンピュータのブロードキャストを使ってセグメント内のコンピュータのIPアドレスとMACアドレスの対応を行います。

普通の通信はユニキャストと言って、一対一のやりとりです。

糸電話として例えるなら、ブロードキャストは拡張器のようなものです。

届いたパケットの宛先のIPアドレスが自分のセグメント外のコンピュータのものだった場合はバケツリレーのように他のルータにパケットを送ります。

IPアドレスが自分のセグメント内のコンピュータのものであれば、対応したMACアドレスを持つコンピュータにパケットを送ります。

これがインターネットのしくみです。