Очистка arp кэша cisco
Эта страница посвящена поиску неисправностей в настройках и работе коммутаторов и маршрутизаторов под управлением 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
- Если внутренний глобальный адрес находится в той же IP-подсети, что и адрес интерфейса маршрутизатора, маршрутизатор будет отвечать на ARP-запросы к этому адресу. При этом в собственной arp-таблице маршрутизатора создаётся статическая запись для внутреннего глобального адреса.
- Если внутренний глобальный адрес находится в 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-таблицу:
- Попросить провайдера прописать статические ARP-записи для каждого IP-адреса из нового диапазона. Это не очень удобно, если выдаётся широкий диапазон как в нашем примере.
- Попросить провайдера прописать статический маршрут. Часто, чтобы выдать дополнительный диапазон белых IP-адресов, провайдер прописывает на интерфейсе своего оборудования secondary IP-адрес. Вместо этого мы можем попросить провайдера прописать статический маршрут к новой IP-подсети через IP-адрес внешнего интерфейса маршрутизатора. В этом случае оборудование провайдера будет знать, что новая подсеть доступна через IP-адрес интерфейса маршрутизатора, а маршрутизатор, в свою очередь, будет отвечать на ARP-запросы, отправленные к собственному интерфейсу.
- Прописать secondary IP-адрес из нового диапазона на внешнем интерфейсе маршрутизатора. В этом случае любой IP-адрес нового диапазона будет принадлежать той же подсети, что и IP-адрес (пусть и secondary) интерфейса маршрутизатора. Маршрутизатор автоматически добавит статические записи в свою ARP-таблицу, будет слать Gratuitous ARP и отвечать на ARP-запросы.
- Использовать механизм Proxy Arp на маршрутизаторе. На этом варианте остановимся чуть более подробно.
- Целевой IP-адрес ARP-запроса находится в IP-подсети, отличной от IP-подсети, в которой ARP-запрос получен;
- Маршрутизатор имеет один или несколько маршрутов к целевому IP-адресу ARP-запроса;
- Маршруты к целевому 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 также можно использовать при необходимости трансляции адресов в новый пул.
Читайте также: