Я знаю, что в локальной сети Ethernet протокол ARP используется для получения MAC-адреса с IP-адреса. Как мой маршрутизатор получает MAC-адрес другого маршрутизатора во внешней сети, если ARP невозможен?
6 ответов
Почему вы предполагаете, что ARP невозможен? ARP - способ, которым это сделано. В вашей "внутренней сети" нет ничего особенного по сравнению с "внешней сетью", в обоих случаях используются одни и те же протоколы.
У вашего маршрутизатора есть набор настроек маршрутов для маршрутизации трафика во внутреннюю сеть, но также имеется шлюз по умолчанию, который указывает на маршрутизатор в сети вашего провайдера. Ваш маршрутизатор будет использовать ARP для поиска MAC-адреса этого шлюза по умолчанию. Затем этот маршрутизатор сделает то же самое, чтобы найти свой "следующий прыжок".
Под "внешней сетью" я полагаю, что она не подключена напрямую к вашему маршрутизатору.
Это не ARP. Ваш маршрутизатор ищет целевой адрес в своей таблице маршрутизации. В таблице будет указан адрес следующего перехода, который является адресом следующего маршрутизатора, чтобы приблизиться к цели. ваш маршрутизатор будет затем ARP для адреса маршрутизатора, потому что он находится в той же сети, что и ваш маршрутизатор (или, иначе говоря, они совместно используют общую сеть).
Теперь возможно, что адрес следующего перехода не находится в сети, к которой подключен ваш маршрутизатор. Таким образом, ваш маршрутизатор просматривает таблицу маршрутов, чтобы найти маршрут к адресу следующего перехода. Этот маршрут также будет иметь адрес следующего перехода (назовем его NH2). NH2 будет находиться в общей подсети, поэтому ваш маршрутизатор будет использовать ARP для MAC для NH2.
В действительно странном случае, когда NH2 также не является локальным, ваш маршрутизатор будет продолжать искать в своей таблице маршрутизации, пока не найдет локальную подсеть, или он не отбросит пакет.
Короткий ответ:
Технологии канального уровня (уровень 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 адреса к адресам канального уровня).
Неважно, по каналу Ethernet или WAN, фрейм, а не IP-пакет, передается в сеть только на уровне 1. На последовательных ссылках используется HDLC кадр. Разница заключается в том, что маршрутизатор не выполняет ARP на последовательном канале, фактически последовательный канал не имеет MAC-адреса, он использует SLARP, Serial Line ARP - метод определения работоспособности канала. Последовательный канал имеет только две конечные точки, без ARP или MAC. Теперь поставщики услуг часто используют Ethernet Wan, где ARP - король :)
Как мой маршрутизатор получает MAC-адрес другого маршрутизатора во внешней сети, если ARP невозможен?
Упрощение немного, это невозможно и не нужно.
В простейшей ситуации у узла есть NIC, которому назначен IP-адрес и маска сети (то есть подсеть), и он знает о "шлюзе по умолчанию", который он получил через DHCP.
Исходя из этого, если он хочет отправить трафик чему-то в той же подсети, он может просто выбросить трафик из этой сетевой карты, и он достигнет чего-либо в этой подсети.
Если он хочет отправить трафик в любую другую подсеть, ему нужно отправить этот трафик на шлюз по умолчанию, который находится в этой подсети.
Затем шлюз по умолчанию будет пересылать (маршрутизация = пересылка) этот трафик в другую подсеть, если у него есть маршрут для него. В вашей типичной ситуации в жилых помещениях это, в основном, пойдет к вашему кабелю или маршрутизатору интернет-провайдера DSL, и далее оттуда "вверх по течению".
Большие сети (корпоративные, кампусные) используют различные протоколы шлюза для определения маршрутов, к которым они не подключены напрямую, а интернет-провайдеры используют BGP для торговли довольно большими таблицами маршрутизации, которые составляют весь Интернет.
MAC не нужен для маршрутизации, просто шлюз по умолчанию.
MAC-адреса не могут помочь в маршрутизации, потому что нет такой вещи как "подсеть" для MAC-адресов. «Уровень MAC-адреса» предполагает, что когда он отправляет что-то другому MAC, он может сделать это, просто отправляя трафик по проводам. У него нет понятия "посредник". Таким образом, получение MAC-адреса чего-либо из вашей сети не является полезным, поскольку ваш трафик поступает в нее. Вот почему существует уровень IP, и не все являются только MAC-адресами.
Как мой маршрутизатор получает MAC-адрес другого маршрутизатора во внешней сети, если ARP невозможен?
Либо следующий переход достигнут Ethernet или нет. Если по Ethernet, то ARP работает. Если не по Ethernet, то MAC не требуется.