Я знаю, как компьютеры в локальной сети взаимодействуют друг с другом (все эти Ethernet/MAC-адреса/NAT и т. д.), но мне интересно, как взаимодействуют интернет-маршрутизаторы? Они соединены в какую-то гигантскую локальную сеть? Какой протокол используется для доставки пакетов (например, пакеты IP и BGP)?
решение1
Маршрутизаторы образуют своего рода сетку. Каждый из них подключен к нескольким другим (предположительно по локальной сети, но обычно это просто прямое соединение, возможно, на большом расстоянии, например, подводный кабель, T-carrier или оптоволоконная линия), и каждый знает, к чему он подключен. У каждого маршрутизатора обычно есть много IP-адресов, по одному на ссылку на другой маршрутизатор, который у него есть.
Маршрутизаторы обычно используют протоколы маршрутизации, которые позволяют им обнаруживать, к чему подключены их соседи (маршрутизаторы, к которым они напрямую подключены). Это IS-IS, BGP, EIGRP, RIP, OSPF и т. д. Они также могут отслеживать это статически; протоколы маршрутизации являются устройством, экономящим труд, которое позволяет сетевым администраторам автоматизировать обслуживание таблицы маршрутизации в случае изменений (преднамеренных или вызванных сбоем). Таким образом, каждый маршрутизатор подключен к нескольким другим и знает, что где находится более или менее. Эту информацию можно фильтровать через Интернет; маршрутизаторы также будут информировать друг друга о соседях своих соседей, поэтому можно построить представление обо всем, что доступно в каждом направлении (приблизительно). Маршрутизаторы также отслеживают, насколько далеко находятся вещи (сколько маршрутизаторов находится между ними и потенциально насколько быстр путь), чтобы облегчить эффективную доставку пакетов к месту назначения.
Некоторые маршрутизаторы (например, ваш шлюз LAN или некоторые маршрутизаторы вашего интернет-провайдера) имеют только пару маршрутов: LAN, для которой они являются шлюзом, и обычно один маршрут по умолчанию для остального Интернета (в сетях IPv4 это 0.0.0.0/0 или маршрут «по умолчанию»). Поэтому они знают, что пакеты, идущие в их LAN, идут в одном направлении (из интерфейса LAN), а пакеты, идущие куда-то еще, идут в другом направлении (из интерфейса WAN).
Другие маршрутизаторы с большим количеством связей и большим количеством сетей с каждой стороны несколько расширяют эту концепцию. Они будут знать, какие префиксы (часть номера сети IP-адреса, формально) находятся в каждом из нескольких направлений, и отправлять пакеты по этому маршруту (отсюда их название). Они ретранслируют пакет друг другу таким образом, пока он не достигнет пункта назначения; если это невозможно, есть несколько механизмов, чтобы отбросить его и показать, что он был отброшен.
Итак, ваш пакет попадает к вашему провайдеру, возможно, от вашего маршрутизатора локальной сети, который знает, на каком интерфейсе находится Интернет, и отправляет его туда. Каждый последующий маршрутизатор смотрит на адрес назначения и определяет, частью какой сети он является, и в каком направлении он идет в соответствии со своей таблицей маршрутизации; он будет знать, что адреса, начинающиеся с определенного числа, находятся в «направлении» одного конкретного другого провайдера, и отправит его туда (изменяя информацию уровня 2 на каждом переходе, чтобы сделать это, поэтому MAC-адрес, например, будет меняться на каждом переходе). В конце концов, он достигает маршрутизатора в той же сети, что и хост, к которому вы пытаетесь обратиться, и он попадает в этот пункт назначения.
Каждый из этих шагов ретрансляции называется hop. Вы можете увидеть эту работу с помощью traceroute
утилиты ( tracert
в Windows), хотя вы можете не увидеть все hop из-за того, что фильтрация ICMP очень распространена.
решение2
Ты ищешьIP-пересылка.
Посмотрите, хотите ли вы попробовать этот короткийМаршрутизация Ciscoпрезентация на YouTube.
решение3
Да, BGP используется для обмена маршрутной информацией между AS. Таким образом, обеспечивается успешная маршрутизация в Интернете. Это происходит с использованием TCP (и, очевидно, IP). Затем у вас есть IGRP и OSPF, используемые внутри AS.
решение4
Протокол — TCP/IP, они подключены через WAN-соединения, а не LAN. Протокол маршрутизации — это всего лишь «язык», на котором говорит ваш маршрутизатор. В базовой сети вы настраиваете тот же протокол маршрутизации, чтобы ваши маршрутизаторы могли понимать друг друга, и эти протоколы маршрутизации известны как внутренние протоколы шлюза. «Язык», используемый в Интернете, называется BGP, он называется внешним протоколом шлюза.