少なくとも1つの実装では、ARPテーブルの容量に厳しい制限があります。ARPキャッシュがいっぱいで、キャッシュされていない宛先(またはネクストホップ)でパケットが提供されるとどうなりますか?フードの下で何が起こり、サービス品質にどのような影響がありますか?
たとえば、Brocade NetIron XMRおよびBrocade MLXルーターには、最大構成可能ip-arp
システムがあります。その場合のデフォルト値は8192です。/ 19サブネットのサイズ。これがインターフェイスごとであるかルーター全体であるかはドキュメントから明らかではありませんが、この質問の目的のために、インターフェイスごとであると仮定できます。
意図的にインターフェイス上に/ 19サブネットを構成するネットワーカはほとんどいませんが、そうではありません。コアモデルをシスコモデルからBrocadeに移行していました。シスコとBrocadeの多くの違いの1つは、発信インターフェイスとネクストホップアドレスの両方で定義された静的ルートを受け入れるが、Brocadeはどちらか一方を要求することです。ネクストホップアドレスを削除し、インターフェイスを保持しました。その後、方法の誤りを学び、インターフェイスからネクストホップアドレスに変更しましたが、最初はすべて機能しているようでした。
+----+ iface0 +----+
| R1 |-----------| R2 |---> (10.1.0.0/16 this way)
+----+.1 .2+----+
10.0.0.0/30
移行前、R1はシスコであり、次のルートがありました。
ip route 10.1.0.0 255.255.0.0 iface0 10.0.0.2
移行後、R1はBrocadeであり、次のルートがありました。
ip route 10.1.0.0 255.255.0.0 iface0
R2はCiscoルーターであり、CiscoルーターはデフォルトでプロキシARPを実行します。これは、ARPキャッシュオーバーフローであることが判明した段階を設定する実稼働環境の(誤った)構成です。
- R1は、10.1.0.0 / 16ネットワーク宛てのパケットを受信します。
- 静的インターフェイスルートに基づいて、宛先のR1 ARPは
iface0
- R2は宛先に到達できることを認識し、独自のMACでARPに応答します。
- R1は、リモートネットワークのIPとR2のMACを組み合わせたARP結果をキャッシュします。
これは、10.1.0.0 / 16の個別の宛先ごとに発生します。その結果、/ 16がR2を超えて適切にサブネット化され、R1とR2に隣接するリンクに2つのノードしかない場合でも、R1は、すべての65kアドレスが直接接続されているかのように動作するため、ARPキャッシュの過負荷になります。
この質問をする理由は、最終的にはオーバーフローするARPキャッシュにつながったネットワークサービスのトラブルレポート(数日後)を理解するのに役立つことを願っています。StackExchangeモデルの精神で、私はそれを客観的に答えられる鮮明で特定の質問であると信じるものに蒸留しようとしました。
編集1明確にするために、データリンク層内のMAC転送テーブルではなく、データリンク(層2)とネットワーク(層3)の間の接着層の一部について尋ねています。ホストまたはルーターは前者を構築してIPアドレスをMACアドレスにマッピングし、スイッチは後者を構築してMACアドレスをポートにマッピングします。
EDIT 2いくつかの実装がARPキャッシュオーバーフローの影響を受けない理由を説明するためにレスポンダーが行った努力に感謝しますが、この質問がそれらに対処することが重要だと思います。問題は、「ベンダーXは影響を受けやすい」ではなく、「いつ起こるか」です。私は今、具体的な例を説明することによって自分の役割を果たしました。
EDIT 3これは別の質問ですが、「ARPキャッシュがオーバーフローするのを防ぐにはどうすればよいですか?」