Хорошо

Основные различия между FIB и RIB

Последний ответ май 24, 2021 10:37:34 2234 14 8 0 0

Основные различия между FIB и RIB


Хочу поделиться этой информацией про основные различия между FIB и RIB:


- Таблица RIB (routing information base) напрямую не управляет пересылкой данных, но управляет генерацией таблицы FIB (forwarding information base). Таблица FIB предоставляет руководство устройству для пересылки данных, которое не имеет отношения к генерации маршрута.


 

- Записи FIB используются для фактической пересылки пакетов на устройстве. Записи FIB определяют фактический интерфейс, на который пересылаются пакеты, и интерфейс через передаются пакеты.


 

- Таблица маршрутизации определению схемы для передачи пакетов от начального устройства к конечному. Она не указывает конкретный интерфейс, через который пересылается пакет маршрутизатором. Обычно next hop адрес (следующего устройства в цепочке передачи) определяется на отправляющей стороне. Таблица FIB используется аппаратурой устройства как инструкция по фактической пересылке пакета. FIB в основном используется для определения конкретных деталей пересылки (физического интерфейса), а не определения деталей маршрута для пересылки пакета.


  • x

Cingiz
Опубликовано 2021-5-21 10:28:26
Но ведь в таблицах маршрутизации ведь указан не только следующий маршрутизатор, но и интерфес , который смотрит на него и куда следует отправить пакет. Зачем в таком случае нужна таблица FIB?
Развернуть
  • x

Vasyo
Админ Опубликовано 2021-5-21 10:48:13
FIB это копия RIB. То есть для каждого направления FIB берет egress интерфейс из RIB, да. И если так, то ваш вопрос справедлив - зачем FIB? Дело в том, что FIB также берет arp информацию - next-hop мас-адрес, ведь для пересылки нужно и информация второго уровня, так? Когда роутер отправит пакет на этот интерфейс, то второй пакет с этим же ай-пи адресом назначения он отправит на этот же интерфейс, и для принятия решения о пересылки второго пакета ему уже не нужен RIB. Если по какой-то причине RIB выйдет из строя, сломается протокол динамической маршрутизации, соседство ляжет, то это никак не повлияет на пересылку наших пакетов, потому что они будут пересылаться, благодаря FIB.
RIB - это control plane информация
FIB - это data plane информация
Развернуть
  • x

Cingiz
Опубликовано 2021-5-21 11:15:33
У меня сразу возникло несколько встречных вопросов.

1) Во-первых, таблица маршрутизации содержитвыходные интерфейсы маршрутов, но откуда роутер их берет для запсис в таблицу? Ведь он получает маршрут от другого роутера ( в случае динамической маршрутизации) только с информацией о next hop. Откуда в таблице маршрутизации берется интерсфейс, смотрящий на след-ий роутер? Он берет его из таблицы FIB?

2)В таблице FIB ведь не содержится MAC адресы, там подсеть и выходной интерсфес. Откуда она его берет? Из таблицы Adjacency?

3) Как в таком случае происходит сам процесс передачи пакета? Маршрутизатор находит подходящий маршрут в таблице маршрутизации, далее ищет интерфейс в таблице FIB и с помощью таблицы Adjacency уже определяет Mac Address Next Hop узла?
Развернуть
  • x

Vasyo
Админ Опубликовано 2021-5-21 14:22:30
Опубликовано пользователем Cingiz в 2021-05-21 11:15 У меня сразу возникло несколько встречных вопросов. 1) ...
1. Роутер, добавляя подсеть в таблицу маршрутизации (RIB), знает на какой его интерфейс эта информация об этой подсети пришла. Это как штамп, который ставит почтовое отделение на вашу посылку.
Развернуть
  • x

Vasyo
Админ Опубликовано 2021-5-21 14:22:46
Опубликовано пользователем Cingiz в 2021-05-21 11:15 У меня сразу возникло несколько встречных вопросов. 1) ...
2. Да, Adjacency table дает нам информацию о next-hop устройствах, кто такой next-hop, что за устройство смежно роутеру. Она отражает мак-адрес исходящего интерфейса и мак-адрес следующего интерфейса - интерфейса следующего устройства.
Развернуть
  • x

