Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные по сетям Л7-Л14 (693).doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
8.89 Mб
Скачать

1.1.2. Ip маршрутизация

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

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

В соответствии с общей схемой, IP может получать датаграммы от собственных уровней TCP, UDP, ICMP и IGMP (это датаграммы, формирующиеся здесь же), которые необходимо отправить, однако датаграммы могут быть приняты с какого-либо сетевого интерфейса (эти датаграммы должны быть перенаправлены). Когда датаграмма принята с сетевого интерфейса, IP, во-первых, проверяет, не принадлежит ли ему указанный IP адрес назначения, или не является ли этот IP адрес широковещательным. Если это так, то датаграмма доставляется в модуль протокола, указанный в поле протокола в IP заголовке. Если датаграмма не предназначается для этого IP адреса, и если IP уровень был сконфигурирован для того, чтобы работать как маршрутизатор, то пакет перенаправляется, в этом случае датаграмма обрабатывается, как исходящая.

Каждый пункт таблицы маршрутизации содержит следующую информацию:

  1. IP адрес назначения. Это может быть как полный адрес хоста (host address) или адрес сети (network address), что указывается в поле флагов (описывается ниже). Адрес хоста имеет ненулевое значение идентификатора хоста и указывает на один конкретный хост, тогда как адрес сети имеет идентификатор хоста, установленный в 0, и указывает на все хосты, включенные в определенную сеть (Ethernet, Token ring).

  2. IP адрес маршрутизатора следующей пересылки (next-hop router), или, иначе говоря, IP адрес следующего маршрутизатора. Маршрутизатор следующей пересылки принадлежит одной из непосредственно подключенных сетей, в которую возможно отправить датаграммы для их доставки. Маршрутизатор следующей пересылки это не конечный пункт назначения, однако, он принимает датаграммы, которые пересылаются, и перенаправляет их в направлении конечного пункта.

  3. Флаги. Один флаг указывает, является ли IP адрес пункта назначения адресом сети или адресом хоста. Другой флаг указывает на то, является ли маршрутизатор следующей пересылки действительно маршрутизатором или это непосредственно подключенный интерфейс.

  4. Указание сетевого интерфейса, на который должны быть переданы датаграммы для передачи.

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

IP маршрутизация осуществляет в следующей последовательности:

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

  2. Осуществляется поиск в таблице маршрутизации пункта, который совпадет, как минимум, с идентификатором сети назначения. Если пункт найден, пакет посылается на указанный маршрутизатор следующей пересылки или на непосредственно подключенный интерфейс (в зависимости от поля флагов). Если используются маски переменной длины (VLSM4), то из всех записей таблицы маршрутизации с использованием VLSM вычисляются адреса подсетей. Из получившего множества подсетей выбирается та подсеть (и, соответственно, запись в таблице маршрутизации), что имеет наибольшее количество совпавших битов с подсетью, указанной в IP адресе назначения датаграммы. Маршрутизация ко всем хостам, находящимся в сети назначения, осуществляется с использованием этого единственного пункта таблицы маршрутизации.

  3. Если не удается найти ни одного маршрута к узлу или к сети для IP-адреса назначения, указанного в IP-датаграмме, будет использоваться маршрут по-умолчанию. Маршрут по-умолчанию обычно перенаправляет IP-датаграмму, для которой не удалось найти более подходящего маршрута, по адресу основного шлюза, которым является маршрутизатор в локальной подсети. Настраивая основной шлюз для каждого сетевого интерфейса, вы, тем самым, создаете маршрут 0.0.0.0 для каждой сетевой платы. Однако в действительности используется только один маршрут по-умолчанию.

Если ни один из шагов не дал положительного результата, датаграмма считается недоставленной. Если недоставленная датаграмма была сгенерирована данным хостом, то обычно возвращается ошибка «хост недоступен» (host unreachable) или «сеть недоступна» (network unreachable). Этот код ошибки возвращается приложению, которое сгенерировало датаграмму.

Как следует из вышеизложенного, маршрутизатор по-умолчанию должен находиться в одной подсети с сетевым интерфейсом, через который к нему направляются датаграммы. В начале всегда осуществляется сравнение на совпадение полного адреса хоста, после чего осуществляется сравнение идентификатора сети5. Только в том случае, если результат обеих сравнений отрицательный, используется маршрут по-умолчанию. Маршруты по-умолчанию и сообщения ICMP о перенаправлении, отправляемые на маршрутизатор следующей пересылки (если для датаграммы выбрано неверное направление по-умолчанию), являются довольно мощными характеристиками IP маршрутизации.

Еще одна фундаментальная характеристика IP маршрутизации заключается в возможности указать маршрут к сети, вместо того, чтобы указывать маршрут к каждому отдельно взятому хосту.

Примеры:

Пример 1

Хост bsdi имеет IP датаграмму, которую необходимо послать на хост sun. Оба хоста находятся в одной и той же сети Ethernet. На рис. 1.7 показан процесс доставки датаграммы (link hdr – заголовок канального уровня, IP hdr – заголовок IP).

Когда хост принимает датаграмму от одного из верхних уровней, он просматривает свою таблицу маршрутизации и определяет, что IP адрес назначения (140.252.13.33) непосредственно подключен к сети (Ethernet 140.252.13.0). В таблице маршрутизации найден совпадающий адрес сети.

Датаграмма передается в драйвер устройства Ethernet и посылается на sun в виде Ethernet фрейма. Адрес назначения в IP датаграмме это IP адрес sun (140.252.13.33), а адрес назначения в заголовке канального уровня это 48-битовый Ethernet адрес интерфейса Ethernet машины sun. 48-битный Ethernet адрес получается с использованием протокола ARP.

Рис. 1.7 Доставка IP датаграммы от bsdi к sun

Пример 2

Хост bsdi имеет IP датаграмму, которую необходимо послать на хост ftp.uu.net, IP адрес которого 192.48.96.9. bsdi просматривает свою таблицу маршрутизации, однако не находит совпадающий хост или совпадающую сеть. Он использует пункт таблицы маршрутизации по-умолчанию, в соответствии с которым необходимо послать датаграмму на sun, который является маршрутизатором следующей пересылки. Когда датаграмма передается от bsdi к sun, IP адрес для неё это конечный адрес назначения (192.48.96.9), однако адрес канального уровня – это 48-битный Ethernet адрес интерфейса Ethernet машины sun.

Когда sun получает датаграмму, он понимает, что IP адрес назначения этой датаграммы не его собственный, и, если sun сконфигурирован для того, чтобы выполнять функции маршрутизатора, он перенаправляет датаграмму. Происходит просмотр его таблицы маршрутизации, в результате чего выбирается пункт по-умолчанию. Из этого пункта следует, что sun должен перенаправить датаграмму на маршрутизатор следующей пересылки – netb, IP адрес которого 140.252.1.183. Датаграмма пересылается по SLIP каналу точка-точка с использованием минимальной инкапсуляции.

Когда netb получает датаграмму, он осуществляет те же самые шаги, которые только что осуществил sun: датаграмма не предназначается какому-либо из его IP адресов, а так как netb сконфигурирован так, чтобы выполнять функции маршрутизатора, он перенаправляет датаграмму. В данном случае также используется пункт таблицы маршрутизации по-умолчанию, при этом датаграмма посылается на маршрутизатор следующей пересылки gateway (140.252.1.4). С использованием протокола ARP в сети Ethernet 140.252.1, netb получает 48-битный Ethernet адрес, соответствующий адресу 140.252.1.4. Именно этот Ethernet адрес становится адресом назначения в заголовке канального уровня.

Gateway осуществляет те же шаги, как и два предыдущих маршрутизатора, в его таблице маршрутизации пункт по-умолчанию указывает на адрес 140.252.104.2 как на адрес маршрутизатора следующей пересылки.