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