Vasyo
Админ Опубликовано 2021-5-21 14:23:06
Опубликовано пользователем Cingiz в 2021-05-21 11:15 У меня сразу возникло несколько встречных вопросов. 1) ...
3. Смотрите. Сначала был Process switching, при котором каждый пакет приходилось пропускать через процессор, чтобы понять куда его отправлять. Технология перестала работать с ростом скорости сетей: пропускать через процессор гигабайты информации стало просто невозможно. Вместо него придумали Fast switching. О нем говорят так “router once, switch many”. У него есть route-cache, который хранит маршруты и next-hops. Когда пакет приходит на интерфейс роутера, но информации о том, как достичь сети его назначения нет в route сache, то этот пакет пропускается через процессор (Process switching), но только для первого пакета. Когда же второй пакет придет с таким же адресом назначения, то route cache даст ему и выходящий интерфейс и next-hop, который был спущен ему после калькуляции маршрута для первого пакета. Теперь для всего потока пакетов с этим адресом назначения будет применяться информация из route-cache. Но опять с ростом скорости сети и увеличением количества глобальных IP-префиксов, а также роста DoS-атак, route-cache стал быстро заполняться, а следовательно, часто опустошаться, чтобы избежать переполнения. Из-за этого пакеты снова приходилось по многу пропускать через процессор, что приводило к его перегрузке и отказу.
FIB это новая эволюция route-cache. FIB лучше рассматривать как источник маршрутов, которые мы можем использовать не беспокоя процессор. То есть FIB не затрагивает ресурсы процессора, в то время как RIB очень даже. Для пересылки пакета он не обращается за помощью к процессору, а использует интерфейс и next-hop, данные ему от RIB и информацию второго уровня, данную ему от Adjacency table
Развернуть
  • x

Cingiz
Опубликовано 2021-5-21 15:16:09
Вроде все понял, кроме последнего - зачем создававть еще одну таблицу, если уже есть таблица маршрутизации, содержащая как подсеть с next hope, так и интерсфейс, смотрящий на него. Почему таблица маршрутизации не может работать непосредсвтенно с таблицей Adjacency, вместо этого создавая таблицу FIB, фактически своего близнеца? Вы написали, что что FIB, в отличие от RIB, не нагружает процессор. Чем она лучше, почему она, являясь практически копией RIB, не грузит процессор, если с ней происходят ровно те же манипуляции с поиском нужного маршрута?
Развернуть
  • x

Cingiz
Опубликовано 2021-5-21 15:20:13
Ну или если проще - чем RIB грузит процессор, чем FIB не грузит?
Развернуть
  • x

Vasyo
Админ Опубликовано 2021-5-21 16:38:32
Опубликовано пользователем Cingiz в 2021-05-21 15:20 Ну или если проще - чем RIB грузит процессор, чем FIB не гру ...
Отличный вопрос! Когда роутер решает куда отправить пакет, он смотрит в RIB, находит там исходящий интерфейс и next-hop, после этого ему нужно отправить arp-запрос: "кто такой next-hop 8.8.8.8, каков его мак-адрес?". Он дожидается ответа, получает мак-адрес для пересылки и после этого отправлят пакет. FIB не занимается этим, в ней уже есть все, что нужно для пересылки, все готовые вычисления, и вся готовая информация.
Развернуть
  • x

12
К списку

Комментарий

Выполните вход в систему, чтобы ответить на пост. Вход | Регистрация
Отправить

Внимание! В целях защиты правовых интересов Вас, сообщества и третьих лиц, не публикуйте любой материал, содержащий политические высказывания, порнографию, упоминание азартных игр, употребление наркотиков, а также материал, нарушающий коммерческую тайну или содержащий персональные данные пользователей. Также не предоставляйте данные от вашей учетной записи. Вы будете нести ответственность за все действия, выполняемые под вашим аккаунтом. Подробная информация: “Пользовательское соглашение.”

My Followers

Авторизуйтесь и пользуйтесь всеми преимуществами участника!

Вход

Заблокировать
Вы уверены, что хотите заблокировать этого пользователя?
Пользователи из вашего черного списка не могут комментировать ваши посты, не могут упоминать вас, не могут отправлять личные сообщения.
Напоминание
Пожалуйста, привяжите свой мобильный номер чтобы получить бонус за приглашение.