Каждый сетевой инженер знает, как провести простейшую диагностику удаленного хоста: проверить приходят ли арпы, пингуется ли ip-адрес. «Арпы» — это записи с данным IP-адресом в ARP-таблице оборудования, на которое стучится проверяющий. Если её нет, то итог может быть печален – физически канал подключен, а логика не настроена, в следствие чего мак-адрес не резолвится. Если тебе понятно хотя бы два слова их двух последних предложений — ты не безнадежен
ARP (Address Resolution Protocol, RFC 826) — протокол для определения соответствия между логическим адресом сетевого уровня (IP) и физическим адресом устройства (MAC). Сама связь между двумя устройствами в сети проходит именно на канальном уровне (куда и относятся мак-адреса).
Протокол ARP имеет буфер, где и хранится пара IP-адрес — MAC-адрес. Эта информация заносится в т.н. ARP-таблицу. Она служит, чтобы устройства не тратили лишний трафик на очередную идентификацию — это снижает драгоценные миллисекунды при передаче данных. Кстати, в интернете до сих пор нет единого мнения на каком уровне работает APR — на втором (ethernet) или на третьем (ip).
Многие называют его протоколом «2,5 уровня»: ARP должен работать поверх уровня ethernet (это условие выполняется), но поверх ARP должен работать хотя бы один протокол сетевого уровня. Однако в ARP не инкапсулируется ни один из протоколов третьего уровня модели OSI. Таким образом получается подобие уровня 2.5, что-то среднее между канальным и сетевым.
Что за ARP-таблица?
APR-таблица представляет собой…таблицу. В ней всего два основных столбца — айпишник и мак. В то же время, в зависимости от устройства и запроса она будет содержать другие данные (динамика/статика), интерфейс, ip адрес источника (отправителя) и т.д. Например, ARP-таблица на коммутаторе Dlink выглядит так:
Здесь можно обратить внимание на широковещательный адрес (broadcast). Поле «адрес назначения Ethernet» заполняется единицами (ff:ff:ff:ff:ff:ff). Коммутатор, получив такой широковещательный фрейм, отправляет его всем компьютерам сети, как бы обращаясь ко всем с вопросом: «если Вы владелец этого ip адреса (ip адреса назначения), пожалуйста сообщите мне Ваш mac адрес».
Как это работает?
Как туда попадают эти записи? Суть в том, что IP-пакет создается с IP-адресом источника и назначения. Сам этот пакет будет инкапсулирован в кадр Ethernet с MAC-адресом источника и назначения. Окей, свой-то мак-адрес устройство знает. А как ему узнать мак-адрес получателя, чтобы пальнуть в него этим ethernet-кадром? Для этого и существует потокол ARP
IP-протокол (это уже третий, сетевой уровень модели OSI) проверяет есть ли в ARP-таблице принимающей стороны запись об этом устройстве (который отправляет запрос). Если запись существует — начинается передача пакетов. Если нет — отправляется широковещательный ARP-запрос, который выясняет, какому из устройств принадлежит IP-адрес. Протокол ARP опрашивает все хосты в локальной сети и только один отвечает на этот запрос
Один из хостов, которые получили этот широковещательный пакет, видит, что IP-адрес принадлежит ему. И в ответ шлет свой MAC-адрес. Соответственно запись связки IP-MAC заносится в ARP-таблицу. В следующий раз, понятное дело, это операция (для конкретного устройства с этим IP) уже не понадобится.
Наглядно:
Итак. у нас есть два ПК1 и ПК2. Придумаем им IP и MAC-адрес
Давайте из ПК1 запустим команду Ping
ping 192.168.1.2
Pinging 192.168.1.2 with 32 bytes of data:
Reply from 192.168.1.2: bytes=32 time=15ms TTL=57
Reply from 192.168.1.2: bytes=32 time=15ms TTL=57
Reply from 192.168.1.2: bytes=32 time=14ms TTL=57
Reply from 192.168.1.2: bytes=32 time=17ms TTL=57
Ping statistics for 192.168.1.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 14ms, Maximum = 17ms, Average = 15ms
Немного разберём команду. Ping использует протокол ICMP — сетевой протокол из стэка протоколов TCP/IP. Наш сформированный пакет IP-пакет будет иметь исходный IP-адрес ПК1 (192.168.1.1) и IP-адрес назначения ПК2 (192.168.1.2). Дальше мы инкапуслируем IP-пакет в кадр Ethernet . В этом кадре мы уже устанавливаем MAC-адреса: исходный ПК1 (AAA) и целевой ПК2 (BBB).
Это всё здорово, но как ping узнал мак-адрес получателя? Ведь изначально таблица ARP пуста, да и ICMP — протокол сетевой, не канальный. А узнал он его с помощью ARP
Итак, компьютер понимает, что он не знает MAC-адрес компьютера, доступность которого надо проверить. Для этого отправляется широковещательный пакет, о котором мы писали выше. Это сообщение достигнет всех компьютеров в сети
ПК видит, что этот IP принадлежит ему и ответит сообщением ARP Reply — «Это я! И это мой MAC-адрес». Теперь ПК1 может добавить MAC-адрес в свою таблицу ARP и начать пересылку данных в сторону ПК2.
Это очень краткое и поверхностное изложение протокола ARP — далеко не все аспекты работы лежат на поверхности. Дальше — самостоятельная работа. Stay Tuned!
Время на прочтение
12 мин
Количество просмотров 124K
Привет 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-запрос/ARP-ответ. Для примера, я проверил процедуру на компьютере с операционной системой Windows 7. Ниже представлен дамп ARP-пакетов. В данном примере был очищен arp-cache на маршрутизаторе Cisco и на Windows-компьютере. После этого был запущен пинг от маршрутизатора к компьютеру.
Из представленного дапма видно, что сперва маршрутизатор отправляет 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.
Первый и второй вариант подразумевают изменение настроек на «чужом» сетевом оборудовании и не всегда может быть приемлем.
Третий вариант является наиболее предпочтительным.
Четвёртый вариант может быть использован, но открывает уязвимость с точки зрения сетевой безопасности.
- Функциональность Proxy ARP включена на интерфейсах маршрутизатора по умолчанию. Рекомендуется отключать Proxy ARP как минимум на интерфейсах, подключаемых к Интернет-провайдерам.
ARP (Address Resolution Protocol) – это протокол, который используется в компьютерных сетях для связи между сетевыми устройствами. Он работает на основе таблицы ARP, которая содержит соответствия между IP-адресами и физическими (MAC) адресами устройств. Таблица ARP роутера – это база данных, в которой хранятся эти соответствия.
Когда две сетевые устройства взаимодействуют, например, когда компьютер отправляет пакет данных на какой-то IP-адрес, он должен знать соответствующий MAC-адрес назначения, чтобы пакет мог быть доставлен. В этом момент протокол ARP вступает в игру и осуществляет запрос в таблице ARP роутера для поиска соответствующего MAC-адреса.
Если соответствующая запись о MAC-адресе присутствует в таблице ARP роутера, то пакет данных может быть успешно доставлен. Если запись отсутствует, то происходит процесс «разрешения адреса» (address resolution). В этом случае, устройство отправит запрос в сеть с вопросом «Какой MAC-адрес имеет данный IP-адрес?». В ответ на запрос, устройство с нужным IP-адресом отправляет свой MAC-адрес, который будет сохранен в таблице ARP роутера.
Таблица ARP роутера постоянно обновляется и дополняется в процессе работы сети. За добавление и удаление записей отвечает сам протокол ARP. Использование таблицы ARP позволяет оптимизировать процесс коммуникации в сети за счет быстрого определения MAC-адресов и, следовательно, увеличения скорости доставки пакетов данных.
Содержание
- Что такое таблица arp и как она работает на роутере
- ARP: назначение и принцип работы
- Зачем роутеру таблица arp
- Как формируется таблица ARP на роутере
- Как таблица arp помогает в маршрутизации пакетов
- Как обновляется таблица ARP на роутере
- Возможные проблемы с таблицей ARP на роутере
- Как узнать содержимое таблицы arp на роутере
Что такое таблица arp и как она работает на роутере
Когда устройство отправляет пакет сетевых данных на устройство с известным IP-адресом, оно сначала проверяет свою таблицу ARP. Если в таблице есть запись для IP-адреса получателя, которая содержит соответствующий MAC-адрес, устройство использует этот MAC-адрес для отправки пакета. Если запись отсутствует, устройство отправляет ARP-запрос в сеть, чтобы узнать MAC-адрес получателя.
ARP-запрос является широковещательным сообщением, которое отправляется на все устройства в сети. Оно содержит IP-адрес отправителя, IP-адрес получателя и специальный ARP-флаг. Устройство, которое имеет соответствующий IP-адрес, отвечает с ARP-ответом, в котором указывается его MAC-адрес.
После получения ARP-ответа устройство добавляет запись в свою таблицу ARP. В результате следующий пакет, который будет отправлен на этот IP-адрес, будет содержать новый MAC-адрес, найденный в таблице ARP.
В таблице ARP могут быть записи для различных устройств в сети. Записи в таблице ARP обычно имеют ограниченное время жизни, и они могут удаляться или обновляться автоматически. Это происходит, чтобы обеспечить актуальность информации о MAC-адресах устройств в сети.
ARP: назначение и принцип работы
ARP работает следующим образом:
1. Когда устройству необходимо отправить пакет данных на определенный IP-адрес, оно сначала проверяет таблицу ARP на наличие соответствующей записи.
2. Если запись найдена, устройство использует соответствующий MAC-адрес для отправки пакета данных непосредственно на сетевой уровень.
3. Если записи нет в таблице ARP, устройство отправляет широковещательное сообщение ARP-запроса, в котором указывает нужный IP-адрес и свой MAC-адрес. Все устройства в сети получают это сообщение.
4. Устройство, у которого есть нужный IP-адрес, отвечает на ARP-запрос, указывая свои IP- и MAC-адреса.
5. После получения ответа, отправляющее устройство обновляет свою таблицу ARP, добавляя новую запись с полученным IP-адресом и MAC-адресом.
6. Теперь устройство может отправить пакет данных на нужный IP-адрес, используя полученный MAC-адрес.
Таким образом, ARP позволяет сетевым устройствам общаться друг с другом, определяя физический адрес устройств по их IP-адресам. Таблица ARP, содержащая информацию о соответствии IP-адресов и MAC-адресов, позволяет оптимизировать процесс отправки данных в сети и ускоряет пересылку информации.
Протокол ARP является неотъемлемой частью функционирования сетей Ethernet и играет важную роль в обеспечении эффективного обмена данными между устройствами в сети.
| IP-адрес | MAC-адрес |
|---|---|
| 192.168.1.1 | AA:BB:CC:DD:EE:FF |
| 192.168.1.2 | 11:22:33:44:55:66 |
Зачем роутеру таблица arp
Зачем это нужно? Роутер не отправляет данные напрямую на физический MAC-адрес устройства, так как он оперирует IP-адресами. Поэтому, передача данных происходит путем конвертации IP-адреса в соответствующий MAC-адрес с помощью таблицы ARP.
Когда роутер получает пакет данных с указанным IP-адресом назначения, он проверяет таблицу ARP. Если MAC-адрес устройства, соответствующего IP-адресу, уже известен, то роутер может непосредственно отправить данные по указанному MAC-адресу. Если MAC-адрес отсутствует в таблице, роутер отправит запрос ARP на весь локальный сегмент сети с целью получения MAC-адреса. После получения ответа, роутер обновит таблицу ARP и сможет отправить данные.
Таблица ARP позволяет роутеру оптимизировать процесс отправки данных в локальной сети. Благодаря таблице ARP, роутер может сразу отправить данные на нужный MAC-адрес, без необходимости отправки запросов ARP. Это позволяет ускорить передачу данных и повысить производительность сети.
Как формируется таблица ARP на роутере
Таблица ARP на роутере формируется автоматически при обмене сетевыми пакетами в локальной сети. Когда устройство отправляет пакет на определенный IP-адрес, оно проверяет свою таблицу ARP, чтобы определить MAC-адрес получателя.
Если в таблице ARP нет записи для нужного IP-адреса, устройство отправляет ARP-запрос. ARP-запрос – это широковещательное сообщение, в котором устройство запрашивает MAC-адрес устройства с определенным IP-адресом.
Когда устройство с нужным IP-адресом получает ARP-запрос, оно отвечает с помощью ARP-ответа. ARP-ответ содержит MAC-адрес устройства, отправившего запрос.
Роутер, принимая и перенаправляя сетевые пакеты, также участвует в обмене ARP-запросами и ARP-ответами. Если на роутер поступает ARP-запрос для определенного IP-адреса, роутер проверяет свою таблицу ARP. Если соответствующая запись есть, роутер отправляет ARP-ответ с помощью своего MAC-адреса. Если записи в таблице ARP нет, роутер играет роль промежуточного устройства, пересылающего ARP-запросы и ARP-ответы между устройствами в локальной сети.
Таблица ARP на роутере постоянно обновляется. Когда устройство получает ARP-ответ, оно обновляет соответствующую запись в таблице ARP с указанным MAC-адресом. Также, периодически устройства могут отправлять ARP-запросы для обновления информации в таблице ARP и убедиться в актуальности соответствия IP-адресов и MAC-адресов.
Как таблица arp помогает в маршрутизации пакетов
Таблица ARP (Address Resolution Protocol) играет важную роль в процессе маршрутизации пакетов в компьютерных сетях. Она используется для связи IP-адресов с физическими MAC-адресами устройств.
Когда компьютер или другое устройство пытается отправить пакет данных в локальную сеть или в другую сеть, оно должно знать MAC-адрес получателя. Однако, IP-адреса используются для идентификации устройств, а не MAC-адреса. Вот где таблица ARP приходит на помощь.
Когда устройство нуждается в MAC-адресе определенного IP-адреса, оно проверяет свою таблицу ARP. Если IP-адрес уже присутствует в таблице, оно может сразу получить соответствующий MAC-адрес и продолжить процесс отправки пакета данных.
Однако, если IP-адресса нет в таблице ARP, устройство отправит ARP-запрос широковещательным сообщением в своей локальной сети. Другие устройства в сети, которые имеют соответствующий IP-адрес, ответят с указанием своего MAC-адреса. Информация о полученном MAC-адрессе заносится в таблицу ARP, чтобы в будущем избежать повторных ARP-запросов.
Таким образом, таблица ARP позволяет устройствам быстро находить необходимый MAC-адресс и маршрутизировать пакеты данных на нужное устройство. Это упрощает и ускоряет процесс обмена данными в компьютерных сетях.
Как обновляется таблица ARP на роутере
Таблица ARP (Address Resolution Protocol) на роутере обновляется автоматически при необходимости и при взаимодействии с другими устройствами в сети. Этот процесс осуществляется с целью обновления и поддержания актуальной информации о связи между IP-адресами и MAC-адресами в сети.
Когда роутер получает пакет данных от устройства в сети, он проверяет таблицу ARP для определения соответствующего MAC-адреса для получателя пакета. Если эта информация отсутствует в таблице ARP, роутер отправляет запрос ARP broadcast, чтобы узнать MAC-адрес устройства с определенным IP-адресом.
Устройство, которое имеет соответствующий IP-адрес, ответит на запрос ARP и передаст свой MAC-адрес роутеру. Роутер обновит свою таблицу ARP, добавив новую запись с соответствующим IP-адресом и MAC-адресом устройства.
Таблица ARP также может автоматически обновляться в случае изменения конфигурации сети. Например, если устройство с IP-адресом переносится в другую сеть или если устройство меняет свой IP-адрес, роутер автоматически обновит запись в таблице ARP.
Обновление таблицы ARP на роутере важно для правильной маршрутизации пакетов данных в сети. Благодаря актуальным записям в таблице ARP, роутер может быстро определить соответствующий MAC-адрес для передачи пакетов данных по правильному пути.
Возможные проблемы с таблицей ARP на роутере
Таблица ARP (Address Resolution Protocol) на роутере представляет собой список соответствия IP-адресов и их физических (MAC-) адресов. Она играет важную роль в маршрутизации сетевых пакетов, позволяя определить физический адрес устройства по его IP-адресу.
Однако, таблица ARP может столкнуться с различными проблемами, которые могут повлиять на нормальную работу роутера:
-
Старение записей: Записи в таблице ARP имеют ограниченное время жизни. Если устройство не обращается к роутеру в течение определенного времени, запись может быть удалена из таблицы. Это может привести к задержкам при маршрутизации пакетов, так как роутер будет вынужден выполнять процесс ARP-определения снова.
-
Атаки ARP-отравления: Атаки ARP-отравления (ARP poisoning) могут привести к подмене записей в таблице ARP. Злоумышленник может отправлять фальшивые ARP-пакеты, рассылая ложные MAC-адреса, что может привести к неправильной маршрутизации пакетов или перехвату данных.
-
Переполнение таблицы: В случае, если в таблице ARP накапливается большое количество записей, эта ситуация может привести к переполнению таблицы и ухудшению производительности роутера. Такие проблемы могут возникнуть в сетях с большим количеством устройств.
-
Неправильные записи: Некорректные или поврежденные записи в таблице ARP могут вызвать ошибки в маршрутизации пакетов. Это может привести к недоступности устройств или неправильному пересылу данных.
Исправление данных проблем важно для нормальной работы роутера. Регулярное обновление таблицы ARP, использование механизмов защиты от атак ARP-отравления, а также мониторинг и оптимизация таблицы могут помочь предотвратить и решить проблемы связанные с таблицей ARP на роутере.
Как узнать содержимое таблицы arp на роутере
Таблица arp (Address Resolution Protocol) на роутере содержит информацию о соответствии между IP-адресами и MAC-адресами устройств в сети. Для того чтобы узнать содержимое таблицы arp на роутере, можно воспользоваться следующими способами:
- Использовать команду «show arp» в командной строке роутера.
- Зайти в веб-интерфейс роутера и найти раздел с информацией о таблице arp.
- Использовать специальные утилиты или программы для сканирования сети и отображения таблицы arp.
Команда «show arp» позволяет получить список всех записей в таблице arp на роутере. В выводе команды будут отображены IP-адреса и соответствующие им MAC-адреса устройств.
Если роутер имеет веб-интерфейс, то в нем обычно есть раздел «ARP Table» или «Таблица arp», где можно увидеть все записи таблицы arp. В этом разделе будет отображаться информация о соответствии IP-адресов и MAC-адресов.
Для более подробного анализа таблицы 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-таблицу.
Протокол ARP
В локальных сетях телекоммуникаций на основе дейтаграмм устройствам необходимы как МАС-адрес, так и IP-адрес, которые для каждого
узла образуют соответствующую пару. На каждом конечном узле можно
посмотреть его физический адрес и IP-адрес по команде ipconfig /all
(
рис.
6.7). Из распечатки следует, что физическим МАС-адресом конечного узла является 00-19-D1-93-7E-BE, а логическим IP-адресом –
10.0.118.52.
Протокол ARP может по IP-адресу автоматически определить
МАС-адрес устройства. Каждое устройство в сети поддерживает таблицу ARP table, которая содержит соответствующие MAC- и IP-адреса других
устройств той же локальной сети. Таблица ARP любого узла может быть
просмотрена по команде arp -a (
рис.
6.8). Записи таблицы хранятся в
памяти RAM, где динамически поддерживаются.
Рис.
6.7.
Результат выполнения команды ipconfig /all
Если узлы долго не передают данные, то соответствующие записи из
таблицы удаляются, что представлено на
рис.
6.8, где таблица содержит
только одну пару IP- и MAC-адресов.
Рис.
6.8.
Таблица ARP
Таблица ARP пополняется динамически путем контроля трафика
локального сегмента сети. Все станции локальной сети Ethernet анализируют трафик, чтобы определить, предназначены ли данные для них. При
этом IP- и MAC-адреса источников дейтаграмм записываются в таблице
ARP. Например, после общения с узлом 10.0.118.65 в таблице ARP появляется вторая запись (
рис.
6.9).
Рис.
6.9.
Изменения в таблице ARP
Когда устройство передает пакет по IP-адресу назначения, оно
проверяет, имеется ли в ARP-таблице соответствующий МАС-адрес
назначения. Если соответствующая запись имеется, то она используется
при инкапсуляции пакета в кадр данных. Данные передаются по сетевой
среде, устройство назначения принимает их.
Если узел не находит соответствующей записи в таблице ARP, то
он для получения MAC-адреса назначения посылает в локальную сеть широковещательный ARP-запрос, в котором задается сетевой логический
IP-адрес устройства назначения. Все другие устройства сети анализируют
его. Если у одного из локальных устройств IP-адрес совпадает с запрашиваемым, то устройство посылает ARP-ответ, который содержит пару IP- и
MAC-адресов. Эта пара записывается в ARP-таблице. Если в локальной
сети нет запрашиваемого IP-адреса, то устройство-источник сообщает об
ошибке.
Когда данные передаются за пределы локальной сети, то для передачи сообщения необходимы IP- и MAC-адреса как устройства назначения,
так и промежуточных маршрутизирующих устройств. Поскольку маршрутизаторы не транслируют широковещательные запросы в другие сегменты
сети, в этом случае маршрутизатор в ответ на запрос посылает ARP-ответ
с MAC-адресом своего входного интерфейса, на который поступил запрос.
Таким образом, сформированный конечным устройством кадр поступит на интерфейс маршрутизатора, который после анализа адреса сети
назначения и обращения к таблице маршрутизации продвинет пакет на
выходной интерфейс.
Передать данные по адресу устройства, которое находится в другом
сегменте сети, можно также за счет установки шлюза по умолчанию.
Шлюз по умолчанию имеет IP-адрес входного интерфейса маршрутизатора на пути к устройству назначения. Этот адрес хранится в конфигурационном файле конечного узла (хоста). Источник сообщения сравнивает
IP-адрес назначения со своим IP-адресом и определяет, находятся ли эти
адреса в одном сегменте сети или в разных сегментах. Если они находятся
в разных сегментах, то данные будут переданы только при условии, что
установлен шлюз по умолчанию.
Таким образом, при передаче данных по сети (
рис.
6.6) Host X для
нахождения МАС-адреса назначения посылает в сеть широковещательный ARP запрос, в котором задается IP-адрес устройства назначения, на
который Router A в ответ посылает МАС-адрес своего входного интерфейса, и передаваемый пакет поступает в маршрутизатор.
Маршрутизатор А извлекает пакет из кадра, обрабатывает заголовок
поступившего пакета, использует таблицу маршрутизации, чтобы определить сеть адресата, и затем продвигает пакет к выходному интерфейсу.
Пакет вновь инкапсулируется в новый кадр данных и направляется следующему маршрутизатору B, при этом в заголовке кадра может указываться новый МАС-адрес входного интерфейса этого маршрутизатора. Этот
процесс происходит каждый раз, когда пакет проходит через очередной
маршрутизатор. В конечном маршрутизаторе (в данном примере – маршрутизатор C,
рис.
6.6), который связан с сетью узла назначения Сеть 2,
пакет инкапсулируется в кадр локальной сети адресата с МАС-адресом
устройства назначения и доставляется адресату Host Y.
Для продвижения пакета к узлу назначения маршрутизатор использует таблицу маршрутизации, основными параметрами которой являются
номер (адрес) сети назначения и сетевой адрес входного интерфейса
следующего маршрутизатора на пути к адресату назначения. Этот адрес
интерфейса получил название следующего перехода (next hop).
Таким образом, в таблице задаются:
- адрес сети назначения;
- адрес следующего перехода;
- другие дополнительные параметры, которые различаются для разных
маршрутизирующих протоколов и маршрутизаторов разных фирм,
производящих оборудование.
Из дополнительных параметров в таблицы маршрутизации включается информация:
- о статической или динамической маршрутизации,
- о типе используемых протоколов маршрутизации,
- о метрике, используемой при выборе возможного пути.
Принцип построения таблиц маршрутизации рассмотрен на примере сети, построенной на маршрутизаторах и коммутаторах (
рис.
6.10).
Последовательные (serial) интерфейсы маршрутизаторов на
рис.
6.10
соединены между собой молниевидной линией, а порты Fast Ethernet –
прямой линией. В приведенной схеме, например, D-f1 означает – первый
Fast Ethernet порт маршрутизатора D, В-s2 – второй последовательный
порт маршрутизатора B.
Рис.
6.10.
Принцип маршрутизации в сети
Таблица маршрутизации, например маршрутизатора B (таблица 6.2),
будет содержать информацию о маршрутах ко всем сетям (
рис.
6.10).
Маршрут к Cети 1 лежит через последовательный интерфейс A-s1 маршрутизатора А, к Cети 3 – через последовательный интерфейс С-s1 маршрутизатора С, а к сетям Сеть 6, Сеть 7 – через интерфейс D-f1 маршрутизатора D. Адреса входных интерфейсов маршрутизаторов на пути следования пакета к адресату назначения называются адресами следующего
перехода (next hop).
| Адрес сети назначения | Адрес следующего перехода |
|---|---|
| Сеть 1 | A-s1 |
| Сеть 3 | C-s1 |
| Сеть 6 | D-f1 |
| Сеть 7 | D-f1 |
Вместо адреса следующего перехода часто указывают обозначение
выходного интерфейса маршрутизатора, отправляющего пакет. Поскольку
выходной интерфейс маршрутизатора, отправляющего пакет, и входной
интерфейс следующего маршрутизатора на пути к адресату назначения
соединены между собой, противоречий при этом никаких нет. Кроме
удаленных сетей назначения в таблице маршрутизации указываются
непосредственно (прямо) присоединенные сети с указанием выходного
интерфейса. Например, таблица маршрутизации В (таблица 6.3) будет
содержать три прямо присоединенных сети.
| Адрес присоединенной сети | Выходной интерфейс |
|---|---|
| Сеть 2 | s1 |
| Сеть 4 | S2 |
| Сеть 5 | f1 |
Таким образом, пакет, предназначенный одному из узлов сети,
например Сети 7, попав в маршрутизатор В, будет направлен на входной
интерфейс D-f1 маршрутизатора D (следующий переход). В свою очередь,
в таблице маршрутизации D будет задан адрес входного интерфейса E-s1
следующего маршрутизатора E, для которого Cеть 7 является непосредственно присоединенной. Поэтому маршрутизатор Е направит пакет узлу
назначения.
Краткие итоги
- Объединение нескольких локальных сетей в глобальную (распределенную, составную) WAN-сеть происходит с помощью устройств и
протоколов сетевого Уровня 3 семиуровневой эталонной модели OSI. - Наиболее распространенными устройствами межсетевого взаимодействия сетей, подсетей и устройств являются маршрутизаторы.
- Маршрутизаторы имеют как LAN-, так и WAN-интерфейсы и поэтому являются устройствами как локальных, так и глобальных сетей.
- Главными функциями маршрутизаторов являются: выбор наилучшего пути для пакетов к адресату назначения и продвижение принятого пакета с входного интерфейса на соответствующий выходной
интерфейс. - Конфигурационный файл хранится в NVRAM. Он содержит команды
и параметры для управления потоком трафика. Конфигурационный
файл задает сетевые протоколы и протоколы маршрутизации, которые определяют наилучший путь для пакетов к адресуемой сети. - Маршрутизатор оценивает доступные пути к адресату назначения
и выбирает наиболее рациональный маршрут на основе некоторого
критерия – метрики. - Администратор может конфигурировать статические маршруты и
поддерживать таблицы маршрутизации вручную. Однако большинство таблиц маршрутизации создается и поддерживается динамически, за счет использования протоколов маршрутизации, которые
позволяют маршрутизаторам автоматически обмениваться информацией о сетевой топологии друг с другом. - Маршрутизатор ретранслирует пакет, продвигая его с входного
интерфейса на выходной, для чего использует сетевую часть адреса
назначения и обращается к таблице маршрутизации. - Основными параметрами таблицы маршрутизации являются адрес сети
назначения и сетевой адрес входного интерфейса следующего маршрутизатора на пути к адресату назначения (следующий переход –next hop)
или собственный выходной интерфейс маршрутизатора. -
Протокол разрешения адресов (ARP) реализует процесс нахождения
МАС-адреса по известному сетевому адресу (IP-адресу). Таблица ARP
содержит MAC- и IP-адреса других устройств той же локальной сети. - Шлюз по умолчанию – это интерфейс, через который все пакеты из
локальной сети будут передаваться в удаленные сети.
Вопросы
- Какие устройства объединяют LAN в распределенную составную сеть?
- Какого типа интерфейсы имеют маршрутизаторы?
- Что означают термины DTE, DCE?
- Для чего служит устройство CSU/DSU?
- Могут ли маршрутизаторы объединять локальные сети различных
технологий? - На основании чего маршрутизатор ретранслирует пакет, продвигая
его с входного интерфейса на выходной? - Что служит оценкой наилучшего пути к адресату назначения?
- Какой протокол позволяет находить МАС-адреса по известному
сетевому адресу? - По какой команде может быть просмотрена таблица ARP-узла?
- В каком случае маршрутизатор в ответ на запрос посылает ARP-ответ
с MAC-адресом своего входного интерфейса, на который поступил
запрос? - Как формируются таблицы маршрутизации?
- Что означает термин «адрес следующего перехода» (next hop)?
- Что означает термин «шлюз по умолчанию»?
- Какие параметры содержит таблица марщрутизации?
Упражнения
- Поясните, с использованием какой линии создается конфигурационный файл и где он может сохраняться.
- Изобразите схему составной сети из четырех маршрутизаторов,
последовательно соединенных через Fast Ethernet интерфейсы.
Обозначьте интерфейсы. Укажите, МАС-адреса каких интерфейсов будут использоваться в качестве адресов источников и адресов
назначения передаваемых кадров при их прохождении через каждый
маршрутизатор. - Укажите основные параметры таблицы маршрутизации маршрутизатора В (
рис.
6.6). - Поясните, какие параметры можно посмотреть на каждом конечном
узле по команде ipconfig /all. - Поясните, почему из двух последовательно соединенных серийных
интерфейсов маршрутизаторов один должен выполнять роль устройства DCE, а второй – устройства DTE.
































