この投稿で述べたように:
理由不完全なARPが表示されるのは、「そのアドレスに対してARP要求が送信されましたが、そのアドレスを持つホストがLAN上で稼働していないため、応答がありません」
したがって、マルチレイヤスイッチがサーバーにARP要求を送信し、応答がない場合、ARPはスイッチのARPテーブルで不完全としてマークされます。
ただし、サーバーがARP要求をサーバーに送信するとどうなりますか。切り替えても応答がありませんか?サーバーはARPテーブルに不完全なARPを表示し、スイッチはエントリを表示しませんか?
上記が正しいとすると、ローカルデバイスに不完全なARPエントリが表示された場合、問題が発生していると言えます。接続(またはケーブル接続)のもう一方の端にあるデバイスを使用していますか?または、いくつかの例外がありますか?
コメント
- @RonTrunkが指摘しているように、スイッチは、認識も気にもしない透過的なレイヤー2デバイスです。レイヤー3(IP)アドレス指定については、' ARPを使用または応答しません。スイッチは管理されている可能性があるため、スイッチの管理はネットワーク上のホストのようなものであり、ARPを使用して応答するレイヤー3インターフェイスを備えていますが、それはまだ何も知らないスイッチング機能とは関係ありません。レイヤー3について。 'レイヤー3デバイスのARPをスイッチのMACアドレステーブルと混同しないでください。多くの人が混乱します。
- スイッチはL3ゲートウェイとして機能しますか、それともL2スイッチとして機能しますか?
- @cpt_fink、はい、" switch "マルチレイヤスイッチ(L3ゲートウェイ)を意味しました
回答
レイヤー3スイッチの場合、スイッチのレイヤー3モジュールはルーターであり、ルーターと同じように機能し、ARPの他のホストと同じように機能します。レイヤ3スイッチは依然として主にレイヤ2スイッチであり、レイヤ2スイッチはレイヤ2スイッチと同じように機能します。レイヤ3スイッチのレイヤ3とレイヤ2の部分は、実際には分離されています。レイヤー3インターフェース(仮想インターフェースとレイヤー3インターフェースとして構成された物理インターフェースの両方)はARPテーブルを使用しますが、レイヤー2インターフェースはMACアドレステーブルを使用します。
ホストの場合、ルーターまたはルーティングモジュールをレイヤー3スイッチに含め、ARP要求を送信し、応答を受信しない場合、ARPテーブルエントリをincomplete
としてマークします。
しかし、サーバーがARP要求をスイッチに送信したが、応答を受信しなかった場合はどうなるでしょうか。サーバーはARPテーブルに不完全なARPを表示し、スイッチはエントリを表示しませんか?
状況によって異なります。ホストがルーターを含む別のホストにARP要求を送信したが、まだ応答を受信していない場合、ホストのARPテーブルエントリには、ルーターのIPv4アドレスとしてincomplete
のマークが付けられます。
ルーターがARPテーブルに何を持っているかは、ルーターがARP要求を受け取ったかどうか、およびルーターがホストのARPテーブルエントリをすでに持っているかどうかによって異なります。
-
ホストの既存のARPテーブルエントリを持つルーターは、タイムアウトのためにルーターがそれをパージするまで、そのエントリを保持し続けます。タイムアウトはRFCによって義務付けられていませんが、RFCには、ARPテーブルエントリにタイムアウトを使用する可能性を扱うセクションがあり、ほとんどのホストはこれを行います:
テーブルのエージングやタイムアウトが望ましい場合があります。これらの実装は、このプロトコルの範囲外です。
- ルーターがARP要求を受信せず、次のエントリがなかった場合ホストの場合、ルーターのARPテーブルにエントリはありません。
- ルーターがホストからARP要求を受信したが、ホストへの応答が失われた場合、ルーターは完全なARPを持ちます。ホストのテーブルエントリ。
ARPの動作を理解するには、 RFC 826、Anイーサネットアドレス解決プロトコル-または-イーサネットハードウェアで送信するためにネットワークプロトコルアドレスを48ビットのイーサネットアドレスに変換する 。 ARPはIPv4で機能しますが、ARPの代わりにND(近隣探索)を使用するIPv6では機能しないことに注意してください。
回答
2つのIPv4ノードが共通のレイヤー2セグメント(通常はイーサネット)で通信するには、ARP解決が成功する必要があります。
不完全なARP要求には2つの基本的な理由があります。
-
ARP要求に応答していません。宛先ノードがARP要求を受信していないか、その応答を受信していません。宛先ノードがダウンしている可能性があります。
-
送信元ノードのネットワークマスクが正しく構成されていません。送信元ノードは、自身のサブネット内のすべての宛先をローカルまたはオンリンクと見なします。ゲートウェイルーターを使用せずに、イーサネットインターフェースを介して直接通信できることを期待しています。
192.168.0.0/24サブネット内のノードが192.168.0.10/ 16 で誤って設定されていると、192.168.16.1ローカルのような宛先と見なされます。ゲートウェイを使用しようとはしませんが、不完全なままの直接ARPを試行します。
送信元または宛先/ネクストホップノードがルーターであるかどうか、マルチレイヤースイッチまたはエンドノードは「重要ではありません。
回答
スイッチのARPテーブルは、IPトラフィックのスイッチ管理インターフェイスでのみ使用されます。スイッチ自体によって生成されます。
それ以外の場合、スイッチはレイヤー2情報のみを参照します。ARPを理解しません。
コメント
- はい、マルチレイヤスイッチを意味しました
回答
別の考えられる理由-dhcpcdの設定が正しくありません
この回答を追加しますが、(おそらく)上記の特定の質問に直接関連していませんが、場合によっては関連しています
システムの静的ip / dhcp設定が正しくない場合、これは間接的な副作用として現れる可能性があります。
私の特定のケースでは、場所を移動してネットワーク設定を変更したLinuxマシンがありました。 ngsfor。
マシンを元に戻したときに、/etc/dhcpcd.conf
で更新するのを忘れました。
これは私の
interface eth0 static ip_address=192.168.1.8/24 static routers=192.168.1.254 #static routers=192.168.1.1 static domain_name_servers=127.0.0.1
壊れたとき"壊れた"、static routers=192.168.1.254
の行をコメントアウトしましたが、#static routers=192.168.1.1
の下の行はコメント解除されました。
これにより、arp
に無効なエントリ("不完全")が表示されました。アドレス192.168.1.1
。
このシステムを1週間前に移動してから数日前に戻したにもかかわらず、何が問題だったのかまったくわかりませんでした。それと。私の知る限り、ローカルネットワークに接続し、SSHで正常に接続でき、ip addr
で問題が発生することはありませんでした。 traceroute
も有用な情報を表示していませんでした。これは、すべてのクエリがシングルホップを介して"マシンのホスト名に送信されていることを示しています"。明らかにそれは意味がなく、間違っていましたが、問題が何であるかについては何もわかりませんでした。これは、すべてのクエリが(何らかの方法で)解決されていることを意味します。同じマシン。ちなみに、このマシンはDNSを実行します。
OPの問題とは直接関係ありませんが、将来この問題が発生する他の人にとっては非常に役立つ可能性があります。これは、これまでに見つけた唯一の方法です。
これをどのように診断したかについてのメモ
- このマシンを他のマシンのDNSサーバーとして使用する場合ネットワーク、それらのマシンは外部DNS要求を解決できませんでした
- DNSサーバーにsshできました(IPが静的に設定されているため、スイッチ/ルーターもこれを備えたマシンを認識していると予想されます)スイッチを介してローカルイーサネットに接続された静的IP)。
- 問題を最初に示したのは、
sudo apt update
が失敗したことです。 (これはDNSサーバーであるため、グラフィカルインターフェイスがないため、Webブラウザーのようなものを実行すると、この問題がはるかに早く、またはネットワークデスクトップトレイアイコンから示されますが、これらのことは何もありません。) -
ping 8.8.8.8
も失敗していましたが、ローカルマシンのsshとpingは問題ありませんでした -
/etc/network/interfaces[.d]
ただし、DNSソフトウェアがこれらを管理するため、これらのディレクトリ内のすべてのファイルは空白/デフォルトに設定されていました - 提供されたWebインターフェイスを介してDNSサーバーに接続するときに、DNSソフトウェアにエラー/警告はありませんでした
-
ip addr
(問題なし)やarp
などのチェックを開始しました。すでにtraceroute
は、問題が何であるかを示していませんでしたが、何か奇妙なことが起こっていることを示していました。 -
arp
のエントリが不完全である理由を検索すると、正しい行に沿って案内されました - この質問を見つけました( https://serverfault.com/questions/765380/when-do-stale-arp-entries-become-failed-when-never-used )、arpエントリを削除する方法の調査を開始しました
-
arp -d 192.168.1.1
- それでも戻ってきました
- ローカルネットワーク上の
192.168.1.1
に別のネットワークから接続しようとしましたマシンですが、このアドレスを持つマシンがネットワーク上にないため、これを実行したりpingを実行したりできなかったのは驚きではありませんでした - 通常、このアドレスはゲートウェイ/ ISPルーターのアドレスになります。ホームアプリケーション
- これにより、別の場所にネットワークアダプターを設定して、アドレス
192.168.1.1
を設定し、このアドレスに接続されているコンピューターを思い出しました。ネットワーク192.168.0.X
と192.168.1.X
- 元の場所はネットワーク
192.168.1.X
で、移動した場所は192.168.0.X
- ほとんどの
192.168.1.X/24
ネットワークはデフォルトゲートウェイとして192.168.1.1
を使用します。このIPを見ると、最初は疑惑が生じず、"奇妙な"何らかの理由で - ただし、
dhcpcd.conf
のデフォルトゲートウェイを変更しました上記のように、問題は解決されました - 教訓として、オフサイトで奇妙なコンピューター間ネットワークを一時的に作成する場合は、ルーターアダプター/ NICに-自分自身を思い出させたり、通常とは異なる何かが設定ファイルのどこかに設定されていることを示すのに役立つ場合があります
コメント
- 残念ながら、ホスト/サーバーの構成はここではトピックから外れていますが、ビジネスのサーバー障害で処理できます。 sネットワーク。