Ответы:
Маршрутизация - это решение, по какому интерфейсу должен быть отправлен пакет. Это решение должно быть принято и для локально созданных пакетов. Таблицы маршрутизации содержат сетевые адреса и связанный интерфейс или nexthop. Это относится ip route
и к ip rule
(в контексте Linux).
Пересылка относится к пакетам, которые достигают системы, но не предназначены для этой системы. Пересылка - это решение системы: «Я беру пакет и пытаюсь доставить его к месту назначения». Вместо того, чтобы просто уронить его. «пересылка» - это общий термин в контексте фильтров пакетов. Netfilter в Linux имеет три цепочки в своей базовой таблице: INPUT, OUTPUT и FORWARD. Эта цепочка просто принимает решение "Должен ли этот пакет быть переслан или отброшен?" (если пересылка обычно включена в системе; снова Linux: / proc / sys / net / ipv4 / ip_forward).
На большинстве систем - с одним сетевым подключением - они будут одинаковыми. Однако на маршрутизаторе они будут отличаться.
Таблица маршрутизации содержит все маршруты, которые маршрутизатор узнает от своих коллег и соседей, используя протокол динамической маршрутизации, такой как OSPF или BGP. Каждый маршрут сортируется и оценивается на основе параметров используемого протокола маршрутизации, а подмножество записей таблицы маршрутизации, которые являются «лучшими», заносятся в таблицу пересылки. Когда маршрутизатор получает пакет, он ищет адрес назначения в таблице переадресации, чтобы решить, через какой интерфейс отправить пакет и каким должен быть адрес следующего перехода. По мере изучения новых маршрутов, включения или выключения интерфейсов или изменений политики, вносимых в схему ранжирования, таблица маршрутизации переоценивается и таблица пересылки обновляется.
Таблицы маршрутизации обычно хранятся в оперативной памяти; Таблицы пересылки на высокопроизводительном оборудовании будут распределены по линейным картам (в модульных системах) и хранятся в высокоскоростной TCAM. Обычно в TCAM может быть ограничено число маршрутов; когда таблица пересылки превышает емкость TCAM, пакеты могут быть отброшены или маршрутизированы в программном обеспечении (что значительно медленнее).
Прежде всего, с моей точки зрения, я думаю, что вы должны сначала четко понять различие между пересылкой и маршрутизацией , которой часто пренебрегают. Согласно книге « Компьютерные сети на странице 240» Лэри Л. Петерсона , переадресация - это последовательность действий, которые маршрутизатор предпримет после получения пакета, включая просмотр его адреса назначения, просмотр таблицы и отправку пакета в направлении, определяемом этот стол. Однако под маршрутизацией здесь понимается процесс, с помощью которого создаются таблицы пересылки.
Возвращаясь к исходному вопросу, мы можем сделать вывод, что, хотя мы можем сохранить таблицу пересылки и таблицу маршрутизации в одних и тех же структурах, существует много причин для их разделения. Таблица пересылки , как правило , должна быть построена так, чтобы оптимизировать процесс поиска до адреса при пересылке пакета, который содержит больше информации , такие как MAC - адрес. Напротив, таблица маршрутизации обычно фокусируется на вычислении изменений в топологии, и записи в таблице маршрутизации обычно более кратки, включая только IP следующего перехода.
Таблица маршрутизации содержит весь путь к другому назначению (один и тот же пункт назначения может иметь 2 или более различных путей)
но
Таблица пересылки содержит только лучший путь к каждому пункту назначения (только один путь для каждого пункта назначения)