Щонайменше в одній реалізації існує жорсткий обмеження на потужність таблиці ARP. Що станеться, коли кеш ARP заповнений і пакет запропонований з пунктом призначення (або next-hop), який не кешований? Що відбувається під кришкою, і який вплив на якість обслуговування?
Наприклад, маршрутизатори Brocade NetIron XMR і Brocade MLX мають максимум налаштованої ip-arp
системи . Значення за замовчуванням у цьому випадку - 8192; розмір підмережі / 19. З документації незрозуміло, чи це інтерфейс або весь маршрутизатор, але для цього питання ми можемо припустити, що це за один інтерфейс.
Мало хто з мережників спеціально налаштував би підмережу / 19, але це не так. Ми переносили основний маршрутизатор із моделі Cisco на Brocade. Однією з багатьох відмінностей між Cisco та Brocade є те, що Cisco приймає статичні маршрути, визначені як вихідним інтерфейсом, так і адресою наступного переходу, але Brocade наполягає на тому чи іншому. Ми відкинули наступну адресу і зберегли інтерфейс. Пізніше ми дізналися про помилку наших способів і змінили від інтерфейсу до наступного переходу, але, здавалося, все працювало спочатку.
+----+ iface0 +----+
| R1 |-----------| R2 |---> (10.1.0.0/16 this way)
+----+.1 .2+----+
10.0.0.0/30
До міграції R1 був Cisco і мав наступний маршрут.
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 визнає, що він може дістатися до пункту призначення, і відповідає ARP за допомогою власного MAC.
- R1 кешує результат ARP, який поєднує IP у віддаленій мережі з MAC R2.
Це відбувається для кожного окремого місця призначення в 10.1.0.0/16. Отже, незважаючи на те, що / 16 належним чином підмережа за межами R2, і є лише два вузли на ланцюзі, що примикає до R1 і R2, R1 зазнає перевантаження AR-кешу, оскільки це змушує R2 поводитись так, ніби всі 65k адреси підключені безпосередньо.
Причина, яку я задаю цьому питанню, полягає в тому, що я сподіваюся, що це допоможе мені зрозуміти повідомлення про проблеми з мережевими послугами (через кілька днів), що призвело нас, врешті-решт, до переповненого кешу ARP. В дусі моделі StackExchange я намагався перекрити це, на що, на мою думку, чітке, конкретне питання, на яке можна відповісти об'єктивно.
EDIT 1 Щоб бути зрозумілим, я запитую про частину шару клею між каналом передачі даних (шар 2) та мережею (рівень 3), а не таблицею переадресації MAC всередині шару зв'язку даних. Хост або маршрутизатор будує першу для зіставлення IP-адрес на MAC-адреси, тоді як комутатор будує другий для зіставлення MAC-адрес у порти.
EDIT 2 Хоча я ціную зусилля, до яких відповіли респонденти, щоб пояснити, чому деякі реалізації не піддаються переповненню кешу ARP, я вважаю, що для цього питання важливо вирішити ті, які є. Питання полягає в тому, "що станеться, коли", а не "чи сприйнятливий постачальник X ". Зараз я зробив свою частину, описуючи конкретний приклад.
EDIT 3 Ще одне питання, це не "як я запобігти переповненню кешу ARP?"