Основной принцип маршрутизации IP пакетов Печать
Добавил(а) microsin   

Насколько правильно мы представляем себе маршрутизацию сетевых пакетов IP?

DestIP - IP адрес назначения, куда нужно передать данные.
SourIP - IP адрес хоста, которому надо передать пакет на DestIP.
SourMASK - маска сетевого адаптера SourIP, см. mask
SourGW - IP адрес шлюза по умолчанию для передающего хоста SourIP.
Route1 - маршрут 1
Roure2 - маршрут 2
...
RouteN- маршрут N

Здесь Route1..N - дополнительные маршруты, которые могут быть, а могут и не быть. Каждый маршрут характеризует диапазон IP-адресов, и имеет следующие параметры:

Route.IP- один IP из диапазона адресов, ограниченных Route.MASK. Обычно это адрес сети, то есть часть адреса, на который наложена Route.MASK по операции логическое "И".
Route.MASK- маска для вычисления диапазона адресов, см. mask
Route.Metric- приоритет маршрута, см. metric
Route.GW- адрес шлюза (роутера) для маршрута

Алгоритм передачи хостом SourIP пакета на адрес DestIP:

1. Хост вычисляет результат выражения:
(DestIP & SourMASK) == (SourIP & SourMASK)

2. Если результат TRUE, то это означает, что оба хоста находятся в одной подсети. В этом случае компьютер SourIP применяет протокол ARP для выяснения MAC-адреса компьютера с DestIP, и затем передает пакет на указанный MAC-адрес. Пакет попадает по назначению - на компьютер DestIP.

3. Результат FALSE означает, что пакет нужно направить на маршрутизатор. Адрес нужного маршрутизатора хост выясняет, начиная просматривать таблицу маршрутизации, т. е. маршруты Route1..N. Порядок выборки маршрутов из таблицы определятся метрикой маршрута.

4. При просмотре проверяется условие для каждого маршрута:
(DestIP & Route.MASK) == (Route.IP & Route.MASK)

Как только условие для какого-нибудь маршрута станет TRUE, то это означает, что пакет нужно пересылать по адресу Route.GW. Для получения MAC-адреса маршрутизатора применяется все тот же протокол ARP.

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

Маршрутизаторы при передаче пакета действуют по точно такому же сценарию. При передаче пакета от хоста SourIP и далее по цепочке маршрутизаторов до хоста DestIP в пакете остаются неизменными SourIP и DestIP, меняются только SourMAC и DestMAC.