Очистка arp кэша cisco

Обновлено: 07.07.2024

Эта страница посвящена поиску неисправностей в настройках и работе коммутаторов и маршрутизаторов под управлением IOS.

На странице Cisco ASA/Troubleshooting описываются механизмы и команды, которые могут использоваться для поиска неисправностей при настройке Cisco ASA.

Содержание

Первоначальный вывод (частичный):

Отобразить только те строки, в которых встречается слово BGP:

Исключить из вывода строки со словом Loopback:

Аналогично можно отфильтровать, например, интерфейсы на которых не назначены IP-адреса:

Вывести конфигурацию начиная со слова router:

Отобразить раздел конфигурационного файла:

Отобразить строки в которых встречаются слова "Administrative Mode" или "Gi":

Перенаправление вывода команды на TFTP-сервер без отображения её вывода в консоли:

Перенаправление вывода команды на TFTP-сервер и вывод команды в консоли:

Добавление вывода команды к уже существующему файлу:

Просмотр маршрутов полученных по OSPF:

Посмотреть присутствует ли сеть в таблице маршрутизации (если маршрут существует):

Посмотреть присутствует ли сеть в таблице маршрутизации (если маршрута в таблице нет):

Просмотр маршрутов, которые начинаются на указанный префикс (в примере 192.168.0.0/16):

Суммарная информация о таблице маршрутизации:

Замена текущей конфигурации указанным файлом (происходит именно замена, а не совмещение файлов):

  • data — specify data pattern
  • df-bit — установить в IP-пакете бит do not fragment
  • repeat — указать количество повторов
  • size — указать размер пакета
  • source — указать адрес или имя отправителя
  • timeout — значение интервала таймаут
  • validate — validate reply data


Символы в выводе результатов ping и их значения:

