Маршрутизация в сетях TCP/IP. Сети класса D. Семейство протоколов ТСР/IР. Диапазон адресов. Диапазон значений, страница 4

192.173.7.191         080039002FC3

192.173.7.193         08005A21A722

192.173.7.194         08001099AC54

А нам вдруг потребовалось переслать пакет узлу 192.173.7.192. Захотелось! Обнаружив, что такого адреса в таблице нет, модуль IP отправит самый что ни на есть широковещательный запрос: «Вышлите, кто имеет адрес 192.173.7.192, свой Ethernet адрес», в ответ на что придет пакет: «Я, 192.173.7.192, имею адрес 0800280038А9». Наша таблица пополнится новой строкой:

192.173.7.191         080039002FC3

192.173.7.193         08005A21A722

192.173.7.194         08001099AC54

192.173.7.192         0800280028А9

И готовый IP-пакет будет выслан по этому адресу. Вполне естественно, получая запросы на распознавание адреса, мы, как и все остальные, должны будем откликаться, если обнаружим в запросе свой IP-адрес, протокол – вещь обоюдная.

Если ARP-таблица по каким-либо причинам не должна превышать какой-то максимальный размер (это может, например, ограничиваться объемом памяти, отводимой под модуль IP), то возникает необходимость удаления строк из нее. Это можно сделать так: если таблица переполнена, а мы в нее пытаемся вставить новую запись, то самая старая запись уничтожается (в нашем примере мы заполняем таблицу с конца, стало быть самая старая запись – первая), вся таблица сдвигается на более старые позиции (в данном случае вверх), а на самое новое место (самое нижнее) помещается самый свежий ARP-запрос. Логично?

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

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

Как видно, решение о маршрутизации принимается модулем IP в момент после того, как пакет уже сформирован, но еще не отдан сетевому адаптеру.

А теперь о том, что же такое пресловутая таблица маршрутов. В ней содержится информация о сетях и степени и доступности. Обычно в строках этой таблицы держат номера сетей, информацию о способе маршрутизации и какой шлюз  подойдет для того, чтобы попасть туда. Вот пример таблицы для «рядового» узла сети 192.173.7.17:

Сеть                               Маска сети                         Маршрутизация               Шлюз                   Интерфейс

192.173.7.16                255.255.255.240                прямая                                отсутствует        Eth0

192.173.7.32                255.255.255.240                косвенная                          192.173. 7.21       Eth0

192.173.7.48                255.255.255.240                косвенная                          192.173. 7.21       Eth0

Для маршрутизатора (192.173.7.21) таблица будет уже другая:

Сеть                               Маска сети                         Маршрутизация               Шлюз                   Интерфейс

192.173.7.16                255.255.255.240                прямая                                отсутствует        Eth0

192.173.7.32                255.255.255.240                прямая                                отсутствует        Eth1