Назад | Перейти на главную страницу

Как маршрутизатор в Интернете узнает, куда отправить пакет, чтобы получить его по IP-адресу назначения?

Я занимаюсь мелкой внештатной ИТ-работой (среди прочего) около последнего десятилетия. Я настроил или перестроил больше локальных сетевых устройств, чем я могу рассчитывать, и совсем недавно я изучал некоторые из больших пробелов, которые остались в моих знаниях о сетях. В целом, хотя я определенно не назову себя «экспертом», я думаю, что на данный момент у меня есть достаточное представление о том, как все работает внутри периметра сети, и четкое понимание большинства основных принципов работы с сетью (уровни стека OSI, TCP / IP, DNS, MAC-адресация и ARP, протоколы более высокого уровня и т. д.)

Однако на днях кое-что мне пришло в голову: «Как я могу объяснить кому-нибудь, как на самом деле работает маршрутизация пакета в Интернете?» И я понял, что мне будет сложно ответить на этот вопрос.

Теперь у меня есть хоть какое-то представление о том, что такое, например, протокол пограничного шлюза и что он делает, или что такое таблица маршрутизации, или что такое точки пиринга инфраструктуры Интернета. Но признаю, что не совсем понимаю, как эти и другие вещи на самом деле определяют что на самом деле маршрутизатор будет делать с пакетом , чтобы переместить его к его IP-адресу назначения.

Итак, как маршрутизатор в Интернете, получивший пакет, решает, на какой маршрутизатор его направить следующим? И как который маршрутизатор тогда знает лучший маршрутизатор, которому он должен пересылать пакет? Как я уже сказал, у меня есть некоторое представление об элементах и ​​концепциях, связанных с инфраструктурой маршрутизации Интернета, но мне неясно, как все сочетается друг с другом, чтобы на самом деле позволить данному маршрутизатору принять правильное «решение» о маршрутизации о том, куда отправить пакет, который приходит к нему, чтобы внести свой вклад в правильное перемещение пакета к его конечному месту назначения.

(Примечание: я просмотрел любой из множества ресурсов, чтобы попытаться лучше понять это. Но большинство вещей, с которыми я столкнулся до сих пор, либо (1) опущены по технической теме о том, как маршрутизатор в Интернете знает, куда отправить пакет для следующего перехода, или (2) настолько увяз в технических деталях и жаргоне протоколов, что было трудно получить представление о том, как все сочетается в точке принятия решения маршрутизатором. И я подумал это было бы таким же хорошим местом, как и любое другое, чтобы получить реальный технический ответ на этот вопрос, который также может быть понятен неспециалисту в области сетей.)

Как вы уже упомянули, BGP - это ваш основной ответ.

Я попытаюсь резюмировать это, но ответ может оказаться довольно длинным и сложным.

IP-адреса распространяются ARIN и несколькими другими аналогичными международными организациями, которым поручено распределять и отслеживать пространство IP-адресов.

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

Существуют также различные алгоритмы, настройки и т. Д., Которые сетевой инженер может использовать для настройки маршрутизатора на использование определенных маршрутов для достижения пункта назначения. Например, избегая известного плохого оператора связи или более сложных сценариев.

Но, опять же, вам нужен BGP, и у него много вариантов.

Некоторые ссылки для дальнейшего чтения: http://searchtelecom.techtarget.com/feature/BGP-essentials-The-protocol-that-makes-the-Internet-work http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/13753-25.html

Маршрутизаторы используют протоколы маршрутизации для распределения между собой информации о местоположении каждой сети в Интернете. Каждый маршрутизатор, который участвует в протоколе маршрутизации, составляет таблицу маршрутизации (другие маршрутизаторы в основном используют предварительно настроенные маршруты по умолчанию). Каждая запись таблицы маршрутизации по существу гласит: «Чтобы достичь пунктов назначения в префиксе P, отправьте через интерфейс I на адрес следующего перехода A» (если пункт назначения не находится в сети с прямым подключением, в этом случае адреса следующего перехода нет).

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

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

Маршрутизатор имеет таблицу маршрутизации, заполненную информацией о том, куда отправлять пакеты. Если это простой домашний маршрутизатор, он, вероятно, имеет две записи; локальная сеть (например, 192.168.1.0/24) напрямую подключена к интерфейсу LAN, а все остальное отправляется по маршруту по умолчанию на интерфейсе WAN на адрес шлюза (следующий переход), который является маршрутизатором, управляемым поставщиком Интернет-услуг.

Таблица маршрутизации может быть заполнена вручную, если они такие простые, как этот пример, или с помощью какого-либо протокола маршрутизации, такого как BGP или OSPF, который общается с одноранговыми узлами и вычисляет содержимое таблицы маршрутизации.