Document

Networkゼミ
特別講義
~仕組みがわかればネットワークはもっと楽しくなる~
[TCP/IPアプリケーション編]
この特別講義の位置づけ
ネットワークゼミのメンバー用の講義であり、
インターネットの基盤となっている技術の基礎知識を
身につけるために行う。
•
•
•
•
•
TCP/IP編
TCP/IP(アプリケーション)編
IPマルチキャスト編
ネットワークプログラミング編
IPルーティング編
扱うアプリケーションプロトコル
•
•
•
•
•
SMTP
POP
NTP
DHCP
DNS
SMTP
•
•
•
•
•
•
正式名称 : Simple Mail Transfer Protocol
RFC : 821,822,1869,2821,2822
Transport : TCP
Port : 25
Message : Text
役割 :メール転送の中継を行う
SMTPサーバ(local)
SMTP
SMTPサーバ
SMTPサーバ(MX)
SMTPサーバ(MX)
クライアント
SMTPサーバ(local)
クライアント
SMTP
Session 開始
EHLO mail.hoge.com
250 OK
Sender通知
MAIL FROM: <[email protected]>
250 Sender OK
RCPT TO: <[email protected]>
Recipient通知
250 Recipient OK
mail.hoge.com
Message送信
DATA
354 Enter mail
Message <CR><LF>.<CR><LF>
250 Message accepted
Session 終了
QUIT
250 OK
mail.is.noda.tus.ac.jp
SMTP
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from mt.is.noda.tus.ac.jp (issoft0.is.noda.tus.ac.jp [133.31.103.210])
by mail.is.noda.tus.ac.jp (Postfix) with SMTP id D14FE52809D
for <[email protected]>; Mon, 11 Jun 2007 13:18:25 +0900 (JST)
Received: (qmail 13071 invoked from network); 11 Jun 2007 13:18:25 +0900
Received: from unknown (HELO ?192.168.10.10?) (127.0.0.1)
by localhost.mt.is.noda.tus.ac.jp with SMTP; 11 Jun 2007 13:18:25 +0900
Delivered-To: [email protected]
Received: (qmail 13057 invoked from network); 11 Jun 2007 13:18:23 +0900
Received: from unknown (HELO nm01omta019.dion.ne.jp) (211.5.2.77)
by issoft0.is.noda.tus.ac.jp with SMTP; 11 Jun 2007 13:18:23 +0900
Received: from takedaweb ([221.119.167.224]) by nm01mta.dion.ne.jp
id <[email protected]>;
Mon, 11 Jun 2007 13:18:23 +0900
Message-ID: <001001c7abdf$8fa413a0$0600a8c0@takedaweb>
From: =?iso-2022-jp?B?GyRCQXBMbiEhTTU7ShsoQg==?= <[email protected]>
To: =?iso-2022-jp?B?GyRCSXBFRDgmGyhCTUw=?= <[email protected]>
Date: Mon, 11 Jun 2007 13:18:27 +0900
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset="iso-2022-jp";
reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.3028
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028
Subject: [issoft_big 379]
=?iso-2022-jp?b?GyRCTEBGfCROJU0lQyVIJTwlXyRPQy8kRyRiOzIyQzJEGyhC?=
=?iso-2022-jp?b?GyRCJE45VjVBJEckORsoQg==?=
X-BeenThere: [email protected]
X-Mailman-Version: 2.1.6
Precedence: list
List-Id: =?iso-2022-jp?b?GyRCSXBFRDgmNWY8PBsoQk1M?=
<issoft_big.mt.is.noda.tus.ac.jp>
List-Unsubscribe: <http://issoft0.is.noda.tus.ac.jp/mailman/listinfo/issoft_big>,
<mailto:[email protected]?subject=unsubscribe>
List-Archive: <http://issoft0.is.noda.tus.ac.jp/mailman/private/issoft_big>
List-Post: <mailto:[email protected]>
List-Help: <mailto:[email protected]?subject=help>
List-Subscribe: <http://issoft0.is.noda.tus.ac.jp/mailman/listinfo/issoft_big>,
<mailto:[email protected]?subject=subscribe>
Sender: [email protected]
Errors-To: [email protected]
SMTP関連のプロトコル・技術
• ESMTP (Extended SMTP)
▫ SIZE PIPELINING などなど
▫ http://www.puni.net/~mimori/smtp/service.html
• POP before SMTP
▫ POPのアカウントを利用し,安全にSMTP送信を行う技術
• SMTP AUTH
▫ 後述するAPOPに準じた認証 でもまだあまり普及していな
い・・・
POP
•
•
•
•
•
•
正式名称 : Post Office Protocol
RFC : 1225,1939
Transport : TCP
Port : 110
Message : Text
役割 : クライアントPCでサーバに届いた
メールを読む込む
POP
どこかのメールサーバ
SMTP
ユーザB
ユーザA
メールサーバ
POP
ユーザC
クライアント
POP
USER 認証
USER username
+OK please send PASS command
PASS password
+OK 10 message ready for username in ****
Mailbox 確認
STAT
+OK * ***
Client
一覧確認
LIST
+OK * ***
Mail 取得
RETR 10
+OK <メールの中身>
終了
QUIT
+OK
mail.is.noda.tus.ac.jp
POP関連のプロトコル・技術
• APOP
▫ チャレンジ&レスポンス方式でパスワードを隠す方法
▫ この方法はパスワードを隠すことしかできない点に注意
• IMAP
▫ サーバにメールを残し,それを操作する機能もサーバで提供
する.
NTP
•
•
•
•
•
•
正式名称 : Network Time Protocol
RFC : 1305,2030
Transport : UDP
Port : 123
Message : Binary
役割 : 時刻合わせ
NTP
GPS
原子時計
Stratum-1
Stratum-2
NTPの動作の流れ
1.
2.
3.
NTPクライアントがNTPサーバへクライアントの時刻
を送る.
NTPサーバは受け取った時刻と自身の時刻をを返信す
る.
NTPクライアントは往復にかかった時間[3]-[1]を2で
割ってサーバから受け取った時刻[2]に加えた時刻を正
式の時刻とする.
日本の NTP stratum-1 サーバ
•
•
•
•
•
•
•
•
•
•
•
•
•
•
NICT: ntp.nict.jp (133.243.238.{163,164,243,244})
国立天文台: gpsntp.miz.nao.ac.jp (133.40.41.175)
高エネルギー物理学研究所: gps.kek.jp (130.87.32.71)
東京大学: ntp.nc.u-tokyo.ac.jp (130.69.251.23)
東京理科大学: ntp.sut.ac.jp (133.31.180.6)
東北大学: ntp1.tohoku.ac.jp (130.34.11.117)
東北大学: ntp2.tohoku.ac.jp (130.34.48.32)
豊橋技術科学大学: ntp.tut.ac.jp (133.15.64.8)
大阪府立大学: eagle.center.osakafu-u.ac.jp (157.16.213.52)
神戸港湾職業能力開発短期大学校: gps.kobe-pc.ac.jp (210.164.106.226)
広島大学: ntp.hiroshima-u.ac.jp (133.41.4.1)
福岡大学: clock.nc.fukuoka-u.ac.jp (133.100.9.2)
福岡大学: clock.tl.fukuoka-u.ac.jp (133.100.11.8)
NTTソフト研: ntp.nttsl.mfeed.ne.jp (210.173.162.106)
2005年2月時点
DHCP
• 正式名称 :
Dynamic Host Configuration Protocol
• RFC : 2131,2132
• Transport : UDP
• Port : 67,68
• Message : Binary
• 役割 : アドレスの自動割当
DNSやデフォルトゲートウェイ情報などの
ネットワーク情報の自動設定
DHCP
アドレスプール
DHCPサーバ
ブロードキャストで要求
アドレス割り当て
DHCP
DHCP DISCOVER
DHCP OFFER
DHCP REQUEST
DHCP ACK
アドレス利用中
DHCP RELEASE
DHCP packet
Client IP
Server IP
Your IP
Client MAC
DHCPパケットフォーマット
DNS
•
•
•
•
•
•
正式名称 : Domain Name System
RFC : 1034,1035
Transport : UDP
Port : 53
Message : Binary
役割 :アドレスと名前の対応付け
名前解決の仕組み
DNSサーバ
DNSサーバ
2.ネームサーバ同士の名前解決
問い合わせ
回答
回答
問い合わせ
1.クライアントと
ネームサーバ間の名前解決
ドメイン名とドメイン
ホスト名
ドメイン名
www.is.noda.tus.ac.jp .
ルートドメイン
トップレベルドメイン
セカンドレベルドメイン
サードレベルドメイン
FQDN(Fully Qualified Domain Name)
ドメインのツリー構造
ルート .
jp
com
org
arpa
JPゾーン
ac
tus
co
JPドメイン
in-addr
権限委譲
nodans.noda.tus.ac.jp
※概念上は1つのゾーンには
ネームサーバが1台ある
権限の委譲
isws01.is.tus.ac.jp
noda.tus.ac.jpゾーン
noda.tus.ac.jpドメイン
is.noda.tus.ac.jpゾーン
2種類の問い合わせ
• 反復的問い合わせ(iterative)
▫ 問い合わされたドメイン名に対し,名前解決でき
そうな別のネームサーバを紹介する.
• 再帰的な問い合わせ(recursive)
▫ 問い合わされたドメイン名に対し,最終的なIPア
ドレスを求める.
a.root-sever.net
反復的問い合わせ
再帰的問い合わせ
a.dns.jp
2
3
tusns.tus.ac.jp
4
ns.hoge.com
5
1
nodans.noda.tus.ac.jp
6
7
isws01.is.noda.tus.ac.jp
hoge.comドメイン 1.
2.
3.
4.
5.
6.
7.
www.is.noda.tus.ac.jpを問い合わせる
jp.の問い合わせの結果a.dns.jpを得る
tus.ac.jp. - tusns.tus.ac.jpを得る
noda.tus.ac.jp - nodans.noda.tus.ac.jpを得る
is.noda.tus.ac.jp- isws01.is.noda.tus.ac.jpを得る
www.is.noda.tus.ac.jp-133.31.103.15を得る
133.31.103.15を返す
named.conf
options {
directory "/var/named";
forwarders {
133.31.85.17;
133.31.85.15;
};
};
zone "." IN {
type hint;
file "root.cache";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.IN-ADDR.ARPA" IN {
type master;
file "localhost.rev";
};
zone "is.noda.tus.ac.jp" IN {
type master;
file "is.noda.tus.ac.jp.zone";
};
zone "is.noda.sut.ac.jp" IN {
type master;
file "is.noda.tus.ac.jp.zone";
//file "is.noda.sut.ac.jp.zone";
};
zone "103.31.133.IN-ADDR.ARPA" IN {
type master;
file "103.31.133.rev";
};
zone "112.31.133.IN-ADDR.ARPA" IN {
type master;
file "112.31.133.rev";
};
zone "113.31.133.IN-ADDR.ARPA" IN {
type master;
file "113.31.133.rev";
};
zone "114.31.133.IN-ADDR.ARPA" IN {
type master;
file "114.31.133.rev";
};
ゾーンファイルの項目
• SOA (Start of Authority)レコード
▫ ゾーンの開始を意味し、各種の制御情報などを定義する
• NSレコード
▫ ドメインのネームサーバを定義する
• MXレコード
▫ ドメインのメールサーバ名を定義する
• Aレコード
▫ ホストのIPアドレスを定義する
• PTRレコード
▫ IPアドレスに対するとFQDNを定義する
• CNAMEレコード
▫ ホスト名の別名を定義する
逆引き
DNSの正引きと同じツリー構造が使用されている
ルート .
arpa
in-addr
133
実際の設定(正引き)
$TTL 86400
@
@
ed
IN
SOA isws01.is.noda.tus.ac.jp. j6307611.ed.noda.tus.ac.jp. (
2008022802; Serial
3600 ; Refresh
1000 ; Retry
3600000 ; Expire
3600 ; Minimum
)
IN NS isws01.is.noda.tus.ac.jp.
IN MX 100 mail
IN MX 100 ispcsv01
;CS 120-129 240-249
cs
IN NS ns.cs
ns.cs
IN A
133.31.103.125
;TM 190-199
tm
IN NS ns.tm
ns.tm
IN A
133.31.103.191
isblade
IN A
133.31.113.67
ispcsv01
IN A
133.31.113.12
ispcsv02
IN A
133.31.113.13
実際の設定(逆引き)
$TTL 86400
@
10
11
12
13
14
15
IN
IN PTR
IN PTR
IN PTR
IN PTR
IN PTR
IN PTR
SOA isws01.is.noda.tus.ac.jp. j6306640.ed.noda.tus.ac.jp. (
2008022803 ; Date revised
3600 ; Refresh
1000 ; Retry
3600000 ; Expire
3600 ; Minimum
)
iswsfw10.is.noda.tus.ac.jp.
iswsfw11.is.noda.tus.ac.jp.
iswsfw12.is.noda.tus.ac.jp.
iswsfw13.is.noda.tus.ac.jp.
iswsfw14.is.noda.tus.ac.jp.
iswsfw15.is.noda.tus.ac.jp.