Символ Описание
! Каждый восклицательный знак означает получение ответа
. Таймаут в ожидании ответа
U Получатель недоступен
C A congestion experienced packet was received.
I User interrupted test.
M A destination unreachable error protocol data unit (PDU) was received (Type 3) MTU required but DF bit set (code 4) with the "Next-Hop MTU" set to a non-zero value. If the "Next-hop MTU" is zero then `U' is printed.
? Неизвестный тип пакета
& Время жизни пакета истекло

Символы в выводе результатов traceroute и их значения:

Символ Описание
* Истек таймаут ожидания ответа
A Пакет административно запрещен (например, настроен ACL)
H Получатель недоступен

Команда ping используется для проверки работы 3 уровня. Для проверки 4 уровня, можно использовать команду telnet. Для этого, после указания IP-адреса, необходимо указать номер порта сервиса, который проверяется.

Аналогично, если сервис не запущен:

Настройка источника трафика:

Настройка получателя трафика (порт, к которому подключен анализатор трафика):

Настройка удаленного зеркалирования на коммутаторе с которого отправляется трафик:

Настройка удаленного зеркалирования на коммутаторе который получает трафик:

Настройка сервера (NMS):

Включить отправку всех traps:

Включить отправку traps для определенных протоколов (например для BGP и OSPF):

Включение traps для OSPF включает несколько их подвидов, поэтому конфигурация выглядит так:

Более подробное описание протоколов на соответствующих страницах. Тут собрана общая информация о протоколах, которая может помочь при поиске неисправностей.

Некоторые характеристики для сравнения протоколов (тут или тут можно посмотреть похожий вариант сравнения)

(xxx — номер группы)

(xx — номер группы)

(yy — номер группы, xx — номер маршрутизатора в группе)

В каждом разделе приведен пример базовых настроек протоколов.

События таблицы маршрутизации:

Вывод всех пакетов EIGRP, которыми маршрутизатор обменивается с соседями:

Вывод информации, которая содержится в пакетах EIGRP и как маршрутизатор их обрабатывает:

Отображение всех интерфейсов, которые настроены для работы по OSPF

Параметр brief в sh ip ospf interface позволяет вывести информацию в более сжатом виде:

Соседи и состояние отношений соседства:

Информация о том как часто маршрутизатор запускал алгоритм SPF:

Просмотр информации о virtual link:

В реальном времени вывести информацию о том когда выполняется алгоритм SPF (предварительно интерфейс соседа был отключен, а на время выполнения команды debug интерфейс был включен):

Отображение пакетов OSPF в реальном времени:

Отображение информации об установке отношений соседства (и выбора DR и BDR):

Семейка протоколов ARP

Как работает протокол ARP

Задачи, стоящие перед протоколом, достаточно прозрачны. Как он будет настраиваться?

Базовые настройки и операции с ARP на Windows-системах

Почистить локальный кэш ARP или удалить отдельную запись

Кэш: arp -d

Запись: arp -d ip-адрес

Добавить статическую ARP-запись

arp -s ip-адрес mac-адрес

Детально посмотреть кэш

arp -a -v

Базовые операции с ARP на оборудовании Cisco

Как добавить статическую запись

Настроить включение-выключение ARP и его тип

Настроить время нахождения записи в ARP-кэше

Настройка идёт на интерфейсе, т.к. данный тайм-аут будет только у записей в ARP-кэше, сделанных через этот интерфейс.

Очистить кэш ARP

Все записи, привязанные к конкретному интерфейсу:

Настроить работу с incomplete ARP records

ARP и QoS

В случае, когда сетевой интерфейс загружен трафиком, часть трафика может теряться. Увы, ни один из методов queuing не является от этого панацеей. Начиная с Cisco IOS 15.1 можно указать, что на данном интерфейсе необходимо всегда обрабатывать ARP-пакеты в первую очередь, что может значительно сократить процент потери ARP-данных. На общую загрузку это, как понятно, повлияет мало, а вот пользы может принести много. Ведь ARP-пакеты передаются без механизма подтверждения доставки и терять их не очень хорошо. Данный механизм включается на L3-интерфейсах, командой: arp packet-priority enable Выключается, как понятно, no arp packet-priority enable . В Windows аналогичной процедуры нет.

ARP и NLB

ARP и SNAP

Для этой задачи есть ключ:

По умолчанию он в нуле, установив в единицу Вы получите ситуацию, что ARP-запросы будут вкладываться в SNAP (притом в LLC+SNAP, что увеличит суммарный размер кадра на 3+5=8 байт).

ARP и NUD

netsh int ipv4 set int имя интерфейса nud=enabled

ARP и DAD

netsh int ipv4 set int имя интерфейса retransmittime=миллисекунды

ARP и WOL

Протокол RARP

Реализация RARP-сервера в Windows

Реализация RARP-сервера на оборудовании Cisco

Она есть. Конфигурируется в несколько этапов. По порядку:

Шаг первый: Добавляем запись для потенциального RARP-клиента (т.е. того, кто хочет получить IP-адрес). В глобальной конфигурации:

Протокол InARP (Inverse ARP)

Протокол UnARP

Протокол SLARP (Serial Line ARP)

Протокол DirectedARP

Протокол описан в RFC 1433. Сейчас как отдельный протокол не используется, хотя многие мысли, высказанные в этом RFC, достаточно дельные и повлияли, например, на формирование современного IPv6.

Безопасность ARP

ip arp entry learn количество

Механизм Proxy ARP

Как включить Proxy ARP на оборудовании Cisco

Зайдите на нужный интерфейс и введите там команду:

Как включить Proxy ARP в Windows

В случае, когда у Вас используется RRaS, proxy ARP работает автоматически.

Что такое и как работает Gratuitous ARP

Соответственно, в ряде ситуаций (например, много клиентов, краткие сессии) такой механизм надо отключать. Зачастую проще привязать статически целую пачку ARP-соответствий (например, когда на сервере удалённого доступа выделен пул в 20 адресов, и абоненты подключаются, делают какую-то краткую операцию и отключаются), чем постоянно форвардить в сеть эти ARP Reply.

Как настроить Gratuitous ARP на оборудовании Cisco

Если добавить в конце команды слово non-local, то будет обрабатываться вышеописанная ситуация с PPP.

Как настроить Gratuitous ARP на Windows Server

Управлять же Gratuitous ARP со стороны узла вполне можно. Для этого есть ключ реестра:

HKLM\System\CurrentControlSet\Services\TcpIp\Parameters

Примечание: Считаются фактически отправленные ARP, а не попытки. Т.е. если среда была недоступна, то все равно отправят три, просто чуть позже.

Примечание: Если поставить нуль, то вдобавок отвалится функция обнаружения конфликтов DHCP, но это будет в другой истории.

Как настроить Cisco ARP Optimization Feature

Заключение

Если я вспомню ещё что-то, или меня наведут на мысль, то обязательно напишу сюда в качестве дополнения к статье.

Правила именования записей в DNS для маршрутизаторов и коммутаторов

При добавлении в сеть нового маршрутизатора или коммутатора возникает вопрос какое имя ему прописать в ДНС (клинические случаи, когда IP-адрес в ДНС не прописывается совсем, а есть просто список IP-адресов на листочке бумаги, я не рассматриваю, хотя видел и такое в сетях на десятки маршрутизаторов.). Можно для каждого устройства придумывать название отдельно, а можно придерживаться логичной и удобной схемы описанной ниже.

Настройка NTP сервера на маршрутизаторе Cisco

Network Time Protocol (NTP) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью, использущий для своей работы протокол UDP. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи. NTP — один из старейших используемых протоколов, он разработан Дэвидом Л. Миллсом (David L. Mills) из университета Дэлавера и в настоящее время продолжает совершенствование [1] .

Настройка SNMP на маршрутизаторе Cisco

Указываем с каких ip разрешаем доступ:

Включаем SNMP v1 с community string secret на доступ только-чтение:

Cisco Quick Tips

Перезапуск или перезагрузка

Немедленный перезапуск

Для немедленного перезапуска или перезагрузки Cisco, в режиме enable напишите:

Перезапуск или перезагрузка через N минут

Для перезапуска или перезагрузки Cisco через N минут , в режиме enable напишите:

Cisco маршрутизация

Добавление статических маршрутов на роутерах Cisco

Например, в режиме конфигурации:

Вывод таблицы маршрутов на роутерах Cisco

В режиме enable:

Cisco ARP

Очистка ARP таблицы на свитчах или роутерах Cisco

Для очистки ARP таблицы, в режиме enable:

Вывод ARP таблицы на свитчах или роутерах Cisco

Для вывода ARP таблицы на Cisco, в режиме enable:

Загрузка Cisco

Вывод загрузки процессора на свитчах или роутерах Cisco

Подобно любому компьютеру, роутер Cisco может быть ограничен мощностью его процессора. Для просмотра загрузки процессора в режиме enable:

В начале выведенных данных обратите внимание на строку, подобную этой:

Память Cisco

Просмотр используемой и доступной памяти на роутерах и свитчах Cisco

Подобно любому компьютеру, роутер Cisco может быть ограничен количеством доступной памяти. Для просмотра используемой и доступной памяти, в режиме enable:

В начале выведенных данных обратите внимание на строку, подобную этой:

Cisco Committed Access Rate (CAR)

? An example that limits an IP to 512K, with a nice, fat burst.

Сначала создайте списки доступа:

Затем назначьте правила ограничения скорости для соотвествующего интерфейса:

Подсказка: Если в правиле ограничения скорости вы указываете несуществующий список доступа, то правило распространяется на весь траффик. Обычно это не очень хорошо.


Привет habr! Каждый будущий инженер в процессе изучения сетевых технологий знакомится с протоколом ARP (Address Resolution Protocol, далее ARP). Основная задача протокола – получить L2 адрес устройства при известном L3 адресе устройства. На заре профессиональной карьеры начинающий специалист, как мне кажется, редко сталкивается с ситуациями, когда нужно вспомнить про существование ARP. Создаётся впечатление, что ARP – это некоторый автономный сервис, не требующий никакого вмешательства в свою работу, и при появлении каких-либо проблем со связью многие по неопытности могут забыть проверить работу ARP.

Я помню свой порядок мыслей, когда я начинал работать сетевым инженером: «Так, интерфейс поднялся, ошибок по физике вроде как не видно. Маршрут, куда слать пакеты, я прописал. Списков доступа никаких нет. Так почему же не идёт трафик? Что маршрутизатору ещё не хватает?» Рано или поздно каждый сетевой инженер столкнётся с проблемой, причина которой будет лежать именно в особенностях работы/настройки ARP на сетевом оборудовании. Простейший пример: смена шлюза на границе сети (например, вместо сервера MS TMG устанавливаем маршрутизатор). При этом конфигурация маршрутизатора была проверена заранее в лабораторных условиях. А тут, при подключении к провайдеру никакая связь не работает. Возвращаем MS TMG — всё работает. Куда смотреть после проверки канального и физического уровня? Наиболее вероятный ответ – проверить работу ARP.

В данной заметке я не буду подробно описывать принципы работы ARP и протоколов этого семейства (RARP, InARP, UnARP и т.д.). На эту тему уже существует уйма статей в Интернете (например, здесь не плохо описаны разновидности ARP). Единственный теоретический момент, на котором я заострю чуть больше внимания, – механизм Gratuitous ARP (GARP).

Статья будет состоять из двух частей. В первой части будет немного теории и особенности работы ARP на маршрутизаторах Cisco, связанные с правилами NAT и с функцией Proxy ARP. Во второй части опишу отличия в работе ARP между маршрутизаторами Cisco и межсетевыми экранами Cisco ASA, а также поделюсь несколькими интересными случаями из практики, связанными с работой ARP.

Чуть-чуть теории

Ниже представлен пример обмена ARP-запросом/ARP-ответом в программе-сниффере Wireshark:



ARP-запрос отправляется на широковещательный MAC-адрес ff:ff:ff:ff:ff:ff. В теле ARP-запроса поле с неизвестным значением Target MAC Address заполняется нулями.

ARP-ответ отправляется на MAC-адрес получателя, отправившего ARP-запрос. В поле Sender MAC Address указывается запрашиваемый MAC-адрес устройства.

Поле opcode в заголовке ARP может принимает значение 1 для ARP-запроса и значение 2 для ARP-ответа.

Чтобы два устройства могли начать передавать трафика между собой, в их ARP-таблицах должна существовать соответствующая запись о соседнем устройстве. Логично предположить, чтобы ARP-запись появилась в таблицах, для каждого устройства должна отработать процедура ARP-запрос/ARP-ответ. То есть перед передачей трафика в сети должны пройти по два ARP-запроса и два ARP-ответа (ARP-запрос/ARP-ответ для первого компьютера и ARP-запрос/ARP-ответ для второго компьютера). Однако, данное предположение верно не для всех случаев. Сетевое оборудование Cisco добавляет новую запись в ARP-таблицу сразу по приходу ARP-запроса от удалённого устройства.

Рассмотрим пример. В широковещательный домен добавляется новое устройство с адресом 198.18.0.200. Запустим пинг с нового устройства и посмотрим debug arp на маршрутизаторе Cisco:


Как видно, сразу по пришествии ARP-запроса от неизвестного IP-адреса (rcvd req src 198.18.0.200), маршрутизатор создаёт соответствующую запись в своей ARP-таблице (creating entry for IP address: 198.18.0.200, hw: 64e9.50c8.d6cd).

Для текущей статьи я не проводил подробного исследования по вопросу, какое именно сетевое оборудование добавляет ARP-запись по пришествии ARP-запроса. Однако, предполагаю, описанное поведение присуще не только сетевому оборудованию Cisco, но и сетевому оборудованию других производителей, так как данный механизм позволяет существенно сократить ARP-трафик в сети.

Описанное поведение присуще сетевому оборудованию. Конечное оборудование в большинстве случаев, получает запись в ARP-таблицу только после полноценной процедуры ARP-запрос/ARP-ответ. Для примера, я проверил процедуру на компьютере с операционной системой Windows 7. Ниже представлен дамп ARP-пакетов. В данном примере был очищен arp-cache на маршрутизаторе Cisco и на Windows-компьютере. После этого был запущен пинг от маршрутизатора к компьютеру.


Из представленного дапма видно, что сперва маршрутизатор отправляет ARP-запрос и получает ARP-ответ. Но ARP-запрос от маршрутизатора не приводит к появлению требуемой записи в ARP-таблице Windows-компьютера, поэтому, в свою очередь, компьютер отправляет ARP-запрос и получает ARP-ответ от маршрутизатора.

Gratuitous ARP



Безусловно, маршрутизатор будет отвечать на ARP-запросы как для основного, так и для secondary IP-адреса.

Пример на маршрутизаторе Cisco. Включим debug arp и подключим в широковещательный домен новое устройство с адресом 198.18.0.200. До подключения нового устройства ARP-таблица маршрутизатора выглядит следующим образом:

Новая запись не появилась. Делаем пинг до нового адреса:

Новая запись появилась.

ARP и NAT на маршрутизаторах Cisco

  1. Если внутренний глобальный адрес находится в той же IP-подсети, что и адрес интерфейса маршрутизатора, маршрутизатор будет отвечать на ARP-запросы к этому адресу. При этом в собственной arp-таблице маршрутизатора создаётся статическая запись для внутреннего глобального адреса.
  2. Если внутренний глобальный адрес находится в IP-подсети, отличной от адреса интерфейса маршрутизатора, маршрутизатор не будет отвечать на ARP-запросы к этому адресу. В собственной arp-таблице статическая запись не создаётся. Чтобы связь с таким IP-адресом заработала, требуется дополнительная настройка. Мы рассмотрим данный случай более подробно далее в статье.


Примечание: для тестов использовался маршрутизатор C4321 с программным обеспечением 15.4(3)S3 и межсетевой экран Cisco ASA5505 c программным обеспечением 9.1(6)6.

Настройки интерфейсов маршрутизатора:

Добавим правило динамического NAT, чтобы транслировать адрес компьютера из LAN (192.168.20.5) во внутренний глобальный адрес 198.18.0.5 при обращении к компьютеру во вне (Wireshark). Добавим правило статического PAT для публикации TCP порта 3389 (RDP) компьютера из LAN под глобальным адресом 198.18.0.2.



Посмотрим ARP-таблицу на маршрутизаторе:

Видим, что в ARP-таблице присутствуют статические записи как для внешнего интерфейса маршрутизатора (198.18.0.1), так и для внутренних глобальных адресов из правил динамического и статического NAT.

Сделаем clear arp-cache на маршрутизаторе и посмотрим в Wireshark, какие Gratuitous ARP уведомления будут отправлены с внешнего интерфейса:


Как видно, маршрутизатор уведомил о готовности обслуживать адрес интерфейса, адрес из правила динамического NAT и адрес из правила статического NAT.

А теперь представим ситуацию, когда провайдер расширяет пул публичных адресов, выданных клиенту, за счёт другой подсети. Предположим, дополнительно к IP-подсети 198.18.0.0/24 на внешнем интерфейсе маршрутизатора мы получаем от провайдера новый пул 198.18.99.0/24 и хотим публиковать наши внутренние сервисы под новыми IP-адресами. Для наглядности приведу схему с провайдером:


Добавим правило статического PAT для публикации TCP порта 3389 (RDP) компьютера из LAN под новым глобальным адресом 198.18.99.2:

Если снова посмотреть ARP-таблицу маршрутизатора командой show arp, увидим, что статическая запись для IP-адреса 198.18.99.2 не добавилась.

Чтобы иметь возможность отправлять ARP-запросы в новую сеть 198.18.99.0/24 с компьютера Wireshark, расширим маску его сетевых настроек до 255.255.0.0 (/16). Напомню, для нашего примера компьютер Wireshark выступает в роли маршрутизатора Интернет-провайдера.

После ввода clear arp-cache сниффер по-прежнему показывает Gratuitous ARP только для трёх IP-адресов: 198.18.0.1, 198.18.0.2, 198.18.0.5. Для нового адреса 198.18.99.2 Gratuitous ARP не срабатывает. Попробуем открыть tcp-порт 3389 адреса 198.18.99.2 и одновременно посмотреть сниффер:



Неуспех. Проверим ARP-таблицу:


  1. Попросить провайдера прописать статические ARP-записи для каждого IP-адреса из нового диапазона. Это не очень удобно, если выдаётся широкий диапазон как в нашем примере.
  2. Попросить провайдера прописать статический маршрут. Часто, чтобы выдать дополнительный диапазон белых IP-адресов, провайдер прописывает на интерфейсе своего оборудования secondary IP-адрес. Вместо этого мы можем попросить провайдера прописать статический маршрут к новой IP-подсети через IP-адрес внешнего интерфейса маршрутизатора. В этом случае оборудование провайдера будет знать, что новая подсеть доступна через IP-адрес интерфейса маршрутизатора, а маршрутизатор, в свою очередь, будет отвечать на ARP-запросы, отправленные к собственному интерфейсу.
  3. Прописать secondary IP-адрес из нового диапазона на внешнем интерфейсе маршрутизатора. В этом случае любой IP-адрес нового диапазона будет принадлежать той же подсети, что и IP-адрес (пусть и secondary) интерфейса маршрутизатора. Маршрутизатор автоматически добавит статические записи в свою ARP-таблицу, будет слать Gratuitous ARP и отвечать на ARP-запросы.
  4. Использовать механизм Proxy Arp на маршрутизаторе. На этом варианте остановимся чуть более подробно.
  1. Целевой IP-адрес ARP-запроса находится в IP-подсети, отличной от IP-подсети, в которой ARP-запрос получен;
  2. Маршрутизатор имеет один или несколько маршрутов к целевому IP-адресу ARP-запроса;
  3. Маршруты к целевому IP-адресу ARP-запроса указывают на исходящий интерфейс, отличный от интерфейса, на который ARP-запрос был получен.

Настройка Proxy ARP на интерфейсе маршрутизатора:

Отключить Proxy ARP на всех интерфейсах маршрутизатора можно глобально:

Данная настройка имеет приоритет над настройками Proxy ARP, применёнными на интерфейсах.
Помимо команды ip proxy arp в настройках интерфейса существует команда ip local-proxy-arp. Данная команда работает только когда ip proxy arp включён на интерфейсе и позволяет маршрутизатору отвечать на ARP-запросы, даже если целевой IP-адрес находится в той же IP-подсети, откуда ARP-запрос поступил. Пример настройки:

Данная настройка может пригодится, если мы хотим, чтобы трафик в рамках одного широковещательного домена шёл через интерфейс нашего маршрутизатора. Данную задачу можно реализовать с использованием Protected port (PVLAN edge) настроек на L2-коммутаторе (switchport protected).

Включение Proxy ARP на внешнем интерфейсе маршрутизаторе позволит решить проблему с новым пулом адресов, выданных провайдером. Попробуем открыть tcp-порт 3389 адреса 198.18.99.2 после включения Proxy ARP на интерфейсе маршрутизатора и одновременно посмотреть сниффер:


Успех. Маршрутизатор отвечает на ARP-запрос и порт открывается. Таким образом, функциональность Proxy ARP также можно использовать при необходимости трансляции адресов в новый пул.

Читайте также: