АРП — это… Что такое АРП?
Арп — (нем. Arp, нем. Arp) немецкая и английская фамилия. Известные носители: Арп, Ханс (1886 1966) немецкий и французский художник. Арп, Роберт американский писатель и философ … Википедия
АРП — * АРП * ARS см … Генетика. Энциклопедический словарь
Арп Х. — АРП (Arp) Ханс (18871966), нем. скульптор. Работал в Германии, Швейцарии, Франции. Выполненная преим. из бронзы пластика А. в текучих сюрреалистич. формах интерпретирует природные, органические мотивы ( Торс , 1931) … Биографический словарь
Арп — Ганс (Arp, Hans) 1886, Страсбург 1966, Базель. Французский скульптор, живописец, график, поэт. Учился в школе прикладного искусства в Страсбурге (1904) и в Веймарской художественной школе у Л. фон Гофмана (1905 1907). В 1908 посещал Академию… … Европейское искусство: Живопись. Скульптура. Графика: Энциклопедия
Арп Р. — … Википедия
Арп Х. — … Википедия
АРП — автоматическая регулировка питания автоматический радиопеленгатор автоматический регистратор простоев Амурское речное пароходство … Словарь сокращений русского языка
АРП Ганс (Жан) — АРП (Arp) Ганс (Жан) (1887 1966), швейцарский и французский художник и поэт, один из зачинателей дадаизма (см. ДАДАИЗМ), затем перешел к синтезу сюрреализма (см. СЮРРЕАЛИЗМ) и абстракции, создавая живопись, графику, коллажи и скульптуру, где… … Энциклопедический словарь
АРП Хэлтон Кристиан — АРП (Arp) Хэлтон Кристиан (р. 1927), американский астроном. Открыл много астрономических объектов: переменных (см. ПЕРЕМЕННЫЕ ЗВЕЗДЫ) и новых звезд (см. НОВЫЕ ЗВЕЗДЫ), активных и взаимодействующих галактик (см. ГАЛАКТИКИ). Опубликовал «Атлас… … Энциклопедический словарь
АРП (Arp) Ганс — (Жан) (1887 1966) швейцарский и французский художник и поэт, один из зачинателей дадаизма, затем перешел к синтезу сюрреализма и абстракции, создавая живопись, графику, коллажи и скульптуру, где преобладают биоморфные , подражающие ритмам природы … Большой Энциклопедический словарь
ARP Протокол Разрешения Адресов для чайников, как работает
Протокол ARP расшифровывается, как Address Resolution Protocol — протокол разрешения адресов. В сети обычно взаимодействуем с компьютерами с помощью IP-адресов, или с помощью доменных имен, которые службой DNS все равно преобразуются в IP-адреса.
Но в реальности данные передаются с помощью какой-нибудь технологии канального уровня, например Ethernet. Коммутаторы Ethernet ничего не знают об IP-адресах и для передачи данных используют MAC-адреса. Следовательно, необходимо средство, которое позволяет по IP-адресу компьютера определить его МАК-адрес.
Таблица соответствия ARP
Самое простое средство это таблица соответствия. Мы создаем таблицу, в которой пишем IP-адрес и соответствующий ему MAC-адрес.
Такое средство действительно используется на практике, например в Linux такая табличка хранится в файле /etc/ethers. Однако в крупной сети такой подход не работает.
ARP-запрос
Протокол ARP позволяет автоматически определить МАК-адрес компьютера по его IP-адресу. Протокол работает в режиме запрос-ответ.
Компьютер, который хочет узнать МАК-адрес по известному IP-адресу, направляет ARP запрос “У кого IP 192.168.10.43?” Запрос отправляется на широковещательный МАК-адрес (FF:FF:FF:FF:FF:FF).
И этот запрос получают все компьютеры в сети. Тот компьютер, который узнал в запросе свой IP-адрес подготавливает и отправляет ARP ответ. В ответ включается IP-адрес компьютера (IP:192.168.10.43) и его МАК-адрес (MAC: 54:BE:F7:88:15:47).
Отправитель ARP запроса получает ответ, извлекает из него МАК-адрес и использует его для передачи данных по технологии канального уровня.
Формат ARP-запроса
ARP разрабатывался, как протокол общего назначения с возможностью применять его не только в Ethernet и не только для IP-адресов. Поэтому в начале ARP пакета идет служебная информация, которая позволяет определить с каким типом сетевого оборудования и с каким протоколом сетевого уровня мы работаем.
- Первое поле “тип сети”, говорит о том, какое оборудование мы используем в сети, 1 — соответствует Ethernet.
- Второе поле “тип протокола” в нем указывается протокол сетевого уровня 2048 означает IP.
- Дальше идет “длина локального адреса”, в нашем случае МАК-адреса 6 байт, “длина глобального адреса в нашем случае IP-адреса” 4 байта.
- Следующее поле код операции, 1 — соответствует ARP запросу, а 2 — ARP ответу.
- Затем идет полезная информация о локальных (1С:75:08:D2:49:45) и глобальных адресах (192.168.10.15). Указывается МАК-адрес и IP-адрес отправителя, для того, чтобы получатель знал, кому отправлять ответ.
- Глобальный адрес получателя (192.168.10.43).
- Локальный адрес получателя неизвестен (00:00:00:00:00:00)
Формат ARP-ответа
Формат ARP ответа точно такой же, только в поле “операция” стоит значение 2 и адрес, который мы ищем находится в поле локальный адрес отправителя.
Место в модели OSI
В модели взаимодействия открытых систем OSI протокол ARP находится между канальным и сетевым уровнем. Пакеты ARP вкладываются напрямую в кадры Ethernet без IP.
Из-за того, что ARP находится ниже сетевого уровня, пакеты ARP не проходят через маршрутизаторы. Таким образом, с помощью ARP можно узнать только МАК-адреса компьютеров, которые находятся в одной подсети, а адреса компьютеров, которые находятся в другой подсети отделенные маршрутизатором узнать нельзя.
Почему так происходит? ARP запрос отправляется на широковещательный адрес который получают все компьютеры внутри сети, но широковещательный трафик не проходит через маршрутизаторы, поэтому компьютеры в другой подсети за маршрутизатором ARP запрос не получат и не смогут отправить на него ответ.
ARP-таблица
После того, как МАК-адрес получателя найден, он кэшируется на компьютеры отправителя в ARP-таблице для того, чтобы не запрашивать МАК-адрес каждый раз по протоколу ARP.
Таблица состоит из 3-х полей — IP-адрес, MAC-адрес и Тип записи в ARP таблице. Есть статическая запись, которая внесена в таблицу вручную и динамическая запись, которая появилась в результате работы протокола ARP. Динамические записи имеют срок жизни после которого они удаляются, это нужно для того, чтобы отслеживать изменения IP-адресов в компьютерах.
Посмотреть ARP таблицу на компьютере можно с помощью команды arp -a.
Оптимизация ARP
ARP запрос отправляется на широковещательный адрес и его получают все компьютеры в сети, кроме ip-адреса для которого необходимо получить мак-адрес в ARP запрос. Отправитель также включает свой ip-адрес и свой мак-адрес, эти данные могут быть записаны всеми компьютерами в сети в ARP-таблицу, чтобы использовать когда они понадобятся.
Добровольный ARP-запрос (Gratuitous ARP)
Это запрос по ARP собственного ip-адреса, он используется для двух целей. Первая цель, быстрое оповещение всех компьютеров в сети от том, что у компьютера появился новый ip-адрес.
Другая цель это проверка использования данного ip-адреса другим компьютером. Если на добровольный ARP запрос пришел ответ, это значит, что какой-то компьютер в сети уже использует этот ip-адрес и назначать его компьютеру отправителя нельзя.
Выводы по протоколу ARP
ARP — протокол разрешения адресов, который позволяет по IP-адресу определить MAC-адрес компьютера в сети. ARP работает в режиме запрос-ответ. Запрос отправляется на широковещательный адрес и его получают все компьютеры в сети, а отвечает только тот компьютер, который узнал свой ip-адрес и в ответ он вкладывает искомый мак-адрес. Результаты ARP запросов для повышения производительности записываются в ARP-таблицу.
Нюансы работы оборудования Cisco и интересные случаи. Часть 1 / Блог компании CBS / Хабр
Привет 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-ответ
Ниже представлен пример обмена 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:
019383: Feb 4 10:38:55 UTC: IP ARP: rcvd req src 198.18.0.200 64e9.50c8.d6cd, dst 198.18.0.1 GigabitEthernet0/0/1.7 019384: Feb 4 10:38:55 UTC: IP ARP: creating entry for IP address: 198.18.0.200, hw: 64e9.50c8.d6cd 019385: Feb 4 10:38:55 UTC: IP ARP: sent rep src 198.18.0.1 d8b1.902e.e741, dst 198.18.0.200 64e9.50c8.d6cd GigabitEthernet0/0/1.7
Как видно, сразу по пришествии 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-запрос от маршрутизатора не приводит к появлению требуемой записи в ARP-таблице Windows-компьютера, поэтому, в свою очередь, компьютер отправляет ARP-запрос и получает ARP-ответ от маршрутизатора.
Gratuitous ARP
Механизм Gratuitous ARP используется для оповещения устройств в рамках широковещательного домена о появлении новой привязки IP-адреса и MAC-адреса. Когда сетевой интерфейс устройства получает настройки IP (вручную или по DHCP), устройство отправляет Gratuitous ARP сообщение, чтобы уведомить соседей о своём присутствии. Gratuitous ARP сообщение представляет собой особый вид ARP-ответа. Поле opcode принимает значение 2 (ARP-ответ). MAC-адрес получается как в заголовке Ethernet, так и в теле ARP-ответа является широковещательным (ff:ff:ff:ff:ff:ff). Поле Target IP Address в теле ARP-ответа совпадает с полем Sender IP Address.
Механизм Gratuitous ARP используется для многих целей. Например, с помощью Gratuitous ARP можно уведомить о смене MAC-адреса или обнаружить конфликты IP-адресов. Другой пример — использование протоколов резервирования первого перехода (First Hop Redundancy Protocols), например, HSRP у Cisco. Напомню, HSRP позволяет иметь виртуальный IP-адрес, разделённый между двумя или более сетевыми устройствами. В нормальном режиме работы обслуживание виртуального IP-адреса (ответы на ARP-запросы и т.д.) обеспечивает основное устройство. При отказе основного устройства обслуживание виртуального IP-адреса переходит ко второму устройству. Чтобы уведомить о смене MAC-адреса ответственного устройства, как раз отправляется Gratuitous ARP-сообщения.
В примере ниже представлено Gratuitous ARP сообщение при включении сетевого интерфейса маршрутизатора с настроенным IP-адресов 198.18.0.1.
Если на маршрутизаторе настроен secondary IP-адрес, при переходе интерфейса в состояние UP будут отправлены Gratuitous ARP уведомления для каждого IP-адреса интерфейса. В примере ниже представлены Gratuitous ARP сообщения, отправляемые при включении интерфейса маршрутизатора с основным IP-адресом 198.18.0.1 и secondary IP-адресом 198.18.2.1.
Безусловно, маршрутизатор будет отвечать на ARP-запросы как для основного, так и для secondary IP-адреса.
Логично предположить, что как только устройство получает Gratuitous ARP, сразу добавляется новая запись в ARP-таблицу. Однако это не так. Если в таблице устройства отсутствовала ARP-запись, связанная с IP-адресом из Gratuitous ARP сообщения, новая запись добавлена не будет. При необходимости отправить трафик будет сформирован ARP-запрос и получен ARP-ответ. Только после этой процедуры новая запись добавится в ARP-таблицу.
Пример на маршрутизаторе Cisco. Включим debug arp и подключим в широковещательный домен новое устройство с адресом 198.18.0.200. До подключения нового устройства ARP-таблица маршрутизатора выглядит следующим образом:
cisco#sh arp | inc 198.18.0.200
<вывод пуст>
Включаем новое устройство с адресом 198.18.0.200. Получаем debug-сообщение о приходе Gratuitous ARP:
IP ARP: rcvd rep src 198.18.0.200 64e9.50c8.d6cd, dst 198.18.0.200 GigabitEthernet0/0/1
Проверяем ARP-таблицу:
cisco#sh arp | inc 198.18.0.200
<вывод пуст>
Новая запись не появилась. Делаем пинг до нового адреса:
cisco#ping 198.18.0.200
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 198.18.0.200, timeout is 2 seconds:
019275: Feb 4 10:23:06 UTC: IP ARP: creating incomplete entry for IP address: 198.18.0.200 interface GigabitEthernet0/0/1
019276: Feb 4 10:23:06 UTC: IP ARP: sent req src 198.18.0.1 d8b1.902e.e741,
dst 198.18.0.200 0000.0000.0000 GigabitEthernet0/0/1
019277: Feb 4 10:23:06 UTC: IP ARP: rcvd rep src 198.18.0.200 64e9.50c8.d6cd, dst 198.18.0.1 GigabitEthernet0/0/1
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 2/2/3 ms
Debug-сообщения показывают, что прошла процедура ARP-запрос/ARP-ответ. Проверяем ARP-таблицу:
cisoc#sh arp | i 198.18.0.200
Internet 198.18.0.200 6 64e9.50c8.d6cd ARPA GigabitEthernet0/0/1
Новая запись появилась.
ARP и NAT на маршрутизаторах Cisco
Теперь рассмотрим, как обстоят дела с ARP, если на маршрутизаторе используются правила трансляции сетевых адресов – NAT или PAT. В этом случае, мы можем транслировать адрес или адреса локальной сети либо в адрес интерфейса маршрутизатора, либо в какой-либо другой адрес, который будет называться в терминологии NAT внутренним глобальным адресом (inside global или inside mapped). Если трансляция происходит в адрес интерфейса, с ARP вопросов нет. В случае трансляции в адрес, отличный от адреса интерфейса, действуют следующие правила:
- Если внутренний глобальный адрес находится в той же IP-подсети, что и адрес интерфейса маршрутизатора, маршрутизатор будет отвечать на ARP-запросы к этому адресу. При этом в собственной arp-таблице маршрутизатора создаётся статическая запись для внутреннего глобального адреса.
- Если внутренний глобальный адрес находится в IP-подсети, отличной от адреса интерфейса маршрутизатора, маршрутизатор не будет отвечать на ARP-запросы к этому адресу. В собственной arp-таблице статическая запись не создаётся. Чтобы связь с таким IP-адресом заработала, требуется дополнительная настройка. Мы рассмотрим данный случай более подробно далее в статье.
Отдельно следует упомянуть поведение Gratuitous ARP. Рассматривать варианты генерации Gratuitous ARP для различных случаев (переход интерфейса в состояние UP, изменение основного IP-адреса интерфейса, изменение Secondary IP-адреса и т.д.) не буду, так как получится слишком много вариантов. Хочу указать только два момента. Первый момент: настройка нового правила NAT не приводит к генерации Gratuitous ARP уведомления. Второй момент: с помощью команды clear arp-cache можно не только очистить все динамические записи arp в таблице маршрутизатора, но и заставить маршрутизатор отправить Gratuitous ARP для всех IP-адресов, на которые маршрутизатор должен отвечать, включая внутренние глобальные адреса из правил NAT.
Рассмотрим примеры на основании следующей простейшей топологии:
Примечание: для тестов использовался маршрутизатор C4321 с программным обеспечением 15.4(3)S3 и межсетевой экран Cisco ASA5505 c программным обеспечением 9.1(6)6.
Компьютер Wireshark с адресов 198.18.0.250 в нашем случае будет обозначать подключение к внешней сети (например, к Интернет-провайдеру). С помощью сниффера Wireshark будем просматривать обмен сообщениями ARP между маршрутизатором и компьютером.
Настройки интерфейсов маршрутизатора:
interface GigabitEthernet0/0/0
description === inside ===
ip address 192.168.20.1 255.255.255.0
no ip proxy-arp
ip nat inside
!
interface GigabitEthernet0/0/1.7
description === outside ===
ip address 198.18.0.1 255.255.255.0
no ip proxy-arp
ip nat outside
Добавим правило динамического NAT, чтобы транслировать адрес компьютера из LAN (192.168.20.5) во внутренний глобальный адрес 198.18.0.5 при обращении к компьютеру во вне (Wireshark). Добавим правило статического PAT для публикации TCP порта 3389 (RDP) компьютера из LAN под глобальным адресом 198.18.0.2.
ip access-list standard acl-test-arp
permit 192.168.20.5
ip nat pool test-pool 198.18.0.5 198.18.0.5 netmask 255.255.255.252
ip nat inside source list acl-test-arp pool test-pool overload
ip nat inside source static tcp 192.168.20.5 3389 198.18.0.2 3389 extendable
Посмотрим ARP-таблицу на маршрутизаторе:
cisco#sh arp
Protocol Address Age (min) Hardware Addr Type Interface
. . .
Internet 198.18.0.1 - d8b1.902e.e741 ARPA GigabitEthernet0/0/1.7
Internet 198.18.0.2 - d8b1.902e.e741 ARPA GigabitEthernet0/0/1.7
Internet 198.18.0.5 - d8b1.902e.e741 ARPA GigabitEthernet0/0/1.7
. . .
Видим, что в 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:
ip nat inside source static tcp 192.168.20.5 3389 198.18.99.2 3389 extendable
Если снова посмотреть 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-адреса 198.18.99.2 не появилась. Причина – новый IP-адрес 198.18.99.2 находится в IP-подсети, отличной от адреса интерфейса маршрутизатора. Как же нам заставить работать новый пул выданных провайдером IP-адресов? Есть четыре варианта:
- Попросить провайдера прописать статические ARP-записи для каждого IP-адреса из нового диапазона. Это не очень удобно, если выдаётся широкий диапазон как в нашем примере.
- Попросить провайдера прописать статический маршрут. Часто, чтобы выдать дополнительный диапазон белых IP-адресов, провайдер прописывает на интерфейсе своего оборудования secondary IP-адрес. Вместо этого мы можем попросить провайдера прописать статический маршрут к новой IP-подсети через IP-адрес внешнего интерфейса маршрутизатора. В этом случае оборудование провайдера будет знать, что новая подсеть доступна через IP-адрес интерфейса маршрутизатора, а маршрутизатор, в свою очередь, будет отвечать на ARP-запросы, отправленные к собственному интерфейсу.
- Прописать secondary IP-адрес из нового диапазона на внешнем интерфейсе маршрутизатора. В этом случае любой IP-адрес нового диапазона будет принадлежать той же подсети, что и IP-адрес (пусть и secondary) интерфейса маршрутизатора. Маршрутизатор автоматически добавит статические записи в свою ARP-таблицу, будет слать Gratuitous ARP и отвечать на ARP-запросы.
- Использовать механизм Proxy Arp на маршрутизаторе. На этом варианте остановимся чуть более подробно.
Proxy ARP на маршрутизаторах Cisco
Функциональность Proxy ARP позволяет маршрутизатору отвечать на ARP-запросы при выполнении трёх следующих условий:
- Целевой IP-адрес ARP-запроса находится в IP-подсети, отличной от IP-подсети, в которой ARP-запрос получен;
- Маршрутизатор имеет один или несколько маршрутов к целевому IP-адресу ARP-запроса;
- Маршруты к целевому IP-адресу ARP-запроса указывают на исходящий интерфейс, отличный от интерфейса, на который ARP-запрос был получен.
По умолчанию Proxy ARP включен на всех интерфейсах маршрутизатора. Однако использование механизма Proxy ARP имеет несколько недостатков. В первую очередь Proxy ARP вносит потенциальную уязвимость к атакам типа Man-in-the-middle, когда злоумышленник получит возможность перехватывать сетевой трафик. Поэтому, рекомендуется отключать Proxy ARP как минимум на интерфейсах, к которым подключены внешние сети.
Настройка Proxy ARP на интерфейсе маршрутизатора:
interface GigabitEthernet0/0/1.7
ip proxy-arp
Отключить Proxy ARP на всех интерфейсах маршрутизатора можно глобально:
ip arp proxy disable
Данная настройка имеет приоритет над настройками Proxy ARP, применёнными на интерфейсах.
Помимо команды ip proxy arp в настройках интерфейса существует команда ip local-proxy-arp. Данная команда работает только когда ip proxy arp включён на интерфейсе и позволяет маршрутизатору отвечать на ARP-запросы, даже если целевой IP-адрес находится в той же IP-подсети, откуда ARP-запрос поступил. Пример настройки:
no ip arp proxy disable
interface GigabitEthernet0/0/1.7
ip proxy-arp
ip local-proxy-arp
Данная настройка может пригодится, если мы хотим, чтобы трафик в рамках одного широковещательного домена шёл через интерфейс нашего маршрутизатора. Данную задачу можно реализовать с использованием Protected port (PVLAN edge) настроек на L2-коммутаторе (switchport protected).
Включение Proxy ARP на внешнем интерфейсе маршрутизаторе позволит решить проблему с новым пулом адресов, выданных провайдером. Попробуем открыть tcp-порт 3389 адреса 198.18.99.2 после включения Proxy ARP на интерфейсе маршрутизатора и одновременно посмотреть сниффер:
Успех. Маршрутизатор отвечает на ARP-запрос и порт открывается. Таким образом, функциональность Proxy ARP также можно использовать при необходимости трансляции адресов в новый пул.
Итоги
Попробую тезисно обобщить основные моменты первой части статьи:
- Сетевое оборудование Cisco добавляет ARP-запись о новом удалённом устройстве в ARP-таблицу сразу по приходу ARP-запроса от удалённого устройства. Данное поведение позволяет сократить ARP-трафик в сети.
- Маршрутизатор Cisco будет отвечать на ARP-запросы к внутреннему глобальному IP-адресу правила NAT, если данный IP-адрес принадлежит той же IP-подсети, что и интерфейс маршрутизатора. Дополнительные настройки для работы ARP не требуются.
- Если внутренний глобальный IP-адрес правила NAT маршрутизатора не принадлежит IP-подсети интерфейса маршрутизатора, требуются дополнительные настройки. Существуют четыре варианта:
- Статические ARP-записи на внешнем оборудовании;
- Статический маршрут на внешнем оборудовании;
- Настройка secondary IP-адреса на интерфейсе маршрутизатора;
- Использование Proxy ARP.
Первый и второй вариант подразумевают изменение настроек на «чужом» сетевом оборудовании и не всегда может быть приемлем.
Третий вариант является наиболее предпочтительным.
Четвёртый вариант может быть использован, но открывает уязвимость с точки зрения сетевой безопасности.
- Статические ARP-записи на внешнем оборудовании;
- Функциональность Proxy ARP включена на интерфейсах маршрутизатора по умолчанию. Рекомендуется отключать Proxy ARP как минимум на интерфейсах, подключаемых к Интернет-провайдерам.
Арп — это… Что такое Арп?
АРП — Азербайджано российская палата делового сотрудничества Азербайджан, РФ Источник: http://www.regnum.ru/expnews/281155.html АРП Албанская республиканская партия Албания, полит. АРП агентство развития предпринимательства агентство по развитию… … Словарь сокращений и аббревиатур
АРП — * АРП * ARS см … Генетика. Энциклопедический словарь
Арп Х. — АРП (Arp) Ханс (18871966), нем. скульптор. Работал в Германии, Швейцарии, Франции. Выполненная преим. из бронзы пластика А. в текучих сюрреалистич. формах интерпретирует природные, органические мотивы ( Торс , 1931) … Биографический словарь
Арп — Ганс (Arp, Hans) 1886, Страсбург 1966, Базель. Французский скульптор, живописец, график, поэт. Учился в школе прикладного искусства в Страсбурге (1904) и в Веймарской художественной школе у Л. фон Гофмана (1905 1907). В 1908 посещал Академию… … Европейское искусство: Живопись. Скульптура. Графика: Энциклопедия
Арп Р. — … Википедия
Арп Х. — … Википедия
АРП — автоматическая регулировка питания автоматический радиопеленгатор автоматический регистратор простоев Амурское речное пароходство … Словарь сокращений русского языка
АРП Ганс (Жан) — АРП (Arp) Ганс (Жан) (1887 1966), швейцарский и французский художник и поэт, один из зачинателей дадаизма (см. ДАДАИЗМ), затем перешел к синтезу сюрреализма (см. СЮРРЕАЛИЗМ) и абстракции, создавая живопись, графику, коллажи и скульптуру, где… … Энциклопедический словарь
АРП Хэлтон Кристиан — АРП (Arp) Хэлтон Кристиан (р. 1927), американский астроном. Открыл много астрономических объектов: переменных (см. ПЕРЕМЕННЫЕ ЗВЕЗДЫ) и новых звезд (см. НОВЫЕ ЗВЕЗДЫ), активных и взаимодействующих галактик (см. ГАЛАКТИКИ). Опубликовал «Атлас… … Энциклопедический словарь
АРП (Arp) Ганс — (Жан) (1887 1966) швейцарский и французский художник и поэт, один из зачинателей дадаизма, затем перешел к синтезу сюрреализма и абстракции, создавая живопись, графику, коллажи и скульптуру, где преобладают биоморфные , подражающие ритмам природы … Большой Энциклопедический словарь
что такое в Современном энциклопедическом словаре
Смотреть что такое АРП в других словарях:
АРП
, Ганс (Arp, Hans) 1886, Страсбург — 1966, Базель. Французский скульптор, живописец, график, поэт. Учился в школе прикладного искусства в Страсбурге (1… смотреть
АРП
I сокр. от автоматический радиопеленгаторradiogoniometro automatico II сокр. от автоматический регистратор простоевregistratore automatico dei tempi m… смотреть
АРП
АРП (Arp) Ганс (Жан) (1887-1966), швейцарский и французский художник и поэт, один из зачинателей дадаизма, затем перешел к синтезу сюрреализма и абстракции, создавая живопись, графику, коллажи и скульптуру, где преобладают «биоморфные», подражающие ритмам природы фантазии.<br><br><br>… смотреть
АРП
— (Arp) Ганс (Жан) (1887-1966) — швейцарский и французский художник ипоэт, один из зачинателей дадаизма, затем перешел к синтезу сюрреализма иабстракции, создавая живопись, графику, коллажи и скульптуру, гдепреобладают «»биоморфные»», подражающие ритмам природы фантазии…. смотреть
АРП
(Arp) Ганс (Жан) 1887-1966, франц. скульптор, маляр, графік, поет нім. походження, представник абстракціонізму і дадаїзму; скульптури, рельєфи, колажі, літературні твори…. смотреть
АРП
арп I арпы кетип, тарпы калган остались одни ошмётки. арп II то же, что арып II.
АРП (ARP) ГАНС
Большой Энциклопедический словарь
АРП (Arp) Ганс (Жан) (1887-1966) — швейцарский и французский художник и поэт, один из зачинателей дадаизма, затем перешел к синтезу сюрреализма и абстракции, создавая живопись, графику, коллажи и скульптуру, где преобладают «биоморфные», подражающие ритмам природы фантазии.<br>… смотреть
АРП (ARP) ГАНС (ЖАН) (18871966)
Большой энциклопедический словарь
АРП (Arp) Ганс (Жан) (1887-1966), швейцарский и французский художник и поэт, один из зачинателей дадаизма, затем перешел к синтезу сюрреализма и абстракции, создавая живопись, графику, коллажи и скульптуру, где преобладают «биоморфные», подражающие ритмам природы фантазии…. смотреть
АРП (ARP) ГАНС (ЖАН) (18871966)
Энциклопедический словарь естествознания
АРП (Arp) Ганс (Жан) (1887-1966) , швейцарский и французский художник и поэт, один из зачинателей дадаизма, затем перешел к синтезу сюрреализма и абстракции, создавая живопись, графику, коллажи и скульптуру, где преобладают «биоморфные», подражающие ритмам природы фантазии…. смотреть
АРП (ARP) ХАНС
Большой Энциклопедический словарь
Арп (Arp) Ханс (18871966), немецкий скульптор. Работал в Германии, Швейцарии, Франции. Выполненная преимущественно из бронзы пластика Арпа в «текучих»… смотреть
АРП (ARP) ХЭЛТОН КРИСТИАН
Большой Энциклопедический словарь
АРП (Arp) Хэлтон Кристиан (р. 1927) — американский астроном. Открыл много астрономических объектов: переменных и новых звезд, активных и взаимодействующих галактик. Опубликовал «Атлас пекулярных галактик» (1966).<br>… смотреть
АРП (ARP) ХЭЛТОН КРИСТИАН (Р . 1927)
Энциклопедический словарь естествознания
АРП (Arp) Хэлтон Кристиан (р . 1927), американский астроном. Открыл много астрономических объектов: переменных и новых звезд, активных и взаимодействующих галактик. Опубликовал «Атлас пекулярных галактик» (1966)…. смотреть
АРП (ARP) ХЭЛТОН КРИСТИАН (Р. 1927)
Большой энциклопедический словарь
АРП (Arp) Хэлтон Кристиан (р. 1927), американский астроном. Открыл много астрономических объектов: переменных и новых звезд, активных и взаимодействующих галактик. Опубликовал «Атлас пекулярных галактик» (1966)…. смотреть
АРП ХАНС
Энциклопедия Кольера
(Arp, Jean (Hans) (1887-1966), французский художник и скульптор, один из основоположников абстрактной скульптуры и основателей дадаизма — направления в… смотреть
Урок 25. Принцип работы протокола ARP
Рассмотрим процесс передачи пакета по сети от компьютера. Причем путь пролегает через множество маршрутизаторов к другому компьютеру
Чтобы пакет достиг пункта назначения необходимо знать IP адрес получателя и MAC адрес ближайшего маршрутизатора. Да-да, именно ближайшего маршрутизатора, а не конечного получателя.
Почему нельзя указать MAC адрес получателя?
Во-первых, нам достаточно IP адреса, во-вторых, с помощью MAC адреса нельзя организовать маршрутизацию.
А зачем тогда нам указывать МАС адрес ближайшего маршрутизатора?
Если вспомнить модель TCP/IP и OSI, то любой запрос от одного устройства к другому формируется на одном из верхних уровней. А далее “спускается” вниз и дополняется служебной информацией. На приеме процесс обратный, то есть с самого нижнего уровня пакет “поднимается” наверх, освобождаясь от служебной информации каждого уровня.
Чтобы маршрутизатор мог анализировать и передавать поступившие пакеты, они должны содержать МАС адрес данного маршрутизатора в качестве адреса получателя. Именно при таком условии данные будут приняты, а не отброшены.
Не зная МАС адрес ближайшего маршрутизатора, мы никогда не сможем отправить наши данные получателю. Даже если мы укажем неправильный МАС адрес, то наш пакет никогда не достигнет получателя.
Вернемся к рисунку и посмотрим как будет происходить передача данных от одного маршрутизатора к другому
IP адреса получателя и отправителя всегда остаются неизменными на протяжении всего пути, а МАС адреса меняются на каждом промежуточном пункте.
А как узнать МАС адрес соседа?
Как раз для этих целей и используется протокол ARP. ARP (Address Resolution Protocol) работает на канальном уровне. Например, рассмотрим обычную сеть
Чтобы компьютер А передал пакет компьютеру C, нужно узнать МАС адрес компьютера C. Для этого компьютер А просто отправляет широковещательный запрос всем устройствам: “Кому принадлежит IP адрес 192.168.1.30?” MAC и IP адреса получателей имеют широковещательные значения — ff.ff.ff.ff.ff.ff и 192.168.1.255 соответственно.
Данный запрос получат все устройства в сети, но ответит только то, которое имеет адрес 192.168.1.30. Причем ответит оно уже самому отправителю без широковещательной рассылки. Из этого ответа мы и узнаем МАС адрес получателя.
Вот как это выглядит в анализаторе Wireshark
Кстати, очень многие сетевые устройства сохраняют в памяти МАС адреса устройств, с которыми обменивались данными. То есть создается ARP таблица, которая динамически обновляется. Можно, конечно, и статически добавить запись в таблицу.
Для просмотра таблицы на Windows системах достаточно выполнить команду arp -a, на маршрутизаторах — show arp
Комментарии для сайта Cackle
Атака канального уровня ARP-spoofing и как защитить коммутатор Cisco / Хабр
Данная статья не является руководством для кулхацкеров. Все ниже написанное является частью изучения курса Cisco SECURE.В данном материале я покажу как на практике провести атаку канального уровня на коммутатор Cisco, а также покажу как защитить свою сеть от этого. Для лабораторного стенда я использовал Cisco 881 и Catalyst 3750G.
Наверное все, кто сталкивался хоть немного с сетями знают, что такое протокол ARP.
Вкратце напомню. Протокол ARP используется для преобразования IP-адреса в MAC-адрес. Рассмотрим такую топологию:
Что произойдет, если с хоста h2 пропинговать Gateway? Первым делом будет работать ARP протокол. h2 отправит широковещательный запрос (ARP-request), в котором будут указаны MAC и IP хоста h2 и IP получателя (GATEWAY). Далее GATEWAY получит запрос и видя, что в поле IP получателя содержится его адрес, дописывает к нему свой MAC и отправляет ответ ARP-reply. Хост h2 получает ответ и заносит его в ARP-таблицу.
Как можно перехватить трафик идущий от h2 к GATEWAY? Допустим атакующий (ATTACKER) находится в одном широковещательно домене с GATEWAY и h2. Если атакующий запустит сниффер, к примеру Wireshark, то в сниффере ничего интересного он не увидит, кроме своих броадкастов и прочей служебной информации. Для перехвата трафика можно использовать слабости протокола ARP. Данный протокол не имеет никакой защиты, никакой проверки подлинности запросов. А еще возможна отправка ARP ответов без ARP запросов, это так называемый gratuitous-ARP.
Это как раз то, что нужно. Использовать для атаки будем софт Cain & Abel, но для начала посмотрим ARP-таблицы на хосте h2 и на ATTACKER:
h2 ARP-таблица
ATTACKER ARP-таблица
Далее запускаем Cain&Abel, включаем сниффер и добавляем все хосты из широковещательного домена.
Далее переходим на вкладку ARP, жмем + и выбираем адрес шлюза и хост, с которого будем перехватывать трафик.
Жмем кнопку ARP-poisoning и процесс изменения таблицы ARP на хосте h2 запустился.
Теперь посмотрим, как изменилась ARP-таблица на хосте h2.
Видим подмену MAC-адреса для IP 192.168.1.1
Теперь запустим на хосте h2 putty и попробуем зайти на GATEWAY через небезопасный протокол telnet. Так как протокол telnet передает данные в plain text, то атакующий в сниффере должен будет увидеть всю нужную информацию, то есть логин и пароль. Заходим и вводим логин/пароль и пароль enable.
Теперь на ATTACKER в сниффер, вкладка Passwords. Видно что какую-то информацию отловили
Смотрим эту запись и видим текст такого содержания:
============================================
=== Cain’s Telnet sniffer generated file ===
============================================
яы яы яэ яэUser Access Verification
Username: яы яы яы яы’яэ яы яэ яъ P яряю яъ яряю’яэ яъ XTERMяряы$яю$admin
Password: cisco
Router>eennaa
Password: Cisco
Все. Пароль от телнета перехвачен.
А теперь самое главное. Как защитить свою сеть от таких атак. На помощь нам приходит инструмент Dynamic ARP Inspection (DAI).
DAI предназначен для регулировки ARP-запросов, то есть решает — какие пропускать, а какие отбросить. Грубо говоря, DAI полностью защищает сеть от атаки ARP-spoofing, которая происходит на канальном уровне, благодаря незащищенности протокола ARP.
Немного о том, как работает DAI. Для того, чтобы работал этот механизм, нам необходимо в сети использовать DHCP и на коммутаторе должен быть включен DHCP Snooping. Если в сети используется статическая адресация, то DAI работать не будет.
Как работает DHCP Snooping. Допустим DHCP сервер у нас настроен на GATEWAY. Злоумышленник ATTACKER решил поднять у себя dhcp сервер и раздавать какие-то свои адреса. DHCP snooping предназначен для регулировки запросов и будет отбрасывать запросы сервера злоумышленника. Все очень просто. Есть Untrusted и Trusted порты. Надежным портом мы назначаем порт, которые ведет к GATEWAY, так как он у нас будет авторизованным DHCP сервером. Все остальные порты будут ненадежными и серверные запросы от них будут отбрасываться.
При этом строится таблица соответствия адресов dchp snooping database. Включаем на коммутаторе SW функцию DHCP snooping
ip dhcp snooping vlan 1
ip dhcp snooping database flash:/dhcp-snoop.db
ip dhcp snooping
На порту, смотрящему в сторону GATEWAY
SW(config-if)# ip dhcp snooping trust
Смотрим, что получилось
SW#sh ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
1
DHCP snooping is configured on the following Interfaces:
Insertion of option 82 is enabled
circuit-id format: vlan-mod-port
remote-id format: MAC
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Interface Trusted Rate limit (pps)
— — — FastEthernet1/0/47 yes unlimited
И посмотрим, что появилось в таблице соответствия
SW#sh ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface— — — — — — E8:03:9A:BE:0C:D8 192.168.1.50 26268 dhcp-snooping 1 FastEthernet1/0/13
50:B7:C3:78:B4:1A 192.168.1.10 69421 dhcp-snooping 1 FastEthernet1/0/1
Total number of bindings: 2
Теперь, если атакующий захочет стать dhcp сервером, то запросы его коммутатор будет отбрасывать.
На основании базы dhcp snooping, где содержится соответствие всех MAC и IP адресов и будет работать механизм Dynamic ARP Inspection.
Перейдем к настройке. На коммутаторе Cisco данный инструмент включается для каждого vlan отдельно. В нашем случае, достаточно на коммутаторе SW дать команду:
SW(config)#ip arp inspection vlan 1
Оба хоста и шлюз находятся в vlan 1. В DAI для портов коммутатора есть две настройки: Trusted и Untrusted. По-умолчанию, все порты коммутатора
Untrusted, то есть ненадежные. Порт, который идет к шлюзу или порт, в который включен транком еще один коммутатор можно сделать Trusted, тогда ARP-запросы приходящие через него будут считаться надежными.
SW(config-if)#ip arp inspection trust
Теперь повторим атаку с самого начала. Пробуем делать ARP-poisoning через Cain&Abel. Атака не проходит и в логах коммутатора появились следующие записи:
18:11:19: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/0000.0000.0000/192.168.1.1/18:11:19 UTC Mon Mar 1 1993])
18:11:19: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:19 UTC Mon Mar 1 1993])
18:11:19: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/13, vlan 1.([e803.9abe.0cd8/192.168.1.1/50b7.c378.b41a/192.168.1.10/18:11:19 UTC Mon Mar 1 1993])
18:11:19: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/13, vlan 1.([e803.9abe.0cd8/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:19 UTC Mon Mar 1 1993])
18:11:21: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:21 UTC Mon Mar 1 1993])
18:11:21: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/13, vlan 1.([e803.9abe.0cd8/192.168.1.1/50b7.c378.b41a/192.168.1.10/18:11:21 UTC Mon Mar 1 1993])
18:11:21: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/13, vlan 1.([e803.9abe.0cd8/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:21 UTC Mon Mar 1 1993])
18:11:24: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:24 UTC Mon Mar 1 1993])
18:11:25: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:25 UTC Mon Mar 1 1993])
Коммутатор отбрасывает «неправильные» arp-запросы. Теперь атакующий ничего не сможет перехватить.
Включим еще дополнительную проверку DAI
SW(config)#errdisable recovery cause arp-inspection
Данная опция позволяет восстановить порт и состояния errdisabled через 300 секунд. Если конечно несоответствие MAC-IP будет на этом порту продолжаться, то порт восстановлен не будет.
Просмотреть trusted и untrusted порты и статистику можно командой
SW#show ip arp inspection interfaces
На этом всё.
Спасибо за внимание.
UPD дополнил про dhcp-snooping
Традиционный ARP — Протокол разрешения адресов — Практическая работа в сети .net
Как мы узнали ранее, протокол разрешения адресов (ARP) — это процесс, с помощью которого известный адрес L3 отображается на неизвестный адрес L2. Цель создания такого сопоставления состоит в том, чтобы заголовок L2 пакета мог быть правильно заполнен для доставки пакета к следующей сетевой карте на пути между двумя конечными точками.
«Следующая сетевая карта» в пути станет целью ARP-запроса.
Если хост общается с другим хостом в той же IP-сети , целью ARP-запроса является IP-адрес другого хоста.Если хост общается с другим хостом в другой IP-сети , целью ARP-запроса будет IP-адрес шлюза по умолчанию.
Таким же образом, если маршрутизатор доставляет пакет на узел назначения, целью ARP маршрутизатора будет его IP-адрес. Если маршрутизатор доставляет пакет следующему маршрутизатору на пути к хосту, целью ARP будет IP-адрес интерфейса другого маршрутизатора, как указано в соответствующей записи в таблице маршрутизации.
Процесс ARP
Само разрешение адреса представляет собой двухэтапный процесс — запрос и ответ.
Он начинается с того, что инициатор отправляет запрос ARP в виде широковещательного кадра по всей сети. Этот запрос должен быть широковещательным, потому что на этом этапе инициатор не знает MAC-адрес цели и, следовательно, не может отправить одноадресный кадр цели.
Поскольку это была широковещательная рассылка, все узлы в сети получат запрос ARP. Все узлы будут проверять содержимое запроса ARP, чтобы определить, являются ли они предполагаемой целью.Узлы , а не намеченной цели, молча отбрасывают пакет.
Узел, которого является целью запроса ARP, затем отправит ответ ARP обратно исходному отправителю. Поскольку цель знает, кто послал первоначальный запрос ARP, она может отправить одноадресный ответ ARP напрямую обратно инициатору.
Весь процесс показан на этой анимации:
Обратите внимание, что запрос ARP включает MAC-адрес отправителя.Это то, что позволяет цели (в данном случае хост B) отвечать непосредственно инициатору (хост A).
Теперь, когда вы понимаете общий процесс, давайте более подробно рассмотрим содержимое пакетов запроса ARP и ответа ARP между хостом A и хостом B.
Запрос ARP
Запрос ARP — это полезная нагрузка ARP, переносимая в соответствующем заголовке L2 для используемой среды. В большинстве случаев это будет Ethernet, который также будет средой L2, которую мы будем рассматривать в наших примерах.
Заголовок Ethernet будет включать три поля: MAC-адрес назначения, MAC-адрес источника и EtherType.
Обратите внимание, что уровень 2 Назначение — ffff.ffff.ffff
, это специальный зарезервированный MAC-адрес, указывающий широковещательный кадр. Этот делает запрос ARP широковещательным. Если бы хост A выбрал отправку этого кадра с использованием MAC-адреса конкретного хоста в пункте назначения, тогда запрос ARP был бы одноадресным.
MAC-адрес источника , что неудивительно, является MAC-адресом нашего отправителя — хоста A.
EtherType содержит шестнадцатеричное значение 0x0806
, которое является зарезервированным EtherType для пакетов разрешения адресов.
Этот конкретный заголовок Ethernet также включает в себя некоторое заполнение . Размер полей «Назначение» / «Источник» / «Тип» составляет 14 байтов, размер последующих данных ARP (на рисунке ниже) — 28 байтов, а размер завершающей FCS (не показан) — 4 байта.Это означает, что необходимо было добавить дополнительные 18 байтов заполнения, чтобы гарантировать, что этот кадр достиг минимально допустимой длины в 64 байта.
В полезной нагрузке ARP есть несколько полей, которые стоит обсудить.
Поля Тип оборудования и Тип протокола указывают, какие типы адресов сопоставляются друг другу. В этом случае мы сопоставляем адрес Ethernet (MAC-адрес) с адресом IPv4.
Размер оборудования и Размер протокола относятся к количеству байтов в каждом из вышеупомянутых типов адресов: MAC-адрес составляет 6 байтов (или 48 бит), а IPv4-адрес — 4 байта (или 32 бита). ,
Код операции указывает, какой это тип пакета ARP. На самом деле вы увидите только два значения. Значение 1
указывает, что этот ARP-пакет является Request , или значение 2
указывает, что этот ARP-пакет является Response (отображается в следующем разделе).
Наконец, есть два набора MAC-адресов и IP-адресов, которые составляют основу полезной нагрузки ARP.
MAC-адрес отправителя и IP-адрес отправителя , что неудивительно, являются MAC- и IP-адресом инициатора ARP-запроса.В данном случае это адреса для хоста A. Поскольку запрос включал MAC-адрес хоста A, ответ может быть отправлен непосредственно обратно на хост A без необходимости широковещательной рассылки.
Целевой MAC-адрес и Целевой IP-адрес относятся к предполагаемой цели ARP-запроса — в данном случае к узлу B. Обратите внимание, что целевой IP-адрес заполнен ( 10.0.0.22
), но целевой MAC-адрес все нули. Поскольку хост A не знает MAC-адрес хоста B, хост A может только заполнить поле Target IP address и оставить MAC-адрес Target , по сути, пустым.
Уведомление Хост B упоминается как цель , а не как цель . Это важное различие.
Пункт назначения запроса ARP был широковещательным MAC-адресом ( ffff.ffff.ffff
). Запрос ARP существовал с целью определения MAC-адреса хоста B, поэтому цель — это хост B.
Считайте, что цель означает предмет разговора ARP. Это упростит понимание происходящего при обсуждении Proxy ARP и Gratuitous ARP в следующих статьях этой серии.
Ответ ARP
Ответ ARP имеет очень похожую структуру пакета. Мы снова сначала рассмотрим заголовок Ethernet, а затем полезную нагрузку ARP.
Заголовок Ethernet состоит из трех частей: MAC-адреса назначения, MAC-адреса источника и EtherType.
MAC-адрес назначения — это хост A — начальный запросчик, а исходный MAC-адрес — это хост B — исходный целевой. Обратите внимание, что кадр адресован непосредственно хосту A — это то, что делает запрос одноадресным.
EtherType снова содержит шестнадцатеричное значение 0x0806
, чтобы указать пакет ARP. Кроме того, в ответ ARP включено такое же заполнение, поскольку размер кадра Ethernet и ответа ARP такой же, как и в запросе ARP.
Полезная нагрузка ответа ARP содержит те же поля, что и запрос выше.
Тип оборудования и Размер оборудования указывают на адрес Ethernet (или MAC), который составляет 6 байтов (48 бит).
Тип протокола и Размер протокола указывают IPv4-адрес размером 4 байта (32 бита).
Основное различие между запросом и ответом заключается в поле Opcode . В ответе ARP это поле содержит значение 2
.
MAC-адрес отправителя и IP-адрес отправителя включают адреса для хоста B, которые ожидаются, если хост B отправил ответ ARP.
Целевой MAC-адрес и Целевой IP-адрес включают адреса для хоста A, поскольку он является целью ответа ARP.
Вы можете скачать захват пакета беседы ARP здесь. Его можно изучить с помощью Wireshark.Время ARP
Когда процесс ARP завершается, полученная информация сохраняется в таблице ARP или кэше ARP. Каждое устройство, имеющее IP-адрес, поддерживает такую таблицу. Записи в этой таблице истекают через определенное время.
Обычно для клиентов и конечных хостов тайм-аут ARP будет довольно коротким — обычно 60 секунд или меньше.Причина этого кроется на уровне клиента, происходит большая мобильность и перемещение, и вы не хотите кэшировать запись ARP на очень долгое время.
В то время как для устройств сетевой инфраструктуры (маршрутизаторов, межсетевых экранов и т. Д.) Время ожидания ARP очень велико — обычно 2-4 часа. Причина этого кроется на уровне инфраструктуры, узлы, присоединяющиеся и покидающие сеть, должны оставаться довольно согласованными. Маршрутизатор добавляется к сети при ее первоначальном построении, а не время от времени при масштабировании сети.В то время как хосты будут добавляться и удаляться в вашу сеть ежедневно.
Конечно, маршрутизатор не имеет возможности узнать, является ли запись в его кэше ARP хостом или другим устройством инфраструктуры. Вместо этого, чтобы не отставать от мобильности клиентов, кэш маршрутизатора обновляется всякий раз, когда он получает запрос ARP.
То есть, если хост обновляет сопоставление ARP своего шлюза по умолчанию каждые 30 секунд из-за более короткого времени ARP хоста, сопоставление ARP шлюза по умолчанию для того же самого хоста также будет обновляться каждые 30 секунд.
Существуют также другие стратегии, которые служат для поддержания соответствия ARP в актуальном состоянии. Мы рассмотрим их в одной из следующих статей этой серии.
Серия NavigationProxy ARP >>.Справка по команде Linux arp и примеры
Обновлено: 04.05.2019, Computer Hope
В операционных системах Linux команда arp управляет или отображает кэш сетевого соседа IPv4 ядра. Он может добавлять записи в таблицу, удалять их или отображать текущее содержимое.
ARP означает Address Resolution Protocol , который используется для поиска адреса сетевого соседа для данного IPv4-адреса.
Установка arp
Arp является частью пакета net-tools .Например, в системах, которые используют APT для управления пакетами, его можно установить с помощью apt-get :
sudo apt-get update && sudo apt-get install net-tools
Синтаксис
arp [-vn] [-H type ] [-i if ] -a [ имя хоста ]
arp [-v] [-i if ] -d имя хоста [ pub ]
arp [-v] [-H type ] [-i if ] -s имя хоста hw_addr [temp]
arp [-v] [-H type ] [-i if ] -s hostname hw_addr [netmask nm ] pub
arp [-v] [-H type ] [-i if ] -Ds hostname ifa [netmask nm ] pub
arp [-vnD] [-H type ] [-i if ] -f [ filename ]
Режимы
arp без спецификатора режима распечатает текущее содержимое таблицы.Можно ограничить количество печатаемых записей, указав тип аппаратного адреса, имя интерфейса или адрес хоста.
arp -d адрес удаляет запись в таблице ARP. Для этого требуются права root. Запись находится по IP-адресу. Если указано имя хоста, оно будет разрешено до поиска записи в таблице ARP.
Команда:
arp -s адрес hw_addr
используется для создания новой записи в таблице.Формат параметра hw_addr зависит от класса оборудования, но для большинства классов можно предположить, что можно использовать обычное представление. Для класса Ethernet это 6 байт в шестнадцатеричном формате, разделенных двоеточиями. При добавлении записей прокси arp (то есть тех, у которых установлен флаг публикации (« pub «), маска сети может быть указана для прокси arp для целых подсетей. Это не является хорошей практикой, но поддерживается более старыми ядра, потому что это может быть полезно.Если флаг temp не указан, записи будут постоянно сохраняться в кэше ARP. Чтобы упростить настройку записей для одного из ваших сетевых интерфейсов, вы можете использовать форму « arp -Ds address ifname ». В этом случае аппаратный адрес берется из интерфейса с указанным именем.
Опции
-v , — вербальный | Подробное отображение информации. |
-n , — числовой | показывает числовые адреса вместо попытки определить символические имена хоста, порта или пользователей. |
-H тип , —hw-тип тип | При установке или чтении кэша ARP этот необязательный параметр сообщает arp, какой класс записей следует проверить. Значение этого параметра по умолчанию — ether (т.е. аппаратный код 0x01 для IEEE 802.3 10 Мбит / с Ethernet). Другие значения могут включать сетевые технологии, такие как ARCnet ( arcnet ), PROnet ( pronet ), AX.25 ( ax25 ) и NET / ROM ( netrom ). |
-a [имя хоста] , — все [имя хоста] | Отображает записи указанных хостов. Если параметр hostname не используется, будут отображаться все записи. Имена хостов будут отображаться в альтернативном формате вывода в стиле BSD (без фиксированных столбцов). |
-d имя хоста , — удалить имя хоста | Удалить любую запись для указанного хоста.Это можно использовать, например, если указанный хост отключен. |
-D , — использование устройства | Вместо hw_addr данный аргумент — это имя интерфейса. arp будет использовать MAC-адрес этого интерфейса для записи в таблице. Обычно это лучший вариант для настройки записи ARP прокси для себя. |
-э | Показывает записи в стиле по умолчанию (Linux). |
-i Если , — устройство Если | Выберите интерфейс. При сбросе кэша ARP будут напечатаны только записи, соответствующие указанному интерфейсу. При установке постоянной записи temp или ARP этот интерфейс будет связан с записью; если этот параметр не используется, ядро будет делать предположения на основе таблицы маршрутизации. Для записей pub указанный интерфейс — это интерфейс, на котором будут отвечать на запросы ARP. ПРИМЕЧАНИЕ: Он должен отличаться от интерфейса, на который будут маршрутизироваться дейтаграммы IP. ПРИМЕЧАНИЕ: Начиная с ядра 2.2.0, больше невозможно установить запись ARP для всей подсети. Linux вместо этого выполняет автоматическую прокси-сервер ARP, когда существует маршрут и он пересылается. Кроме того, опция dontpub , доступная для операций delete и set , не может использоваться с ядрами 2.4 и новее. |
-s имя хоста hw_addr , —set имя хоста | Вручную создайте запись сопоставления адресов ARP для хоста имя хоста с аппаратным адресом, установленным на hw_addr class, но для большинства классов можно предположить, что можно использовать обычное представление.Для класса Ethernet это 6 байт в шестнадцатеричном формате, разделенных двоеточиями. При добавлении записей proxy arp (то есть тех, у которых установлен флаг публикации) может быть указана сетевая маска для proxy arp для целых подсетей. Это не очень хорошая практика, но она поддерживается более старыми ядрами, поскольку может быть полезна. Если временный флаг не указан, записи будут постоянно сохраняться в кэше ARP. ПРИМЕЧАНИЕ: Начиная с ядра 2.2.0, больше невозможно установить запись ARP для всей подсети.Linux вместо этого выполняет автоматическую прокси-сервер ARP, когда существует маршрут и он пересылается. |
-f имя файла , —file имя файла | Аналогично опции -s , только на этот раз информация об адресе берется из файла , имя файла настроено. Имя файла данных очень часто / etc / ethers , но это не официальное имя. Если имя файла не указано, по умолчанию используется / etc / ethers . Формат файла простой; он содержит только текстовые строки ASCII с именем хоста и аппаратным адресом, разделенные пробелом. Кроме того, можно использовать флаги pub , temp и netmask . |
Банкноты
Во всех местах, где ожидается имя хоста, можно также ввести IP-адрес в десятичном формате с разделительными точками.
В качестве особого случая совместимости можно поменять порядок имени хоста и адреса оборудования.
Каждая полная запись в кэше ARP будет отмечена флагом C . Постоянные записи отмечены M , а опубликованные записи — P .
Примеры
arp
Сетевая карта дисплея и возможность подключения к сети Ethernet.
ifconfig — просмотр или изменение конфигурации сетевых интерфейсов.
ip — Отображение и управление информацией о маршрутизации, устройствах, политике маршрутизации и туннелях.
netstat — Распечатывает информацию о сетевых подключениях, таблицах маршрутизации и многом другом.
route — Отображение и управление таблицей IP-маршрутизации.
Gratuitous ARP — Определение и сценарии использования — Практическое сетевое взаимодействие .net
Мы говорили о традиционном ARP, когда узел запрашивает MAC-адрес другого узла. Мы также говорили о Proxy ARP, когда узел отвечает на запрос ARP от имени другого узла. Это подводит нас к другой итерации ARP, известной как Gratuitous ARP .
Gratuitous ARP — это ответ ARP, который не был вызван запросом ARP . Gratuitous ARP отправляется в виде широковещательной рассылки, чтобы узел объявил или обновил свой IP-адрес в соответствии с MAC-адресом для всей сети.
Существует три типичных варианта использования Gratuitous ARP, и мы рассмотрим каждый из них после изучения структуры пакета.
Беспричинная структура пакета ARP
Основным элементом заголовка Ethernet является MAC-адрес назначения . Обратите внимание, что этот кадр адресован ffff.ffff.ffff
, что делает его широковещательным.
MAC-адрес источника, тип и заполнение работают точно так же, как и в традиционном ARP.
Точно так же в полезной нагрузке ARP типы оборудования и протокола и размер оборудования и протокола также служат той же цели, что и в традиционном ARP.
Код операции установлен на 2
, что указывает на ответ. Несмотря на то, что этот пакет на самом деле не последовал запросу.
Вот почему говорят, что Gratuitous ARP — это широковещательный ответ ARP, который не был инициирован запросом ARP.
MAC-адрес отправителя и IP-адрес отправителя содержат сопоставление ARP, объявленное инициатором.Эти два являются важной частью пакета ARP. Они являются причиной существования пакета ARP.
Целевой MAC-адрес — ffff.ffff.ffff
— отражение MAC-адреса назначения. Но на самом деле содержимое этого поля не имеет значения — оно игнорируется в Gratuitous ARP. Некоторые реализации ARP будут использовать в этом поле 0000.0000.0000
.
Наконец, целевой IP-адрес еще раз подтверждает IP-адрес, для которого создается это конкретное сопоставление ARP.
Примеры использования бесплатного ARP
Теперь, когда мы разобрались с содержимым пакетов Gratuitous ARP, мы можем рассмотреть их конкретные варианты использования. Мы проиллюстрируем три основных случая Gratuitous ARP: обновление сопоставлений ARP, объявление о существовании узла и избыточность.
Обновление сопоставления ARP
Первый вариант использования довольно прост: узел может использовать Gratuitous ARP для обновления сопоставления ARP других хостов в сети в случае изменения сопоставления IP-адреса и MAC-адреса узла.
Это может произойти, если пользователь вручную изменяет свой MAC-адрес — они сохраняют тот же IP-адрес, но теперь имеют новый MAC-адрес. Следовательно, необходимо обновить отображение ARP для всех узлов, которые обмениваются данными с этим пользователем.
При этом изменение MAC-адреса вручную довольно редко. Однако иногда вы видите это в избыточных облачных или виртуальных средах, где конкретная виртуальная машина (ВМ) «перескакивает» на новый физический ящик — IP-адрес той же виртуальной машины теперь обслуживается другой физической машиной.
Объявление о существовании узла
Второй вариант использования Gratuitous ARP — это когда хост вновь подключается к сети — он может использовать Gratuitous ARP, чтобы сообщить сети о своем существовании.
Намерение, побуждающее к этому действию, полезно — это попытка упреждающего заполнения кэшей ARP соседних хостов, не требуя от них инициировать процесс традиционного ARP.
Однако у хостов нет полномочий кэшировать сопоставления ARP в каждом полученном Gratuitous ARP.В результате этот вариант использования дает мало пользы. Однако это не причиняет значительного вреда, поэтому такое поведение не обескураживает.
Резервирование
Намного более существенным является вариант использования Gratuitous ARP в ситуациях, когда используется резервирование или переключение между двумя устройствами.
При резервировании обычно есть два сценария: два устройства, совместно использующие IP-адрес, но каждое из которых имеет свой собственный MAC-адрес. Или два устройства, совместно использующие IP-адрес и MAC-адрес.
В обоих этих случаях Gratuitous ARP критически важен для обеспечения непрерывной возможности связи с IP-адресом при его переключении между двумя резервными устройствами. Ниже приведены примеры каждого сценария и того, как используется бесплатный ARP.
Резервные IP-адреса
В этом сценарии только IP-адрес является избыточным. Два устройства будут использовать один IP-адрес, но у каждого устройства есть свои уникальные MAC-адреса.
В нашем примере будут использоваться два маршрутизатора с общим IP-адресом 10.0.0.1
. Хосты в нашем примере будут использовать этот общий IP-адрес в качестве шлюза по умолчанию.
Когда один из маршрутизаторов выходит из строя, другой маршрутизатор отправляет Gratuitous ARP.
Конкретное содержимое Gratuitous ARP соответствует структуре пакета, описанной выше, но основная цель пакета — дать всем в сети знать, что IP 10.0.0.1
теперь обслуживается MAC-адресом другого маршрутизатора.
После получения Gratuitous ARP все узлы обновляют свои таблицы ARP с новым отображением, чтобы они могли продолжать отправлять трафик на свой IP-адрес шлюза по умолчанию через исправный маршрутизатор.
В случае отказа противоположного маршрутизатора процесс продолжается бесконечно. Обратите внимание, что в этой конкретной анимации в качестве примера используются маршрутизаторы, но почти любой тип устройства, которое использует IP-адрес совместно с другим устройством, будет использовать Gratuitous ARP таким образом.
Резервные IP- и MAC-адреса
В этом сценарии IP-адрес и MAC-адрес являются избыточными. Два устройства будут совместно использовать , — IP-адрес, и — MAC-адрес.
В нашем примере снова будут использоваться два маршрутизатора, но на этот раз они будут совместно использовать IP-адрес 10.0.0.1
и MAC-адрес 0053.ffff.1111
.
Хосты по-прежнему будут использовать общий IP-адрес в качестве своего шлюза по умолчанию, но в этом примере их сопоставление ARP никогда не нужно будет менять — общий IP-адрес 10.0.0.1
всегда будет сопоставлен с общим MAC-адресом 0053. ffff.1111
.
Несмотря на то, что отображение ARP хостов никогда не требует обновления, бесплатный ARP по-прежнему имеет решающее значение.Но не ради обновления сопоставления ARP хостов, а ради обновления таблицы MAC-адресов коммутатора , чтобы общий MAC-адрес был связан с правильным портом. Напомним, коммутаторы изучают сопоставление MAC-адресов по исходному MAC-адресу любого принятого кадра.
Обратите внимание, что при выходе из строя маршрутизатора другой маршрутизатор отправляет Gratuitous ARP. Затем коммутатор обновляет свою таблицу MAC-адресов с учетом нового местоположения устройства, которому принадлежит общий MAC-адрес.
Опять же, конкретное содержимое Gratuitous ARP соответствует структуре пакета, описанной выше. Но цель состоит в том, чтобы коммутатор узнал новое местоположение общего MAC-адреса.
Таким образом, кадры, отправленные хостами по адресу 0053.ffff.1111
, всегда будут выходить через правильный порт коммутатора.
(FHRP), такие как HSRP или VRRP, используют именно эту стратегию, чтобы позволить обоим маршрутизаторам совместно использовать один и тот же IP-адрес и MAC-адрес. Бесплатный ARP играет важную роль в реализации этой функциональности.
Вы можете скачать захват пакета Gratuitous ARP здесь. Или вы можете загрузить захват пакетов HSRP Gratuitous ARP с последним анимированием избыточности IP и MAC. Оба могут быть изучены с помощью Wireshark. Навигация по серии << Прокси-зонд ARPARP и объявление ARP >>.команд ARP — Cisco
Чтобы добавить постоянную запись в кэш протокола разрешения адресов (ARP), используйте команду arp в режиме глобальной конфигурации. Чтобы удалить запись из кэша ARP, введите форму no этой команды.
arp [ VRF vrf-name ] ip-адрес аппаратный адрес герметичного типа [псевдоним]
№ arp [ VRF vrf-name ] ip-адрес аппаратный адрес герметичного типа [псевдоним]
Команда По умолчанию
В кэше ARP нет постоянно установленных записей.
Руководство по использованию
Чтобы использовать эту команду, вы должны быть в группе пользователей, связанной с группой задач, которая включает правильные идентификаторы задач. Если вы подозреваете, что назначение группы пользователей мешает вам использовать команду, обратитесь за помощью к администратору AAA.
Программа использует записи кэша ARP для преобразования 32-битных IP-адресов в 48-битные аппаратные адреса.
Поскольку большинство хостов поддерживают динамическое разрешение, обычно нет необходимости указывать статические записи кэша ARP.
Статические записи — это постоянные записи, которые отображают адрес сетевого уровня (адрес IPv4) на адрес уровня канала данных (MAC-адрес). Если ключевое слово псевдонима указано при создании записи, интерфейс, к которому прикреплена запись, будет действовать так, как если бы он был владельцем указанных адресов, то есть он будет отвечать на пакеты запроса ARP для этого адреса сетевого уровня с данными адрес канального уровня в записи.
Программное обеспечение не отвечает ни на какие запросы ARP, полученные для указанного IP-адреса, если ARP прокси не включен на интерфейсе, на котором получен запрос.Когда прокси-ARP включен, программное обеспечение отвечает на ARP-запросы своим собственным аппаратным адресом локального интерфейса.
Чтобы удалить все нестатические записи из кэша ARP, введите очистку кэша arp в режиме EXEC.
Примеры
Ниже приведен пример статической записи ARP для типичного хоста Ethernet:
RP / 0 / RSP0 / CPU0: router # настроить RP / 0 / RSP0 / CPU0: маршрутизатор (конфигурация) # arp 192.168.7.19 0800.0900.1834 арпа,