メインコンテンツへスキップ
検索

STCPには以前から重複IPアドレスの検出機能がありましたが、MicrosoftWindows 2008および7の動作が変更されたことにより、興味深い点が追加されました。

まずはその仕組みをおさらいしましょう。

重複IPアドレスの検出は、アドレス解決プロトコル(ARP)に依存しています。

packet_monitorツールは、ARPパケットを2行で

11:13:43.123 Rcvd Ether Dst ff:ff:ff:ff:ff:ff:ff Src 00:13:d4:59:7a:da タイプ 0806 (ARP)
ARP Reqターゲット 164.152.77.217 Src 164.152.77.34[00:13:D4:59:7A:DA]

どこにあるか

RCVD バイトが受信されたことを示します。もう一つのオプションは、バイトが送信されたことを示す Xmit です。
エーテル イーサネットフレームヘッダが次のようになっていることを示します。
Dst ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff イーサネットの宛先(この場合はブロードキャストアドレス
Src 00:13:d4:59:7a:da イーサネットのソースアドレス
0806型(ARP これがARPフレームであることを示します。
アープ ARPフレームヘッダが次のように続くことを示す
求められるもの これはリクエスト(MACアドレスを探している)フレームであることを示します。もう一つのオプションはRepで、応答を示します。
ターゲット 164.152.77.217 ターゲットのIPアドレス
Src 164.152.77.34 送信ホストのIPアドレス
[00:13:D4:59:7A:DA] 送信ホストのイーサネットアドレス

STCPは、次のように見ています。 演算子フィールドで、それが受信したインターフェイスのIPアドレスと一致した場合、STCPは重複したIPアドレスをsyserr_logに以下の形式のメッセージで報告します。

<time> WARNING (<index>): MAC address <MAC address> is using our IP address <IP address>

例えば

11:13:43 WARNING(5)。MAC アドレス 00:13:d4:59:7a:da は当社の IP アドレス 164.152.77.34 を使用しています。

MAC」はMedia Access Controlの略で、MACアドレスを知ることで、問題のあるホストの識別の手がかりを得ることができます。アドレスの最初の 3 バイトは、OUI (Organizationally Unique Identifier) と呼ばれ、イーサネットカードまたはそれが存在するホストを特定するために使用される。例えば、Stratus には、00-00-A8 と 00-04-FC という 2 つの OUI が登録されている。OUI は、http://standards.ieee.org/develop/regauth/oui/public.html で調べることができます。

STCPを含む多くのホストは、起動時やIPインタフェースが設定されているときに、 gratuitous ARPとして知られているものを送信します。このフレームは基本的に自分自身のIPアドレスを探しており、応答があればそのIPアドレスが使用中であることを知っています。ここでは、別のVOSモジュールがインターフェースの1つを起動するときに送信される無償ARPを示すpacket_monitorトレースの例を示しています。両方の 対象者そして 置換元のフィールドは同じIPアドレスを持っています。

10:19:53.045 Rcvd Ether Dst ff:ff:ff:ff:ff:ff:ff Src 00:00:00:a8:41:3b:6e タイプ 0806 (ARP)
ARP Reqターゲット 164.152.77.34演算子 164.152.77.34[00:00:00:a8:41:3b:6e]

さて、この記事の冒頭で述べたこのシワは何なのでしょうか?

Windows 2008 およびWindows 7 以降、Microsoft TCP スタックは、Src フィールドを次のように設定した無償の ARP を送信します。 0.0.0.0.

10:45:10.530 Rcvd Ether Dst ff:ff:ff:ff:ff:ff:ff Src 1c:c1:de:b4:76:60 タイプ 0806 (ARP)
ARP Reqターゲット 164.152.77.34 Src 0.0.0.0.0[1c:c1:de:b4:76:60]

その結果、STCPはこれがイーサネットアドレスに対する「通常の」クエリであると考え、通常の応答を返します。

10:45:10.530 Xmit Ether Dst 1c:c1:de:b4:76:60 Src 00:00:00:a8:41:3b:6e タイプ 0806 (ARP)
ARP Rep Target 0.0.0.0.0 [1c:c1:de:b4:76:60] Src 164.152.77.34 [00:00:a8:41:3b:6e]

IPアドレスが重複していることを示すものは記録されない。良いニュースは、Windows スタックが重複を認識し、169.254.X.Y という形式のリンクローカルアドレスに切り替わることである。

マイクロソフトはなぜこの変更を行ったのでしょうか?多くのTCPスタック(STCPを含む)は、ARPフレームに含まれるイーサネットアドレスでソースIPアドレスのARPキャッシュエントリを更新するようです。IPアドレスが重複している場合、パケットが重複しているホストにリダイレクトされるため、重複しているIPアドレスへの現在の接続が切れてしまいます。Srcフィールドを0.0.0.0.0に変更することで、MicrosoftはTCPスタック(STCPを含む)がARPキャッシュエントリを更新するのを防ぎます。

メニューを閉じる

© 2024 Stratus Technologies.