3

Я знаю, что в локальной сети Ethernet протокол ARP используется для получения MAC-адреса с IP-адреса. Как мой маршрутизатор получает MAC-адрес другого маршрутизатора во внешней сети, если ARP невозможен?

6 ответов6

7

Почему вы предполагаете, что ARP невозможен? ARP - способ, которым это сделано. В вашей "внутренней сети" нет ничего особенного по сравнению с "внешней сетью", в обоих случаях используются одни и те же протоколы.

У вашего маршрутизатора есть набор настроек маршрутов для маршрутизации трафика во внутреннюю сеть, но также имеется шлюз по умолчанию, который указывает на маршрутизатор в сети вашего провайдера. Ваш маршрутизатор будет использовать ARP для поиска MAC-адреса этого шлюза по умолчанию. Затем этот маршрутизатор сделает то же самое, чтобы найти свой "следующий прыжок".

2

Под "внешней сетью" я полагаю, что она не подключена напрямую к вашему маршрутизатору.

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

Теперь возможно, что адрес следующего перехода не находится в сети, к которой подключен ваш маршрутизатор. Таким образом, ваш маршрутизатор просматривает таблицу маршрутов, чтобы найти маршрут к адресу следующего перехода. Этот маршрут также будет иметь адрес следующего перехода (назовем его NH2). NH2 будет находиться в общей подсети, поэтому ваш маршрутизатор будет использовать ARP для MAC для NH2.

В действительно странном случае, когда NH2 также не является локальным, ваш маршрутизатор будет продолжать искать в своей таблице маршрутизации, пока не найдет локальную подсеть, или он не отбросит пакет.

1

Короткий ответ:

Технологии канального уровня (уровень 2), в которых используются MAC-адреса, используют ARP даже для "внешних" (WAN) каналов.

Технологии канального уровня, которые являются двухточечными, не обязательно нуждаются в адресах канального уровня, потому что существует только 2 конечных точки, и каждая конечная точка знает, что если это не та, которая передает сообщение, то это должна быть одна получить его и наоборот. Таким образом, им не нужно ничего, как MAC-адрес или ARP.

Технологии канального уровня, которые являются многоточечными на общей среде, будут нуждаться в каких-либо адресах канального уровня и протоколе разрешения адресов, даже если они не называют их «MAC-адресами» и « ARP "соответственно. Но они часто называют свой ARP-эквивалент «<имя этой технологии передачи данных> ARP»

Длинный ответ:

В каком-то смысле MAC-адреса и ARP, как вы их знаете из Ethernet, используются только на Ethernet-подобных каналах передачи данных, поэтому поиск MAC-адреса следующего перехода необходим только на Ethernet-подобных каналах передачи данных, и для этого используется ARP.

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

Так что же насчет общих каналов передачи данных с несколькими средами (так называемые многоточечные-многоточечные), которые не похожи на Ethernet и не используют Ethernet-подобные 48-битные MAC-адреса? Ну, эти каналы передачи данных, вероятно, имеют какие-то адреса канального уровня, даже если это не 48-битный MAC-адрес, и им потребуется какой-то способ сопоставления адреса IPv4 с их адресами канального уровня, даже если это не традиционный Ethernet ARP. В общем, люди, разрабатывающие, как заставить IPv4 работать по этим другим каналам передачи данных, в основном следуют модели Ethernet и создают протокол ARP для своего канала передачи данных. Эти протоколы обычно отличаются от традиционного Ethernet ARP тем, что они называются «<вставить имя протокола канального уровня здесь> ARP».

Поэтому, если вы делаете IP через Fibre Channel, есть « IP over Fibre Channel ARP » (более простое имя "Fibre Channel ARP" или "FARP" уже использовалось для одного из собственных протоколов Fibre Channel).

Если вы выполняете IP через SONET/SDH (технически через "MAPOS", который является способом создания многоточечной сети через SONET/SDH), у вас есть « MAPOS ARP ».

Если вы используете IP через FireWire (последовательная шина IEEE 1394), у вас есть « 1394 ARP »

Если вы вернулись ко времени начала 90-х и хотели использовать IP через AppleTalk/LocalTalk, вы делаете « NBP ARP » (более простое имя "AppleTalk ARP" или "AARP" уже использовалось для протокола, который отображает сетевой уровень AppleTalk адреса к адресам канального уровня).

0

Неважно, по каналу Ethernet или WAN, фрейм, а не IP-пакет, передается в сеть только на уровне 1. На последовательных ссылках используется HDLC кадр. Разница заключается в том, что маршрутизатор не выполняет ARP на последовательном канале, фактически последовательный канал не имеет MAC-адреса, он использует SLARP, Serial Line ARP - метод определения работоспособности канала. Последовательный канал имеет только две конечные точки, без ARP или MAC. Теперь поставщики услуг часто используют Ethernet Wan, где ARP - король :)

0

Как мой маршрутизатор получает MAC-адрес другого маршрутизатора во внешней сети, если ARP невозможен?

Упрощение немного, это невозможно и не нужно.

В простейшей ситуации у узла есть NIC, которому назначен IP-адрес и маска сети (то есть подсеть), и он знает о "шлюзе по умолчанию", который он получил через DHCP.

Исходя из этого, если он хочет отправить трафик чему-то в той же подсети, он может просто выбросить трафик из этой сетевой карты, и он достигнет чего-либо в этой подсети.

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

Затем шлюз по умолчанию будет пересылать (маршрутизация = пересылка) этот трафик в другую подсеть, если у него есть маршрут для него. В вашей типичной ситуации в жилых помещениях это, в основном, пойдет к вашему кабелю или маршрутизатору интернет-провайдера DSL, и далее оттуда "вверх по течению".

Большие сети (корпоративные, кампусные) используют различные протоколы шлюза для определения маршрутов, к которым они не подключены напрямую, а интернет-провайдеры используют BGP для торговли довольно большими таблицами маршрутизации, которые составляют весь Интернет.

MAC не нужен для маршрутизации, просто шлюз по умолчанию.

MAC-адреса не могут помочь в маршрутизации, потому что нет такой вещи как "подсеть" для MAC-адресов. «Уровень MAC-адреса» предполагает, что когда он отправляет что-то другому MAC, он может сделать это, просто отправляя трафик по проводам. У него нет понятия "посредник". Таким образом, получение MAC-адреса чего-либо из вашей сети не является полезным, поскольку ваш трафик поступает в нее. Вот почему существует уровень IP, и не все являются только MAC-адресами.

0

Как мой маршрутизатор получает MAC-адрес другого маршрутизатора во внешней сети, если ARP невозможен?

Либо следующий переход достигнут Ethernet или нет. Если по Ethernet, то ARP работает. Если не по Ethernet, то MAC не требуется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .