次のページ 前のページ 目次へ

5. プロクシ ARP によるルーティング

さて、基礎として必要な部分については説明が終わったので、このドキュメント の目的の部分に移ることにしましょう。

プロクシ ARP を実行している Linux が、IP アドレスおよび対応するハー ドウエア MAC アドレスのエントリを ARP キャッシュに格納することと、 このキャッシュが IP アドレスを MAC アドレスに変換するのに使われると いうことを思い出して下さい

リモートシステムが IP アドレス 10.124.12.5 に接続するときに、Linux はこの IP アドレスと、eth0 コントローラに対応する MAC アドレスを ARP キャッシュに格納します。

その後に IP アドレス 10.124.12.5 を MAC アドレスに変換する要求 (ARP) を受け取った場合、このテーブルから得たエントリーを要求元に返します。 その結果、この IP アドレスに送られたパケットは、いったんこのサーバに 送られ、サーバはそれをリモートシステム (10.124.12.5) に転送します。

これが プロクシ ARP の仕組みです。 サーバは リモートな IP アドレスに対する proxy (つまり、代理人、でしゃばり屋、 「表向きの」人などなど) として機能するわけです。 つまり、ARP 要求に応答することで、リモートな IP アドレスに対する パケットを受け付け、それらを転送するわけです。

ところで、プロクシ ARP がうまく動作するためには、リモートな IP アドレス (この例では 10.124.12.5) は、(訳注:サーバに接続されている) ネットワーク アダプタの IP ネットワークのうちの一つでなければなりません。

これには二つの理由があります。

一つ目の理由は、コントローラの MAC アドレスは、それに対応する IP アドレス の ARP キャッシュに格納されるからです。ARP キャッシュは、IP アドレス から MAC アドレスへの変換テーブルなので、ARP 割り当て (assignment) を おこなうためには、MAC アドレスが必要です。

二番目の理由は、ネットワーク上のすべてのシステムは、それぞれ独自に ルーティングをおこなっているという点です。 しかし、それぞれのシステムは少なくとも、リモートな IP アドレスに対して IP パケットを送るためには、「それと同じ線につながっている」サーバの ネットワークアダプタに送らなければならないことはわかっています。

(校正者注:リモート 10.124.12.5 に対する Proxy ARP をあてがう インターフェースは、10.124.0.0 ネットワークに接続されている必要がある、 ということでしょう。 ほかのネットワークにあるシステムが 10.124.12.5 にパケットを送る場合、 とりあえず 10.124.0.0 のネットワークまで要求を送り付けてくるはずなの で、インターフェースが 10.123.0.0 ネットワークなどにあっても、そもそ も ARP 要求があったことがわかりませんから。(ARP 要求はネットワークに 対するブロードキャストとして実行されるのではなかったかと思います。))


次のページ 前のページ 目次へ