Выбрать главу

В этом примере маршрутизация является прямой. Это означает, что датаграмма должна быть помещена в кадр и передана непосредственно в точку назначения локальной сети, как показано на рис. 6.3.

Рис. 6.3. Обрамление кадром и передача датаграммы

Адрес назначения, помещенный в заголовок кадра, должен быть физическим адресом системы назначения. Чтобы определить существование элемента для физического адреса 130.15.12.22, проверяется таблица протокола ARP. Если в таблице нет нужной записи, для ее формирования используется протокол ARP.

6.5 Хост в таблице маршрутизации IP

Предположим, что нужно переслать данные:

Из: 130.15.12.131

В: 192.45.89.5

Быстрая проверка маски подсети показывает, что система назначения не принадлежит локальной подсети. В этом случае IP должен обратиться к локальной таблице маршрутизации.

Таблица маршрутизации хоста обычно очень проста. На рис. 6.4 показана локальная сеть, которая связана с удаленными сайтами посредством единственного маршрутизатора. Если точка назначения не находится в локальной сети, у хоста нет другого выбора, как обратиться к маршрутизатору.

Рис. 6.4. Перенаправление трафика через маршрутизатор по умолчанию

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

default 130.15.12.1

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

6.6 Маршрутизация по следующему попаданию

Для сохранения простоты таблицы маршрутизации хоста IP может не анализировать полный маршрут к точке назначения. Требуется только выяснить следующее попадание (next hop иногда переводится как следующий участок. — Прим. пер.) и направить датаграмму туда.

Чтобы отправить датаграмму на интерфейс маршрутизатора 130.15.12.1, ее надо поместить в кадр, заголовок которого содержит физический адрес сетевого адаптера этого маршрутизатора.

Когда маршрутизатор получит кадр, он удалит заголовок и завершающую часть кадра, а также исследует заголовок датаграммы IP, чтобы решить, куда ее нужно направить далее.

6.7 Еще один пример таблицы маршрутизации хоста

Иногда таблицы маршрутизации хостов не столь просты. Рассмотрим, например, два маршрутизатора подсети 128.121.50.0 (см. рис. 6.5). Второй маршрутизатор управляет небольшой локальной сетью с несколькими рабочими станциями.

Рис. 6.5. Выбор маршрутизатора

Маршрутизатор tigger управляет локальной сетью, и его таблицу маршрутизации можно вывести командой netstat -nr. В выводе используется термин шлюз — gateway, а не маршрутизатор — router. (Другие компьютеры могут выводить таблицу в несколько ином формате. Она будет содержать похожую, но не идентичную информацию. Например, некоторые системы могут выводить столбец со сведениями о расстоянии до следующей точки назначения.)

> netstat -nr

Routing tables

Destination  Gateway        Flags Refcnt     Use Interface

127.0.0.1    127.0.0.1      UH         6   62806 lo0

Default      128.121.50.50  UG        62 2999087 le0

128.121.54.0 128.121.50.2   UG         0       0 le0

128.121.50.0 128.121.50.145 U         33 1406799 le0

Командой netstat выводятся сведения о том, где и как будет маршрутизироваться трафик tigger.

■ Первое место назначения в таблице — это кольцевой адрес 127.0.0.1, который служит обозначением для трафика между клиентами и серверами в пределах системы tigger.

■ Запись default используется для выполнения маршрутизации к любой точке назначения, которая не указана в таблице. Трафик должен быть направлен на интерфейс маршрутизатора по IP-адресу 128.121.50.50.

■ Датаграммы к любой системе подсети 128.121.54.0 должны быть направлены на интерфейс маршрутизатора по IP-адресу 128.121.50.2.

■ Последняя запись не обеспечивает получения новой информации для маршрутизации, но позволяет получить интересную статистику о местном трафике. Чтобы маршрутизировать трафик к любой системе подсети 128.121.50.0, нужно направить его на адрес 128.121.50.145. При этом 128.121.50.145 — это собственный адрес tigger, а 128.121.50.0 — собственный адрес локальной сети tigger.

Команда netstat выводит и другую интересную информацию: