第4章 arp:アドレス解決プロトコル - wide...
TRANSCRIPT
-
1
第4章 ARP:アドレス解決プロトコル
-
4.1 イントロダクション
2
同じ物理ケーブル上でもEthernetやトークンリングなど異なるデータリンクを利用できる
どのインターフェースを使うかはもちろんIPデータグラムではなくEthernetフレームで判断される
IPv4アドレスからデータリンクのアドレスを知るためのプロトコルがARP(RFC826, RFC5227, RFC5494)
-
4.2 1つの例 / 4.3 ARPキャッシュ
3
$ ftp demmy.jp
1. DNSや/etc/hostsでドメイン名をIPアドレスに変換2. FTPがTCPに対象のIPアドレスとコネクション確立を要求3. TCPがARPに物理アドレスを要求
4. ARPがARP要求(宛先のIPを含む1つのEthernetフレーム)をブロードキャスト5. 自分のIPが要求されていたホストが物理アドレスを含むARP応答を返す
6. TCPがIPデータグラムでコネクション要求セグメントを送信 (18章で詳説)......
※ ポイント・ツー・ポイント接続ではARPは使用しない
* 論理アドレスと物理アドレスの最新のマッピングを保持* Ciscoの機器で4時間保持されており、他もその実装が多い
ARPキャッシュ
-
4.2 1つの例 / 4.3 ARPキャッシュ (図)
4
-
ARP : 0x0806RARP : 0x8035 Ethernet : 0x0001 IP : 0x0800
ARP要求 : 0x0001ARP応答 : 0x0002RARP要求 : 0x0003RARP応答 : 0x0004
4.4 ARPパケット形式
5
-
4.5 ARPの例 (1)
6
ブロードキャスト・アドレス
Ethernetフレームデータ長
-
4.5 ARPの例 (2)
7
照会されたホストがダウンしているか存在しない場合
※ TCPタイムアウトと再転送アルゴリズムについては21章で解説
* 繰り返しARP要求が行われる* TCPコネクション要求のタイムアウトは75秒と設定されていることが多い* ARP要求だけでTCPセグメントは送信されないことに注意
ARPのタイムアウトは通常、ARPキャッシュのエントリに対して提供されている
-
4.6 代理ARP
8
ルータがホストの代わりにARP要求に応える
* 旧式のTCP/IP実装を持つホスト・グループを隠すために使った
無差別ARP / ARPハック
-
根拠のないARP
9
自分自身のIPアドレスを探すためのARP要求
* 他のホストが同じIPアドレスを使用していないか確認できる* インタフェース・カードを交換した場合などに他のホストへ
ARPキャッシュ・エントリの更新を促す
キャッシュに存在するIPアドレスからのARP要求を受け取るとそのキャッシュ・エントリを送り手のハードウェア・アドレスで更新する
※ 仕様に沿っていないARPを実装したクライアントもあるため注意が必要
-
arpコマンド
10
$ arp
-a キャッシュ・エントリを表示
-d 全てのキャッシュ・エントリを削除
-s キャッシュ・エントリを追加 (タイムアウトされない)
temp
タイムアウトされるように設定
pub
ARPエージェントとして立ち上がる (代理ARPとして使用可能)
-
補足: IPv6のL2アドレス解決
11
Neighbor Discovery Protocol (NDP) (RFC2461, RFC3122)
* ブロードキャストではなくマルチキャストで要求を送信* ICMPv6パケットを使用してアドレス解決や様々な機能を実現
-
12
第5章 RARP:逆アドレス解決プロトコル
-
5.1 イントロダクション / 5.2 RARPパケット形式
13
Xターミナルやディスクレス・ワークステーションではコンフィギュレーション・ファイルでIPを設定できない
ハードウェア・アドレスから自身のIPアドレス情報を他のシステムから返してもらうためのプロトコルがRARP
コンセプトは単純だが、実装はARPよりも困難
(RFC903)
パケット形式はARPと同様 * RARP要求はブロードキャスト* RARP応答は通常ユニキャスト
-
5.3 RARPの例
14
TFTP読み込み要求(RRQ)の実行
※16章でRARP・BOOTP・TFTPを用いた起動シーケンスについて詳説
-
5.4 RARPサーバーの設計
15
RARPサーバの設計はシステムに依存する
ARPサーバはシンプルでカーネルのTCP/IPの一部として用意されている
* ディスク・ファイルにハードウェア・アドレスとIPアドレスのマッピングを提供* ユーザー・プロセス起動される必要がある* 特定のEthernetフレームを送受信しないといけない* ハードウェア・レベルのブロードキャストで送信する必要がある* 冗長性を高める必要があるため、ネットワーク・トラフィックが増加する* 複数のサーバからでもARP応答は1台のホストしか送信しないようにする必要がある