69580

Автономные адреса

Практическая работа

Информатика, кибернетика и программирование

Какие адреса может использовать компания для адресации своей сети Очевидно абсолютно любые адреса разрешенные для узлов классов А В и С. При этом количество доступных компании адресов столь велико что делить данные сети на подсети с помощью маски усложняя себе таким образом жизнь просто...

Русский

2014-10-07

6.71 MB

1 чел.

Автономные адреса

Рассмотрим построение некоторой компанией своей собственной частной сети, никак не привязанной к Интернет. Какие адреса может использовать компания для адресации своей сети? Очевидно, абсолютно любые адреса, разрешенные для узлов, классов А, В и С. При этом количество доступных компании адресов столь велико, что делить данные сети на подсети с помощью маски, усложняя себе таким образом жизнь просто не имеет смысла.

А какие адреса может использовать компания в своей IP сети, если эта сеть должна быть подключена к Интернет и являться частью Интернет? Очевидно, произвольные адреса использовать нельзя, так как, во-первых, они, возможно уже заняты в составной сети Интернет, а во-вторых, даже если адрес свободен, необходимо еще чтобы маршрутизаторы магистрали Интернет могли доставлять пакеты для этого адреса получателю, для чего в таблицах маршрутизации необходимо иметь соответствующие записи. Совершенно очевидно, что распределения адресов в Интернет должна координироваться некоторым центром распределения адресов. Рассказываем кратко о структуре ICANN.

Организация ICANN (www.icann.org) (The Internet Corporation for Assigned Names and Numbers) это некоммерческая организация, основанная в октябре 1998 года для распределения IP-адресов, параметров протоколов и ряда других задач. Она включает в себя следующие подразделения:

  •  DNSO (Domain Name Supporting Organization), отвечает за распределение доменных имен в Интернет
  •  ASO (Address Supporting Organization), отвечает за распределение IP адресов в Интернет
  •  PSO (Protocol Supporting Organization), отвечает за распределение номеров, связанных с разнообразными протоколами в Интернет.

Подразделение ICANN, ASO состоит из четырех RIR – Региональных регистратур Интернет:

  •  APNIC (www.apnic.net)
  •  ARIN (www.arin.net)
  •  RIPE (www.ripe.net)
  •  LACNIC (www.lacnic.net)

Каждая из этих четырех организаций обеспечивает распределение IP адресов в некотором географическом регионе, в частности RIPE NCC обслуживает регистраторов Европы, Ближнего Востока, Северной Африки и части Азии. Эти организации напрямую сотрудничают с LIR (Локальными регистраторами Интернет) – компаниями, непосредственно предоставляющими адресное пространство для конечного потребителя. RIPE NCC в настоящее время поддерживает 3150 локальных регистраторов сети Интернет, входящих в NCC и количество партнеров RIPE NCC постоянно растет. Итак, компания, желающая подключить свою сеть к Интернет и желающая приобрести диапазон адресов для использования в своей сети должна обратиться к любому LIR – локальному регистратору Интернет, например, к своему провайдеру. Провайдер получает адреса от RIR (например, от RIPE) и предоставляет часть адресного пространства конечному потребителю – компании, желающей подключить свою сеть к Интернет. Таким и только таким образом можно получить сегодня IP адреса для адресации своей сети как части Интернет.

А что, если компания сначала строит свою сеть как частную и не подключает ее к Интернет, а затем все же хочет подключить сеть к Интернет? Тогда, пока сеть является частной, в ней могут применяться произвольные адреса, в случае же подключения сети к Интернет в сети придется менять адресацию. А если компания строит свою частную сеть и не собирается делать ее полностью частью Интернет, но возможно собирается впоследствии подключить к Интернет некоторые узлы? Тогда применение в этой сети произвольной адресации может потенциально привести к проблемам, когда при ошибках конфигурирования узлов или маршрутизаторов трафик частной сети окажется в Интернет, при чем этот трафик будет иметь в качестве адресов отправителей и получателей некие «честные» адреса,  принадлежащие кому то в Интернет. Для того, чтобы подобных проблем не возникало, специально выделены так называемые «автономные адреса». Это такие IP адреса, которые рекомендуется назначать узлам в частных сетях, не подключенных в Интернет. Такие адреса НЕ будут маршрутизироваться в сети Интернет, т.е. если трафик таких адресов по ошибке и попадет в Интернет, то он не будет обработан магистральными маршрутизаторами Интернет. В качестве автономных адресов определены:

  •  1 сеть класса А: 10.0.0.0
  •  16 сетей класса В: 172.16.0.0 – 172.31.0.0
  •  256 сетей класса С: 192.168.0.0 – 192.168.255.0

Эти адреса может применять любой желающий в собственной, не подключенной к Интернет сети не согласовывая применение ни с кем: даже если трафик и попадет в Интернет, он будет отброшен. Обратите внимание - автономных адресов достаточно много, таким образом любой желающий организовать частную IP сеть не будет испытывать недостатка в адресах, в случае очень больших частных сетей, которым мало 256 сетей класса С, 16 сетей класса В и одной сети класса А эти сети можно, разумеется, разбить масками на подсети удобного размера. Итого: для адресации частных сетей, не подключенных к Интернет рекомендуется использовать автономные адреса, специально зарезервированные для применения в сетях, не подключенных к Интернет. Разумеется, в частной сети можно применять абсолютно любые адреса если эта сеть никак не связана с Интернет, но никаких причин так поступать нет – стоит применять именно автономные адреса.

Термин «автономные адреса» имеет смысл только в связи с Интернет – в произвольной IP сети эти адреса ничем не отличаются от любых других адресов, эти адреса отличаются от других разрешенных адресов в Интернет только тем, что пакеты с такими адресами отправителей и получателей отбрасываются магистральными маршрутизаторами Интернет. Разумеется, такие адреса могут маршрутизироваться в частных IP сетях – магистральные маршрутизаторы Интернет отбрасывают такие пакеты не потому, что такие пакеты в принципе не обрабатывает любой маршрутизатор, а лишь потому, что магистральные маршрутизаторы так настроены.

 

Представим, что нам необходимо настроит маршрутизатор чтобы он отбрасывал пакеты посланные в/из автономных адресов. Пусть наш маршрутизатор поддерживает фильтрацию пакетов (как это сделать на практике мы рассмотрим позднее), для этого ему необходимо дать команду, в которой указать сеть с маской, в которую пакеты пересылать не нужно. Сколько таких записей необходимо внести в маршрутизатор, чтобы он не пропускал пакеты в автономные сети? Автономных сетей: 1+16+256=273 штуки. Нужно ли сделать 273 записи в маршрутизаторе, о каждой из сетей, названных автономными?

Рассмотрим к примеру совокупность автономных сетей класса В: 172.16.0.0/16, 172.17.0.0/16 …. 172.31.0.0/16. Запишем эти сети в двоичной форме:

  1.  172.0001|0000.0.0
  2.  172.0001|0001.0.0
  3.  172.0001|0010.0.0
  4.  172.0001|0011.0.0
  5.  172.0001|0100.0.0
  6.  172.0001|0101.0.0
  7.  172.0001|0110.0.0
  8.  172.0001|0111.0.0
  9.  172.0001|1000.0.0
  10.  172.0001|1001.0.0
  11.  172.0001|1010.0.0
  12.  172.0001|1011.0.0
  13.  172.0001|1100.0.0
  14.  172.0001|1101.0.0
  15.  172.0001|1110.0.0
  16.  172.0001|1111.0.0

Заметьте, что все 16 сетей класса В имеют общую часть: 172.0001хххх.хххххххх.хххххххх, причем все остальные биты принимают все возможные значения, действительно, номер первой сети 172.00010000.0.0, а последний узел в последней сети 172.00011111.11111111.11111111. А как мы называем совокупность IP адресов, имеющих общую часть, все остальные биты которой принимают последовательно все значения от всех «0» до всех «1» - называем сетью!  И эта последовательность адресов формально может быть записана в виде АДРЕС/МАСКА давно привычным нам способом:

 

172.0001|хххх.хххххххх.хххххххх можно записать как:

172.16.0.0/12 или 172.16.0.0 255.240.0.0

Что означает «сеть» 172.16.0.0/12? Раньше мы говорили о подсетях, говорили о том, что с помощью масок классовые сети можно разбить на более мелкие части. Теперь же мы, наоборот, с помощью маски объединили несколько классовых сетей (16 сетей класса В) а одну «надсеть». Важно понимать, что маска это всего лишь инструмент для выделения границы между адресом сети и адресом узла, если маска длиннее принятой по умолчанию классовой, то мы говорим о подсетях, а если маска больше классовой маски по умолчанию, можно говорить о надсетях. Если раньше речь шла о разделении классовых сетей на подсети, то теперь может с тем же успехом говорить об объединении сетей в надсети, или употребляют термин «агрегирование адресов». Где это можно использовать? Например, можно агрегировать диапазоны автономных адресов таким образом, что вместо 273 строк в таблице фильтрации маршрутизаторов будет присутствовать только три:

  •  10.0.0.0/8 (тут просто нечего агрегировать)
  •  172.16.0.0/12 (агрегировано 16 сетей класса В)
  •  192.168.0.0/16 (агрегировано 256 сетей класса С, получился диапазон, размерами равный одной сети класса В, но ни в коем случае не называющийся сетью класса В).

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

Рассмотрим еще один пример агрегирования, в котором не удается объединить все сети в одну строку вида адрес/маска, но можно с помощью агрегирования значительно уменьшить количество «сетей»:

192.168.31.0 – 192.168.37

 

Запишем в двоичной форме все сети:

192.168.00011111.0

192.168.00100000.0

192.168.00100001.0

192.168.00100010.0

192.168.00100011.0

192.168.00100100.0

192.168.00100101.0

Отыщем среди этих сетей такие, которые можно агрегировать друг с другом. Признаками возможности агрегирования служат:

  •  наличие у группы номеров сетей общей части
  •  все остальные биты, которые не являются общей частью, должны принимать все значения от всех «0» до всех «1»

Таких групп сетей здесь две:

Группа первая:

192.168.001000|00.0

192.168.001000|01.0

192.168.001000|10.0

192.168.001000|11.0

Номер сети: 192.168.32.0/22

Группа вторая:

192.168.0010010|0.0

192.168.0010010|1.0

Номер сети 192.168.36.0/23

Ну и не агрегируемый ни с кем номер сети: 192.168.31.0/24

Итого, вместо семи строк вида:

192.168.0.31/24

192.168.0.32/24

192.168.0.33/24

192.168.0.34/24

192.168.0.35/24

192.168.0.36/24

192.168.0.37/24

мы можем записать всего три строки, описывающие то же адресное пространство:

192.168.31.0/24

192.168.32.0/22

192.168.36.0/23

 

Задания на агрегирование адресов.

Агрегировать в минимальное количество записей вида адрес/маска следующие сети и диапазоны:

1. 192.168.4.0, 192.168.5.0, 192.168.6.0, 192.168.7.0

2. 192.168.19 – 192.168.25

3. 192.168.17.0 – 192.168.27.0

4. 172.15.0.0 – 172.36.0.0

МАРШРУТИЗАЦИЯ

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

Начнем с исполнения маршрутизаторов – все маршрутизаторы делятся на  аппаратные и программные. Программный маршрутизатор – это программа (чаще – служба), запущенная на универсальном компьютере, работающем под управлением универсальной операционной системы. В роли программного маршрутизатора выступает компьютер, оснащенный несколькими сетевыми интерфейсами (LAN и WAN), между которыми перенаправляет пакеты специально программное обеспечение. В серверных операционных системах в обычно встроена весьма функциональная служба маршрутизации, например, такая служба есть в Windows NT 4.0 Server, Windows 2000 Server, Windows Server 2003, Linux, FreeBSD и т.д. В пользовательских операционных системах такая служба если и встроена (Windows 2000 Pro, Windows XP Pro), то крайне малофункциональна и фактически можно считать, не полноценна. Однако, так как маршрутизация – это всего лишь обработка информации, то и для тех ОС, в комплекте которых отсутствует собственная служба маршрутизации, может быть установлено программное обеспечение стороннего разработчика, являющееся программным маршрутизатором. Мы будем изучать программную маршрутизацию на базе службы маршрутизации, встроенной в ОС Windows 2000 Server/Windows Server 2003, впоследствии в курсе Linux будет рассмотрена служба маршрутизации, встроенная в эту ОС.

Аппаратным маршрутизатором называют специализированное оборудование единственной (обычно) целью изготовления которого является применение его в роли маршрутизатора. Обычно это выглядит как самостоятельная «коробочка», произвольного форм-фактора или выполненная для монтажа в монтажном конструктиве, например, как коммутатор. Однако, аппаратный маршрутизатор принципиально отличатся от аппаратного коммутатора. Коммутатор реализуется чисто аппаратно, мы рассматривали архитектуру коммутаторов в курсе «LAN». Маршрутизатор же, даже если и является аппаратным, все равно представляет собой относительно универсальный процессор, оперативную память и прочую аппаратную обвязку, работающие под управлением специальной, ориентированной на маршрутизацию операционной системы. По сути в таком устройстве маршрутизация является все равно программной, т.е. выполняемой специальным программным обеспечением на относительно универсальном процессоре. С чем это связано? С множеством протоколов, которые необходимо маршрутизировать, со спецификой реализации маршрутизации, которые станут ясны позднее. Пока же необходимо уяснить, что даже аппаратные маршрутизаторы по сути своей являются устройствами, работающими под управлением программного обеспечения, просто сильно специализированного. Кроме того, коммутаторы, как говорилось раннее, могут быть неуправляемыми, маршрутизатор же НЕ может быть не управляемым – это устройство в отличие от коммутатора всегда должно поддерживать конфигурирование администратором, хотя бы, например, для назначения IP адресов его портам, не говоря уже пока обо всем остальном.

Типы маршрутизации

 

Выделяют простую, статическую и динамическую маршрутизацию.

Простая маршрутизация не требует ни специальных настроек таблицы маршрутизации администратором, ни работы специальных протоколов для построения таких таблиц, не предъявляет повышенных требований к ресурсам процессора и объему оперативной памяти маршрутизатора, простая маршрутизация имеет примитивнейшую логику, выделяют три основных типа простой маршрутизации:

  •  Случайная маршрутизация. Пришедший пакет отправляется на любой случайно выбираемый порт, за исключением того, откуда пришел пакет. Очевидно, такая логика не будет работать при наличии топологии с петлями (точнее будет работать плохо, так как возможны зацикливания пакетов), такая логика приемлема, если у маршрутизаторов в сети будет по 2 порта. Такая логика похожа на логику моста, еще и упрощенную. Разумеется, в хоть сколь ни будь сложных сетях такой способ маршрутизации не приемлем – он годится только для очень малых и простых сетей.
  •  Маршрутизация по предыдущему опыту. Пришедший пакет отправляется на тот интерфейс, с которого приходили пакеты с таким же адресом отправителя, как и адрес получателя данного пакета. Фактически, данный метод повторяет логику работы коммутатора и снова таки может применяться только в очень малых и простых сетях.
  •  Лавинная маршрутизация. Пришедший пакет отправляется на все интерфейсы кроме того, с которого он поступил. Данная логика повторяет логику коммутатора при обработке неизвестных пакетов и снова таки может применяться только в очень малых и простых сетях.

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

 

При статической маршрутизации таблицы маршрутизации строит администратор, вручную внося записи в таблицы маршрутизации. В чем преимущества такого подхода по сравнению с прошлым случаем? Строго говоря, простая маршрутизация просто не предоставляет возможности строить большие сети, т.е. не позволяет решить задачи, возлагаемые на третий уровень, статическая маршрутизация – гораздо более масштабируемое решение. Администратор может на основании анализа топологии связей составной сети принять решение об оптимальных маршрутах и создать вручную записи в таблицах маршрутизации, которые обеспечат функционирование достаточно большой сети. В чем минусы статической маршрутизации? Их несколько:

  •  Существует вероятность ошибок, как в выборе оптимального маршрута, так и на этапе ручного конфигурирования таблиц маршрутизации.
  •  В случае отказа каких то интерфейсов маршрутизаторов или каких то линий связи, оптимальные маршруты, выбранные администратором могут отказать, а новые, менее оптимальные, но зато работоспособные маршруты не появятся сами в таблицах маршрутизации пока их не внесет вручную администратор. Налицо отсутствие отказоустойчивости.
  •  В крайне большой составной сети ручное построение таблиц маршрутизации становится неэффективным, крайне медленным, а порой и невозможным из-за огромного объема информации в маршрутных таблицах.

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

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

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

Из рассмотренных типов маршрутизации и их характеристик следует:

 

  •  Простая маршрутизация сегодня практически не используется
  •  Статическая и динамическая маршрутизация сегодня активно используются. В небольших простых сетях обычно применяют статическую маршрутизация, в крупных и очень крупных сетях всегда применяют динамическую маршрутизацию. На магистрали Интернет применяется исключительно динамическая маршрутизация.
  •  В данном курсе мы будем использовать статическую маршрутизацию, а в конце курса рассмотрим протоколы динамической маршрутизации.

Рассмотрим причины появления записей в таблицах маршрутизации. Таковых основных причин может быть три:

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

Таким образом – при старте маршрутизатора его таблица содержит, по меньшей мере, маршруты в подключенные сети!

Структура таблицы маршрутизации

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

  •  В таблице так же в качестве вспомогательного поля может быть указан интерфейс, через который передать пакет дальше. Важно помнить, что обязательным полем таблицы маршрутизации является поле адреса следующего маршрутизатора, но этот следующий маршрутизатор достижим через определенный собственный порт, тот, с которым следующий маршрутизатор в одной сети. Для того, чтобы каждый раз при маршрутизации пакета не пришлось выяснять, через какой свой порт необходимо передать пакет следующему маршрутизатору, маршрутизатор обычно вычисляет для каждого интерфейса следующего маршрутизатора из своей таблиц тот свой порт, через который передает пакет этому маршрутизатору.
  •  Указанными выше столбцами маршрутизатор может ограничиваться только в том случае, если в сети применяется только классовый способ адресации. Если же применяются маски, то маршрутизатор уже не может оперировать номером сети как таковым, рядом с номером сети должна фигурировать ее маска, для того, чтобы маршрутизатор мог понимать, сколь много узлов на самом деле попадают в сеть с данным номером, если техника классов не может дать ответ на этот вопрос. Так как маски сегодня применяются повсеместно, то такой столбец в таблицах маршрутизации присутствует всегда.
  •  В случае если в таблице маршрутизации фигурируют несколько маршрутов в некоторые сети (с целью резервирования) необходимо использовать понятие метрики маршрута – цены доставки по данному маршруту, чем цена (метрика) меньше, тем маршрут предпочтительнее. Администратор сможет настроить основной и альтернативные маршруты к некоторым сетям, дав маршрутам различные метрики,  в случае отказа основного маршрута с минимальной метрикой, пакеты могут быть отправлены по маршрутам с худшим значением метрики. Кроме того, понятие метрики активно используется в работе протоколов динамической маршрутизации для определения оптимальных маршрутов. Возможно так же указание нескольких метрик, связанных с маршрутом – количество переход, пропускная способность маршрута, задержка передачи маршрута на случай, если различные пакеты следует передавать с различными предпочтениями.
  •  Каждый динамический добавленный маршрут должен периодически подтверждаться тем маршрутизатором, который сообщил об этом маршруте. Поэтому записи в таблице маршрутизации могут снабжаться полем TTL (Time To Live) – полем времени жизни маршрута, если маршрут не подтверждается в течение этого времени, он удаляется из таблицы маршрутизации.
  •  Маршрут может быть снабжен указанием причины, по которой он появился в таблице маршрутизации, примеры: маршрут к подключенной сети, статический маршрут, указание на протокол маршрутизации, который добавил данный маршрут.
  •  Маршрут может снабжаться статистикой использования: количеством пакетов за известный период времени, которые были отправлены по данному маршруту.

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

Случай первый: составная сеть представляет собой две сети, соединенных маршрутизатором.

 

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

Сеть назначения   Адрес след. Маршрутизатора

  1.      192.168.0.1

172.16.0.0    172.16.0.1

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

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

Усложним задачу, пусть составная сеть состоит из трех сетей, но они по прежнему подключены к единственному маршрутизатору. Будет ли данная задача действительно сложнее предыдущей?

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

Сеть назначения   Адрес след. Маршрутизатора

  1.      192.168.0.1
    1.  172.16.0.1
      1.  192.168.88.1

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

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

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

 Левый маршрутизатор     Правый маршрутизатор

Network   Gateway   Network   Gateway

  1.  192.168.0.1  192.168.88.0   192.168.88.1
    1.  192.168.55.1  192.168.55.0  192.168.55.2

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

Левый маршрутизатор     Правый маршрутизатор

Network   Gateway   Network   Gateway

192.168.0.0  192.168.0.1  192.168.88.0  192.168.88.1

192.168.55.0  192.168.55.1  192.168.55.0  192.168.55.2

192.168.88.0  192.168.55.2  192.168.0.0  192.168.55.1

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

Рассмотрим еще один пример построения таблиц маршрутизации без применения масок.

 

Для R1

Network

Gateway

12.0.0.0

12.0.0.1

1.0.0.0

1.0.0.1

2.0.0.0

1.0.0.2

3.0.0.0

1.0.0.2

4.0.0.0

1.0.0.2

5.0.0.0

1.0.0.2

6.0.0.0

1.0.0.2

7.0.0.0

1.0.0.2

8.0.0.0

1.0.0.2

9.0.0.0

1.0.0.2

10.0.0.0

1.0.0.2

11.0.0.0

1.0.0.2

Обратите внимание маршруты во все сети кроме подключенных проходят через порт следующего маршрутизатора R2 с адресом 1.0.0.2. В таком случае используют так называемый «маршрут по умолчанию» или Default. При этом таблица имеет вид:

Network

Gateway

12.0.0.0

12.0.0.1

1.0.0.0

1.0.0.1

Default

1.0.0.2

Для маршрутизатора такая запись означает следующее: если адрес получателя пакета не принадлежит ни одной из явно указанных сетей (в нашем случае это 12.0.0.0 и 1.0.0.0) – то пакет отправляется по маршруту Default. Важно понимать -что в этом случае пакет уйдет по Default даже если адрес получателя не принадлежит ни одной из сетей присутствующих на схеме.

Для R2

Network

Gateway

12.0.0.0

1.0.0.1

1.0.0.0

1.0.0.2

2.0.0.0

2.0.0.1

3.0.0.0

3.0.0.1

4.0.0.0

3.0.0.2

5.0.0.0

3.0.0.2

6.0.0.0

3.0.0.2

7.0.0.0

3.0.0.2

8.0.0.0

3.0.0.2

9.0.0.0

3.0.0.2

10.0.0.0

3.0.0.2

11.0.0.0

3.0.0.2

Обратите внимание маршруты во все сети кроме подключенных и сети 12.0.0.0, проходят через порт следующего маршрутизатора R3 с адресом 3.0.0.2. В таком случае используют так называемый «маршрут по умолчанию» или Default. При этом таблица имеет вид:

Network

Gateway

12.0.0.0

1.0.0.1

1.0.0.0

1.0.0.2

2.0.0.0

2.0.0.1

3.0.0.0

3.0.0.1

Default

3.0.0.2

Для маршрутизатора такая запись означает следующее: если адрес получателя пакета не принадлежит ни одной из явно указанных сетей (в нашем случае это 12.0.0.0 , 1.0.0.0 , 2.0.0.0 , 3.0.0.0) – то пакет отправляется по маршруту Default.

Для R3

Network

Gateway

12.0.0.0

3.0.0.1

1.0.0.0

3.0.0.1

2.0.0.0

3.0.0.1

3.0.0.0

3.0.0.2

4.0.0.0

4.0.0.1

5.0.0.0

5.0.0.1

6.0.0.0

5.0.0.2

7.0.0.0

7.0.0.1

8.0.0.0

5.0.0.2

9.0.0.0

7.0.0.2

10.0.0.0

7.0.0.2

11.0.0.0

7.0.0.2

При конфигурации данного маршрутизатора возникает неоднозначность выбора маршрута. Например для достижения сети 11.0.0.0 можно:

1 Вариант - отправить пакет на маршрутизатор R5 – далее пакет через сеть 10.0.0.0 приходит на маршрутизатор R6 и в сеть 11.0.0.0

2 Вариант - отправить пакет на маршрутизатор R4 – далее пакет через сеть 8.0.0.0 приходит на маршрутизатор R6 и в сеть 11.0.0.0

Особенности выбора маршрута будут рассмотрены при дальнейшем изучении курса. А пока принимаем что в данном случае и далее в аналогичных ситуация выбираемый маршрут является наиболее выгодным.

Для R4

Network

Gateway

12.0.0.0

5.0.0.1

1.0.0.0

5.0.0.1

2.0.0.0

5.0.0.1

3.0.0.0

5.0.0.1

4.0.0.0

5.0.0.1

5.0.0.0

5.0.0.2

6.0.0.0

6.0.0.1

7.0.0.0

5.0.0.2

8.0.0.0

8.0.0.1

9.0.0.0

5.0.0.1

10.0.0.0

8.0.0.2

11.0.0.0

8.0.0.2

После введения Default таблица имеет вид

Network

Gateway

Default

5.0.0.1

5.0.0.0

5.0.0.2

6.0.0.0

6.0.0.1

8.0.0.0

8.0.0.1

10.0.0.0

8.0.0.2

11.0.0.0

8.0.0.2

Для R5

Network

Gateway

12.0.0.0

7.0.0.1

1.0.0.0

7.0.0.1

2.0.0.0

7.0.0.1

3.0.0.0

7.0.0.1

4.0.0.0

7.0.0.1

5.0.0.0

7.0.0.1

6.0.0.0

7.0.0.1

7.0.0.0

7.0.0.2

8.0.0.0

10.0.0.2

9.0.0.0

9.0.0.1

10.0.0.0

10.0.0.1

11.0.0.0

10.0.0.2

После введения Default таблица имеет вид

Network

Gateway

Default

7.0.0.1

7.0.0.0

7.0.0.2

8.0.0.0

10.0.0.2

9.0.0.0

9.0.0.1

10.0.0.0

10.0.0.1

11.0.0.0

10.0.0.2

Для R6

Network

Gateway

12.0.0.0

8.0.0.1

1.0.0.0

8.0.0.1

2.0.0.0

8.0.0.1

3.0.0.0

10.0.0.1

4.0.0.0

10.0.0.1

5.0.0.0

8.0.0.1

6.0.0.0

8.0.0.1

7.0.0.0

10.0.0.1

8.0.0.0

8.0.0.2

9.0.0.0

10.0.0.1

10.0.0.0

10.0.0.2

11.0.0.0

11.0.0.1

Default не применяется т.к. нет предпочтительного направления при выборе маршрутов.

Теперь, зная как устроена простейшая таблица маршрутизации, рассмотрим логику обработки пакетов маршрутизатором. Рассмотрим маршрутизатор R6. Его таблица маршрутизации имеет вид:

Network

Gateway

12.0.0.0

8.0.0.1

1.0.0.0

8.0.0.1

2.0.0.0

8.0.0.1

3.0.0.0

10.0.0.1

4.0.0.0

10.0.0.1

5.0.0.0

8.0.0.1

6.0.0.0

8.0.0.1

7.0.0.0

10.0.0.1

8.0.0.0

8.0.0.2

9.0.0.0

10.0.0.1

10.0.0.0

10.0.0.2

11.0.0.0

11.0.0.1

Случай 1. Пусть на маршрутизатор поступил пакет по адресу 11.0.0.67. Маршрутизатору необходимо передать его таким образом, чтобы он попал в сеть назначения. Для этого маршрутизатор должен сначала выделить из IP адреса получателя, пользуясь техникой классов номер сети получателя, этот номер: 11.0.0.0. Затем маршрутизатор последовательно просматривает свою маршрутную таблицу в поисках значения в поле Network, совпадающего с номером сети получателя. Первая строка указывает на маршрут в неподходящую сеть (12.0.0.0), после проверки значения поля Network из первой строки маршрутизатор прекращает обработку первой строки и переходит ко второй строке. Во второй строке так же поле Network не совпадает со значением 11.0.0.0, так как равно 1.0.0.0, маршрутизатор переходит к третьей строке и т.д. Значение поля Network из последней строки равно 11.0.0.0, что совпадает с искомым значением, так как маршрутизатор как раз ищет маршрут в сеть 11.0.0.0.

Маршрутизатор, найдя подходящую строку, из столбца Gateway берет адрес следующего шлюза и проверяет, является ли указанный там адрес адресом, принадлежащим какому то из интерфейсов данного маршрутизатора или нет. В данном случае адрес следующего маршрутизатор 11.0.0.1 и является адресом одного из интерфейсов данного маршрутизатора. Это значит, что сеть получателя непосредственно подключена к данному маршрутизатору, и кадр канального уровня необходимо передавать не по адресу следующего маршрутизатора (так как это свой адрес), а непосредственному получателю пакета 11.0.0.67. Необходимо определить тот интерфейс, через который должен быть выдан такой кадр, очевидно в этом случае ответ прост: кард нужно выдать через тот интерфейс, который был указан в таблице маршрутизации как адрес следующего маршрутизатора. Итак, маршрутизатор знает, через какой интерфейс выдать кадр канального уровня, знает IP адрес получателя этого кадра, ему остается узнать лишь МАС адрес получателя кадра. Далее есть два варианта развития событий: МАС адрес станции 11.0.0.67 есть в ARP кэше маршрутизатора или, наоборот, отсутствует. Если МАС адрес станции 11.0.0.67 есть в ARP кэше, то формируется кадр канального уровня направленный этому МАС адресу, в него укладывается исходный IP пакет и на этом работа маршрутизатора по обработке данного IP пакета заканчивается.

Если же МАС адреса станции 11.0.0.67 нет в ARP кэше маршрутизатора, тогда маршрутизатор посылает ARP запрос через интерфейс 11.0.0.1 в поисках МАС адреса, соответствующего IP адресу 11.0.0.67.  Далее возможно два случая: на ARP запрос приходит ответ и ответа не поступает. Если ответ на ARP запрос приходит, маршрутизатор формирует кадр канального уровня, направленный этому МАС адресу, укладывает в него исходный IP пакет и на этом работа маршрутизатора по обработке данного IP пакета заканчивается. В случае если ARP ответа не поступает, маршрутизатор повторяет ARP запрос несколько раз (так как ARP запрос и ARP ответ могут потеряться вследствие того, что передаются без гарантий доставки),  и если ARP ответа так и не поступает за оговоренное заранее число попыток, то маршрутизатор отбрасывает пакет так как ничего полезного с ним сделать не может, разумеется, на этом обработка маршрутизатором данного IP пакета заканчивается.

Случай 2. Пусть на маршрутизатор поступил пакет по адресу 9.0.0.20. Для передачи этого пакета в сеть назначения, маршрутизатор должен снова таки выделить из IP адреса получателя, пользуясь техникой классов номер сети получателя, теперь этот номер: 9.0.0.0. Затем маршрутизатор последовательно просматривает свою маршрутную таблицу в поисках значения в поле Network, совпадающего с номером сети получателя. Первые 9 строк таблицы маршрутизации не подходят, так как содержать отличающиеся от 9.0.0.0 значения поля Network. Значение поля Network из 10-ой строки равно 9.0.0.0, что совпадает с искомым значением. Маршрутизатор, найдя подходящую строку, из столбца Gateway берет адрес следующего шлюза и проверяет, является ли указанный там адрес адресом, принадлежащим какому то из интерфейсов данного маршрутизатора или нет. В данном случае адрес следующего маршрутизатор 10.0.0.1 и не является адресом одного из интерфейсов данного маршрутизатора. Это значит, что сеть получателя не является непосредственно подключенной к данному маршрутизатору и необходимо передать пакет интерфейсу следующего маршрутизатора, а именно 10.0.0.1. Следующий вопрос – через какой из свои интерфейсов необходимо передать кадр канального уровня порту маршрутизатора с адресом 10.0.0.1? Очевидно, через тот свой интерфейс, которым маршрутизатор R6 находится в одной сети с портом 10.0.0.1. Как найти этот интерфейс? IP адреса всех своих интерфейсов маршрутизатор знает, следовательно с помощью техники классов маршрутизатор может найти номера сетей, которым принадлежат все его интерфейсы, кроме того с помощью техники классов маршрутизатор может найти номер сети, которой принадлежит адрес следующего маршрутизатора 10.0.0.1 и сравнить номер сети, которой принадлежит адрес следующего маршрутизатора (найденный из маршрутной таблицы) с адресами тех сетей, членами которых является сам маршрутизатор R6 всеми своими портами. 

Сделаем это:

Адрес следующего маршрутизатора 10.0.0.1, номер сети: 10.0.0.0

Свои интерфейсы: 8.0.0.2, 10.0.0.2, 11.0.0.1, соответствие своих IP адресов и номеров сетей, к которым принадлежат порты маршрутизатора:

Интерфейс 8.0.0.2 – сеть 8.0.0.0

Интерфейс 10.0.0.2 – сеть 10.0.0.0

Интерфейс 11.0.0.1 – сеть 11.0.0.0

Таким образом кадр канального уровня необходимо будет переправить следующему маршрутизатору с IP адресом 10.0.0.1, порт, через который кадр необходимо отправить имеет IP адрес 10.0.0.2. Теперь маршрутизатор знает, порту с каким IP адресом нужно переправить кадр, принятый содержащий IP пакет, знает, через какой свой порт, находящийся в одной сети с целевым портом  переправит кадр. Дальше снова два варианта развития событий: сеть, в которую нужно передать кадр это сеть с множественным доступом или сеть точка-точка. Если это сеть точка-точка, то кадр порту маршрутизатора 10.0.0.1 уже можно формировать, в него укладывается исходный IP пакет для 9.0.0.20, на этом работа маршрутизатора по продвижению данного пакета заканчивается. Если же транзитная сеть 10.0.0.0 – сеть с множественным доступом,  то тогда необходимо выяснить МАС адрес порта следующего маршрутизатора, зная его IP адрес.

Далее снова, как и в прошлом случае, есть два варианта развития событий: МАС адрес порта маршрутизатора 10.0.0.1 есть в ARP кэше маршрутизатора или, наоборот, отсутствует. Если МАС порта маршрутизатора 10.0.0.1 есть в ARP кэше, то формируется кадр канального уровня направленный этому МАС адресу, в него укладывается исходный IP пакет и на этом работа маршрутизатора по обработке данного IP пакета заканчивается.

Если же МАС адреса порта маршрутизатора 10.0.0.1 нет в ARP кэше маршрутизатора, тогда маршрутизатор посылает ARP запрос через интерфейс 10.0.0.2 в поисках МАС адреса, соответствующего IP адресу 10.0.0.1.  Далее возможно два случая: на ARP запрос приходит ответ и ответа нет. Если ответ на ARP запрос приходит, маршрутизатор формирует кадр канального уровня, направленный этому МАС адресу, укладывает в него исходный IP пакет и на этом работа маршрутизатора по обработке данного IP пакета заканчивается. В случае если ARP ответа не поступает, маршрутизатор, как и в прошлом случае повторяет ARP запрос несколько раз и если ARP ответа так и не поступает за оговоренное заранее число попыток, то маршрутизатор отбрасывает пакет, на этом обработка маршрутизатором данного IP пакета заканчивается.

Случай 3. Пусть на маршрутизатор поступил пакет по адресу 13.0.0.6. Для передачи этого пакета в сеть назначения, как нам уже известно, маршрутизатор должен сначала выделить из IP адреса получателя, пользуясь техникой классов номер сети получателя, на этот раз номер сети: 13.0.0.0. После этого маршрутизатор начинает последовательно просматривать свою маршрутную таблицу в поисках значения в поле Network, совпадающего с номером сети получателя. Ни одна строка в таблице маршрутизации не содержит в поле Network значения 13.0.0.0,  поэтому просмотрев все строки таблицы маршрутизации, маршрутизатор отбрасывает данный пакет, так как не имеет маршрута, по которому его можно было бы передать, на этом обработка данного пакета маршрутизатором заканчивается.

Теперь рассмотрим маршрутизатор R2. Его таблица маршрутизации имеет вид:

Network

Gateway

12.0.0.0

1.0.0.1

1.0.0.0

1.0.0.2

2.0.0.0

2.0.0.1

3.0.0.0

3.0.0.1

Default

3.0.0.2

Случай 4. Пусть на маршрутизатор поступил пакет по адресу 7.0.0.100. Маршрутизатор выделяет из этого адреса номер сети получателя: 7.0.0.0. Просматривает таблицу построчно в поисках строки с полем Network равным 7.0.0.0 и не находит. На первый взгляд кажется, что этот случай похож на предыдущий, но есть одно принципиальное отличие: в этом случае у маршрутизатора есть маршрут по умолчанию, по которому будет отправлены все пакеты, для которых не нашлось маршрута, записанного в явном виде. Следовательно, маршрутизатор R2 решает передать данный IP пакет следующему маршрутизатору с адресом 3.0.0.2, для чего выполняет уже описанную в примере №2 последовательность действий: находит свой порт, через который передать кадр (3.0.0.1), и т.д.

Случай 5. Пусть на маршрутизатор поступил пакет по адресу 13.0.0.6, как и случае 3. Очевидно, что настроенный таким образом маршрутизатор R2 передаст такой пакет по маршруту, описанному как маршрут по умолчанию, не смотря на то, что на самом деле сети назначения в нашей составной сети просто не существует. Маршрутизатор, имеющий в таблице маршрутизации маршрут по умолчанию, никогда не отбрасывает пакетов по причине отсутствия маршрута в сеть получателя – в этом его принципиальное отличие от маршрутизаторов, не имеющих записей по умолчанию. В таком случае отбрасывание пакета осуществит маршрутизатор R3, которому передаст пакет в несуществующую сеть маршрутизатор R2.

Исходя из рассмотренных выше случаев составим алгоритм работы которым пользуется маршрутизатор, работающий с применением техники классов при обработке поступивших пакетов. Примем, что у маршрутизатора все интерфейсы имеют IP адреса, записанные в константах IP_интерфейса(N), с применением техники классов рассчитаны номера сетей всех интерфейсов и записаны в переменные сеть_интерфейса(N), есть не более одной строки default, определена константа количество_интерфейсов, определена константа количество_строк_в_таблице (без учета строки default). Предполагается, что задана константа таймаут_секунд – время ожидания ARP ответа и константа предельное_количество_повторов_ARP. Предполагается, что при добавлении маршрутов все необходимые переменные будут переопределены, предполагается, что добавить неверные маршруты (такие, что адрес следующего маршрутизатора не в одной сети с данным маршрутизатором) невозможно.

  1.  Принять кадр канального уровня из линии связи.
  2.  Отбросить заголовки канального уровня, оставив в памяти IP пакет
  3.  Инициировать переменную номер_просматриваемой_строки =1
  4.  Извлечь из IP пакета IP адрес получателя, записать в переменную IP_конечного_получателя
  5.  Пользуясь техникой классов, выделить из IP_конечного_получателя номер сети конечного получателя, записать в переменную сеть_конечного_получателя.
  6.  Сравнить поле Network строки таблицы маршрутизации № номер_просматриваемой_строки со значением сеть_конечного_получателя. Если равны – записать в переменную IP_следующего_маршрутизатора значение поля Gateway перейти к пункту 11, иначе:
  7.  Если номер_просматриваемой_строки = количество_строк_в_таблице, перейти к пункту 9, иначе:
  8.  номер_просматриваемой_строки++, перейти к пункту 6
  9.  Проверить, есть ли в таблице запись о маршруте по умолчанию, если да, записать в переменную IP_следующего_маршрутизатора значение поля Gateway из строки о маршруте по умолчанию, перейти к пункту 11, иначе:
  10.  Отбросить пакет, закончить алгоритм.
  11.  Инициализировать переменную М = 1
  12.  Сравнить IP_следующего_маршрутизатора с IP_интерфейса(M), если совпало, перейти к пункту 25, иначе:
  13.  Если M= количество_интерфейсов, перейти к пункту 15, иначе:
  14.  M++, перейти к пункту 12
  15.  Пользуясь техникой классов, выделить из IP_следующего_маршрутизатора номер сети следующего маршрутизатора, записать в переменную сеть_следующего_маршрутизатора.
  16.  Инициализировать переменную N = 1
  17.  Сравнить сеть_следующего_маршрутизатора с сеть_интерфейса(N), если совпало – перейти к пункту 19, иначе:
  18.  N++, перейти к пункту 17
  19.  Если сеть интерфейса N – точка-точка, сформировать кадр канального уровня в этой сети, внутрь положить исходный IP пакет, передать кадр, закончить алгоритм.
  20.  Проверить ARP таблицу на предмет нахождения в ней МАС адреса, соответствующего IP_следующего_маршрутизатора, если запись есть, сформировать в сети N кадр канального уровня, МАС адрес отправителя – МАС порта маршрутизатора номер N, МАС адрес получателя – МАС адрес соответствующий IP_следующего_маршрутизатора, положить внутрь исходный IP пакет, передать кадр, закончить алгоритм.
  21.  Инициализировать переменную количество_повторов_ARP=0
  22.  Послать ARP запрос на предмет нахождения МАС адреса, соответствующего IP_следующего_маршрутизатора
  23.  Подождать таймаут_ секунд
  24.  Если ответа нет, проверить количество_повторов_ARP=предельное_количество_повторов_ARP, если да, отбросить полученный IP пакет, закончить алгоритм, иначе количество_повторов_ARP++, перейти к пункту 22, если ответ есть, сформировать в сети N кадр канального уровня, МАС адрес отправителя – МАС порта маршрутизатора номер N, МАС адрес получателя – МАС адрес соответствующий IP_следующего_маршрутизатора, положить внутрь исходный IP пакет, передать кадр, закончить алгоритм.
  25.  Если сеть интерфейса M – точка-точка, сформировать кадр канального уровня в этой сети, внутрь положить исходный IP пакет, передать кадр, закончить алгоритм.
  26.  Проверить ARP таблицу на предмет нахождения в ней МАС адреса, соответствующего IP_конечного_получателя, если запись есть, сформировать в сети N кадр канального уровня, МАС адрес отправителя – МАС порта маршрутизатора номер N, МАС адрес получателя – МАС адрес соответствующий IP_конечного_получателя, положить внутрь исходный IP пакет, передать кадр, закончить алгоритм.
  27.  Инициализировать переменную количество_повторов_ARP=0
  28.  Послать ARP запрос на предмет нахождения МАС адреса, соответствующего IP_конечного_получателя
  29.  Подождать таймаут_секунд
  30.  Если ответа нет, проверить количество_повторов_ARP=предельное_количество_повторов_ARP, если да, отбросить полученный IP пакет, закончить алгоритм, иначе количество_повторов_ARP++, перейти к пункту 27, если ответ есть, сформировать в сети N кадр канального уровня, МАС адрес отправителя – МАС порта маршрутизатора номер N, МАС адрес получателя – МАС адрес соответствующий IP_конечного_получателя, положить внутрь исходный IP пакет, передать кадр, закончить алгоритм.

Пояснения к шагам алгоритма:

1. – 2. без пояснений

3. Переменная номер_просматриваемой_строки нужна нам для последовательного просмотра всех строк в таблице маршрутизации

4. без пояснений

5. Знание сети конечного получателя необходимо для поиска соответствующей строки в таблице маршрутизации

6. – 10. Здесь производится поиск строки таблицы маршрутизации, подходящей для обработки данного пакета. В строках 6. – 8. просматриваются последовательно все строки таблицы маршрутизации за исключением строки по умолчанию, в случае, если строка найдена, происходит переход к следующей части алгоритма (пункт 11), если же строка не найдена, в пункте 9 проверяется наличие строки по умолчанию – если ее нет, алгоритм заканчивает свою работу, если она есть, происходит переход к следующей части алгоритма (пункт 11). Если переход к пункту 11 происходит, то в переменной IP_следующего_маршрутизатора записан адрес следующего маршрутизатора.

11. – 14. Проверка того, является ли адрес следующего маршрутизатора адресом собственного интерфейса. Если это так, происходит переход к пункту 25 (M – номер этого интерфейса), иначе происходит переход к пункту 14.

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

16. – 18. Разыскиваем номер своего интерфейса, через который достижим следующий маршрутизатор, номер интерфейса – N.

19. В сети точка-точка уже можно передавать кадр следующему маршрутизатору через интерфейс в сети N

20. Если сеть N – сеть множественного доступа, проверяем наличие в ARP кэше МАС адреса следующего маршрутизатора. Если он есть – отправляем кадр канального уровня.

21. – 24. Разыскиваем ARP запросами МАС адрес следующего маршрутизатора, если он не отвечает за оговоренное количество повторов, удаляем пакет из памяти, если МАС адрес следующего маршрутизатора найден – отправляем кадр

25. Сюда мы попадаем только в том случае, если сеть получателя подключена к данному маршрутизатору (через интерфейс М). Если эта сеть точка-точка – передаем кадр получателю сразу.

26. Если сеть M – сеть множественного доступа, проверяем наличие в ARP кэше МАС адреса получателя. Если он есть – отправляем ему кадр канального уровня.

27. – 30. Разыскиваем ARP запросами МАС адрес получателя, если получатель не отвечает на ARP запросы за оговоренное количество повторов, удаляем пакет из памяти, если МАС адрес получателя найден – отправляем кадр.

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

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

Начнем с того, кому и что необходимо знать о масках.

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

 Маршрутизаторы должны знать маски всех сетей составной сети, так как маршрутизатор должен выбрать правильный маршрут для передачи пакета, а для этого он должен уметь правильно определять, в какую сеть пакет отправлен, а для того, чтобы правильно определять, в какую сеть пакет отправлен, маршрутизатору необходимо знать размеры всех сетей и как следствие, маски всех сетей.

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

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

Итого: маски задаются на узлах (свои собственные маски) и в таблицах маршрутизации маршрутизаторов в каждой строке вместе с адресом сети. В IP пакетах маски НЕ ПОЯВЛЯЮТСЯ! 

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

Рассмотрим сеть, в которой применяются маски подсети. Запишем таблицу маршрутизации центрального маршрутизатора этой сети:

Network   Mask     Gateway

192.168.0.0  255.255.255.192 192.168.0.1

192.168.0.64  255.255.255.192 192.168.0.65

192.168.0.128  255.255.255.224 192.168.0.210

  1.    255.255.255.224 192.168.0.214

192.168.0.192  255.255.255.240 192.168.0.218

  1.    255.255.255.252 192.168.0.209
    1.    255.255.255.252 192.168.0.213
      1.    255.255.255.252 192.168.0.217

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

Итак: на маршрутизатор, поддерживающий маски поступает пакет с некоторым адресом получателя. Из этого адреса номер сети не следует. Рассмотрим первую строку таблицы маршрутизации, так описана некоторая сеть: адрес и маска. Мы не знаем какой сети принадлежит адрес получателя из пакета, но можем ответить на вопрос «не принадлежит ли он этой сети, описанной в данной строке таблицы маршрутизации». Как уже говорилось раньше, для этого необходимо умножить по модулю два адрес получателя из пакета на маску из первой строки таблицы маршрутизации: если в ответе получится номер сети, указанный в первой же строке таблицы – значит получатель принадлежит как раз этой сети. Это подробно разбиралось в одном из предыдущих модулей, необходимо снова остановиться на пояснении этого факта, возможно объяснить его снова, проведя анализ операции умножения по модулю два.

Таким образом, не выясняя предварительно номера сети получателя, можно тем не менее проверить, не принадлежит ли получатель сети, описанной в данной строке таблицы маршрутизации. Если не принадлежит – перейти к следующей строке, если принадлежит – отправит пакет так, как это уже обсуждалось выше. Фактически применение масок очень мало меняет в логике маршрутизатора, эта логика скорее слегка модифицируется в одной частной задаче, нежели кардинально изменяется: маршрутизатор просто чуть иначе проверяет, попадает ли получатель в сеть, описанную в данной строке таблицы маршрутизации, остальное в логике маршрутизатора неизменно. Весь описанный выше алгоритм работы маршрутизатора остается в силе, за исключением проверки принадлежности получателя сети, описанной в данной строке таблицы маршрутизации.

Применение масок приводит еще к ряду особенностей. Рассмотрим их.

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

Network   Mask     Gateway

........

192.168.0.0  255.255.255.0  10.0.0.1

192.168.0.64  255.255.255.192 11.0.0.1

192.168.0.96  255.255.255.240 12.0.0.1

........

У маршрутизатора есть маршрут ко всей сети класса С 192.168.0.0/24, кроме того к подсети 192.168.0.64/26 (размером в ¼ исходной сети) есть специфический маршрут, кроме того, уже к подсети 192.168.0.80/28 этой подсети (размером в ¼ подсети 192.168.0.64/26) так же есть специфический маршрут. Пусть на маршрутизатор поступил пакет по адресу 192.168.0.100. Какая из строк таблицы маршрутизации в соответствии с приведенным выше алгоритмом должна маршрутизировать пакет?

Проверим, подходит ли пакет в сеть, описанную первой строкой:

Равно ли и 192.168.0.0?

Адрес получателя   11000000.10101000.00000000.01100100

Маска первой строки   11111111.11111111.11111111.00000000

Произведение по модулю2  11000000.10101000.00000000.00000000 

Номер сети первой строки  11000000.10101000.00000000.00000000

Проверим, подходит ли пакет в сеть, описанную второй строкой:

Равно ли и 192.168.64.0?

Адрес получателя   11000000.10101000.00000000.01100100

Маска второй строки   11111111.11111111.11111111.11000000

Произведение по модулю2  11000000.10101000.00000000.01000000 

Номер сети второй строки  11000000.10101000.00000000.01000000

Проверим, подходит ли пакет в сеть, описанную третьей строкой:

Равно ли и 192.168.0.96?

Адрес получателя   11000000.10101000.00000000.01100100

Маска третьей строки  11111111.11111111.11111111.11110000

Произведение по модулю2  11000000.10101000.00000000.01100000 

Номер сети третьей строки 11000000.10101000.00000000.01100000

Видно, что все три строки в соответствии с приведенным выше алгоритмом пригодны для маршрутизации пакета с адресом получателя 192.168.0.100 на данном маршрутизаторе. Для разрешения таких конфликтов действует вполне логичное правило: если возможно несколько маршрутов, выбирать следует тот, который более специфичен, т.е. описывает маршрут в подсеть наименьшего размера, т.е. выбирают маршрут, у которого самая длинная маска. Значит ли это, что для маршрутизации любого пакета необходимо проверить все строки таблицы маршрутизации, ведь нахождение одной подходящей строки не гарантирует отсутствие еще более подходящих строк? Это было бы крайне не выгодно, так как сильно бы замедляло работу маршрутизатора (примерно вдвое – в среднем нужно просматривать половину таблицы, а так – всю). Вместо этого маршрутизатор обычно сортирует свою таблицу таки образом, чтобы сначала обрабатывались строки с длинными масками, а затем с короткими, это гарантирует, что найденный первым маршрут и есть лучший маршрут. При описании маршрутизации на основе классов сетей подобный принцип уже использовался: ведь маршрут по умолчанию подходит для любого адреса получателя, но используется последним.

И еще пару слов о маршруте по умолчанию. Раньше мы записывали такой маршрут просто как Default и отдельно обрабатывали в  алгоритме работы маршрутизатора. В рамках техники масок очень легко формализовать маршрут по умолчанию так, чтобы это был просто один из маршрутов в сеть с маской. Действительно, достаточно найти такую пару чисел, чтобы при умножении одного из них на любое число мы всегда получали другое число, не зависимо от того, что именно мы умножаем.

Например, найдем пару  X иY,  что бы  X*a=Y, не зависимо от а.  Очевидно, и X и Y равны нулю, следовательно маршрут по умолчанию можно записывать как:

Network   Mask     Gateway

........

0.0.0.0   0.0.0.0   адрес

Очевидно, что любой адрес получателя, умноженный на 0.0.0.0 по модулю два,  даст в ответе 0.0.0.0. Следовательно, данная строка в таблице маршрутизации обслужит любой пакет с любым адресом получателя. Это не противоречит и вышесказанному о длине масок и приоритетности выбора строки из таблицы маршрутизации: очевидно маска 0.0.0.0 – самая короткая, так что данная строка в таблице маршрутизации будет задействована в последнюю очередь, и это хорошо, так как маршрут по умолчанию самый общий и не специфичный.

Рассмотренная логика работы маршрутизатора не привязана к маскам постоянной длины и одинаково работает в случае масок постоянной длины и VLSM.

Таким образом, на данный момент полностью рассмотрен механизм продвижения пакета в составной сети. Описаны следующие алгоритмы работы:

  1.  Алгоритм работы узла передающего кадр локально или на маршрутизатор. Заключается в определении узлом отправителем принадлежит ли IP адрес получателя той же сети, что и адрес интерфейса узла отправителя – в этом случае используется протокол ARP для разрешения МАС адреса узла получателя заново или из таблицы МАС адресов, после чего на узел получатель отправляется кадр канального уровня с инкапсулированным пакетом IP протокола. Если же IP адрес получателя принадлежит сети отличной от адреса интерфейса узла отправителя – в этом случае используется протокол ARP для разрешения МАС адреса шлюза (интерфейса подключенного маршрутизатора) заново или из таблицы МАС адресов, после чего на шлюз отправляется кадр канального уровня с инкапсулированным пакетом IP протокола в адрес узла получателя. Для определения принадлежности IP адреса получателя может использоваться как классовый метод, так и технология масок подсетей.
  2.  Алгоритм построения таблиц маршрутизации и определения направления Default. Заключается в выборе направления передачи пакета исходя из топологии сети и информации об интерфейсах подключенных маршрутизаторов. Если количество маршрутов через один из подключенных маршрутизаторов намного больше чем через остальные – то все маршруты через данный интерфейс обозначаются как Default – что упрощает обработку таблицы маршрутизации но при этом возможна отправка пакета по Default даже если сеть получателя не соответствует ни одной из сетей сфлрмировавших это направление.
  3.  Алгоритм работы маршрутизатора при выборе маршрута передачи пакета. Заключается в анализе таблицы маршрутизации на совпадение значения столбца Network таблицы маршрутизации с сетью получателя пакета , либо выбор направления Default. После чего по соответствующему значению столбца Gateway пакет отправляется в адрес интерфейса следующего подключенного маршрутизатора (если получатель находится в сети не подключенной к маршрутизатору) либо в адрес получателя паета (если получатель находится в сети подключенной к маршрутизатору). И в первом и во втором случае для разрешения МАС адреса используется протокол ARP. Определение соответствия адреса получателя пакета и значения столбца Network таблицы маршрутизации может осуществляться как на основе технологии классов так и при помощи масок подсетей.

Практическое задание.

А. Построить таблицы маршрутизации, используя маски.

Администратор сети получил в свое распоряжение сеть класса С 211.11.11.0. Необходимо разделить эту сеть на подсети максимально экономно, адресовать узлы и порты маршрутизаторов, построить таблицы маршрутизации обоих маршрутизаторов. Затем, на основании построенных таблиц маршрутизации, проследить перемещение следующих пакетов:

  •  Посланного из сети 1 в сеть 1
  •  Посланного из сети 1 в сеть 2
  •  Посланного из сети 1 в сеть 3
  •  Посланного из сети 1 в сеть 4
  •  Посланного из сети 4 в сеть 2

В. Практическое изучение логики работы маршрутизаторов

  1.  Настроить на двух узлах своей сети адреса и маски, не настраиваем шлюз по умолчанию. Начать взаимодействие, обращаясь к web серверу одной из станций. Убедиться, что отправляется ARP запрос, приходит ARP ответ, в ARP кэш попадает запись, затем происходит передача кадров между МАС адресами двух станций.
  2.  Повторить то же взаимодействие, убедится, что если в кэше ARP присутствует запись о МАС адресе партнера, то обмен кадрами происходит без предварительного обмена ARP пакетами.
  3.  Начать взаимодействие с одного из узлов к несуществующему узлу своей сети. Убедиться, что отказ во взаимодействии происходит через некоторое время, в течение которого станция посылает ARP запросы, на которые не получает ARP ответа. С помощью анализатора проверить время ожидания ARP ответа в Windows и количество посылаемых ARP запросов, прежде чем произойдет отказ во взаимодействии.
  4.  Начать взаимодействие с одного из узлов к несуществующему узлу своей сети, предварительно внеся в ARP кэш первой станции статическую запись о том, что IP адрес получателя связан с некоторым не присутствующим в сети МАС адресом. Убедиться, что отказ во взаимодействии происходит через некоторое время, в течение которого станция посылает какие то неизвестные на пока прикладные пакеты, на которые не получает прикладных ответов. Измерять период задержки перед отказом во взаимодействии и сравнить с двумя предыдущими случаями.
  5.  По прежнему не указывая узлам адреса шлюза по умолчанию, попытаться начать взаимодействие с узлом из другой сети. Убедиться, что отказ во взаимодействии происходит мгновенно, пакетов в есть не отправляется (с помощью анализатора).
  6.  Далее проверить логику узла при работе в сети с маршрутизатором. В качестве работающего шлюза использовать шлюз, ведущий в Интернет (R1). Настроить своему узлу в качестве шлюза по умолчанию R1, начать взаимодействие с узлом удаленной сети. Убедится, что узел сперва шлет ARP запрос маршрутизатору R1, а затем передает ему на канальном уровне (проверяем по МАС адресам отправителя и получателя) IP пакет, предназначенный истинному получателю. Проверить ARP кэш своей станции, убедиться, что в этом кэше есть МАС адрес порта маршрутизатора.
  7.  Повторить то же взаимодействие, убедиться, что если в кэше ARP станции есть запись о МАС адресе маршрутизатора, то ARP запросы не посылаются.
  8.  Настроить узлу в качестве адреса шлюза по умолчанию IP адрес существующего узла, но не являющегося маршрутизатором. Захватить и проанализировать трафик, сделать выводы о том, по каким тайм-аутам происходит отказ во взаимодействии
  9.  Настроить узлу в качестве адреса шлюза по умолчанию IP адрес не существующего узла. Захватить и проанализировать трафик, сделать выводы о том, по каким тайм-аутам происходит отказ во взаимодействии.
  10.  Настроить узлу в качестве адреса шлюза по умолчанию IP адрес не существующего узла, внести в ARP кэш узла статическую запись о соответствии IP адреса его мнимого шлюза по умолчанию несуществующему в сети МАС адресу. Захватить и проанализировать трафик, сделать выводы о том, по каким тайм-аутам происходит отказ во взаимодействии.

Начнем в субботу.

Как отмечалось ранее маршрутизаторы бывают аппаратными и программными. Аппаратный маршрутизатор – это активное сетевое оборудование оснащенное интерфейсами для подключения в сеть и конфигурирования. Программный маршрутизатор – это рабочая станция обладающая соответствующим программным обеспечением которое может входить в состав операционной системы либо устанавливаться отдельно. Обычно в серверные операционные системы встраивают программное обеспечение для маршрутизации, в частности мы будем, изучая маршрутизацию в этом курсе, опираться в основном на реализацию маршрутизатора в Windows 2000 Server и Windows Server 2003. Помимо этого, изучая операционную систему Linux, впоследствии, также будет изучена реализация программных маршрутизаторов в этой операционной системе, кроме того, в курсе будут рассмотрены и некоторые аспекты конфигурирования аппаратных маршрутизаторов.

Итак, рассмотрим процесс конфигурирации маршрутизатора. Построим следующую сеть из 3 компьютеров: два узла и маршрутизатор. В качестве маршрутизатора используем компьютер с установленной операционной системой MS Windows 2003 Server или MS Windows 2000 Server. При отсутствии в достаточном количестве концентраторов и коммутаторов, узлы можно соединять перекрещенными patch кордами, так даже удобнее. Настроим на узлах слева и справа адрес, маску (классовую) и адрес шлюза в соответствии с рисунком. Настроим интерфейсы маршрутизатора в соответствии с рисунком.

Запустим анализатор пакетов на 1.0.0.10 и 2.0.0.1 и пошлем пакет от 1.0.0.10 к 2.0.0.10, обращаясь, например, к web серверу. Взаимодействие невозможно, но из захваченного трафика видно, что станция 1.0.0.10, узнав МАС адрес 1.0.0.1, посылает на маршрутизатор пакеты для 2.0.0.10.

При этом на втором интерфейсе маршрутизатора (2.0.0.1) наблюдается отсутствие пакетов. Причина – не включена маршрутизация маршрутизацию.

Рассмотрим старт RRAS в Windows Server. Служба, которую мы будем запускать в Windows Server называется «Служба маршрутизации и удаленного доступа» (Routing and Remote Access Server), это означает, что помимо маршрутизации между сетевыми интерфейсами, эта же служба отвечает в Windows  за удаленные подключения пользователей, например, с помощью модема или ISDN. Этот аспект функционирования данной службы нас пока не интересует (он будет изучен далее в этом курсе), а пока рассмотрим маршрутизацию.

Вот так выглядит запуск службы RRAS.

Правый клик на “Routing and Remote Access”

Либо из Панели управления – Администрирование

Затем автоматически запускается Мастер настройки службы

Next

Из пяти сценариев запуска мастера, первые 4 рассчитаны на то, что в процессе отработки мастера Windows задаст администратору все необходимые вопросы для настройки службы маршрутизации для выполнения конкретной  задачи, а шестой сценарий предполагает, что никаких вопросов не последует, маршрутизатор будет некоторым образом настроен по умолчанию. При этом, независимо от того, как стартует маршрутизатор, всегда после старта останется возможность настроить/донастроить любые параметры вручную. Может показаться, что использование мастера удобнее – обо всем, что нужно настроить – спросят, ничего не забудешь, однако во-первых любой мастер не может быть универсален, а с другой стороны в мастере есть ошибки, например, выражающиеся в том, что в ряде случаев мастер задает вопросы, которые совершенно не нужно задавать для данного сценария, что сбивает с толку того, кто настраивает систему. Поэтому будем стремится не пользоваться мастером, выбираем  “Custom Configuration” т.е. – индивидуальная настройка.

Стартуем маршрутизатор в режиме “LAN routing” т.е. - сетевой маршрутизатор.

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

Запустим анализатор, и последовательно отследим, что происходит в сети. Захватим ARP запрос от станции 1.0.0.10 к порту маршрутизатора, ARP ответ, кадр с пакетом направленный на маршрутизатор, ARP запрос от маршрутизатора ко второй станции 2.0.0.10, ответ второй станции и наконец, кадр от порта маршрутизатора ко второй станции, внутри которого IP пакет от первой станции ко второй.

Сводный трафик на сервере в хронологии событий левого (сеть 1.0.0.0) и правого (сеть 2.0.0.0) сегментов приведен в таблице; МАС адреса интерфейсов сервера 00-20-ED-8E-32-2D и 00-02-44-84-24-9C

Левый сегмент

ARP REQ

FF-FF-FF-FF-FF-FF

<=

00-0C-29-7E-FE-F5

1.0.0.10

-?-

1.0.0.1

Левый сегмент

ARP REPL

00-20-ED-8E-32-2D

=>

00-0C-29-7E-FE-F5

1.0.0.1

-!-

1.0.0.10

Левый сегмент

IP/TCP

00-20-ED-8E-32-2D

<=

00-0C-29-7E-FE-F5

2.0.0.10

<=

1.0.0.10

80<=1075

Правый сегмент

ARP REQ

00-02-44-84-24-9C

=>

FF-FF-FF-FF-FF-FF

2.0.0.1

-?-

2.0.0.10

Правый сегмент

ARP REPL

00-02-44-84-24-9C

<=

00-0E-A6-33-51-2A

2.0.0.10

-!-

2.0.0.1

Правый сегмент

IP/TCP

00-02-44-84-24-9C

=>

00-0E-A6-33-51-2A

1.0.0.10

=>

2.0.0.10

1075=>80

Правый сегмент

IP/TCP

00-02-44-84-24-9C

<=

00-0E-A6-33-51-2A

1.0.0.10

<=

2.0.0.10

80<=1075

Левый сегмент

IP/TCP

00-20-ED-8E-32-2D

=>

00-0C-29-7E-FE-F5

2.0.0.10

=>

1.0.0.10

80=>1075

Левый сегмент

IP/TCP

00-20-ED-8E-32-2D

<=

00-0C-29-7E-FE-F5

2.0.0.10

<=

1.0.0.10

80<=1075

Правый сегмент

IP/TCP

00-02-44-84-24-9C

=>

00-0E-A6-33-51-2A

1.0.0.10

=>

2.0.0.10

1075=>80

Правый сегмент

IP/TCP

00-02-44-84-24-9C

<=

00-0E-A6-33-51-2A

1.0.0.10

<=

2.0.0.10

80<=1075

Левый сегмент

IP/TCP

00-20-ED-8E-32-2D

=>

00-0C-29-7E-FE-F5

2.0.0.10

=>

1.0.0.10

80=>1075

Левый сегмент

IP/TCP

00-20-ED-8E-32-2D

<=

00-0C-29-7E-FE-F5

2.0.0.10

<=

1.0.0.10

80<=1075

Правый сегмент

IP/TCP

00-02-44-84-24-9C

=>

00-0E-A6-33-51-2A

1.0.0.10

=>

2.0.0.10

1075=>80

Правый сегмент

IP/TCP

00-02-44-84-24-9C

<=

00-0E-A6-33-51-2A

1.0.0.10

<=

2.0.0.10

80<=1075

Левый сегмент

IP/TCP

00-20-ED-8E-32-2D

=>

00-0C-29-7E-FE-F5

2.0.0.10

=>

1.0.0.10

80=>1075

Левый сегмент

IP/TCP

00-20-ED-8E-32-2D

<=

00-0C-29-7E-FE-F5

2.0.0.10

<=

1.0.0.10

80<=1075

Рассмотрим оснастку «Маршрутизация и удаленный доступ».

«Интерфейсы маршрутизации». 

Обратите внимание в списке 4 интерфейса нашего маршрутизатора: два – соответствующие нашим сетевым адаптерам, интерфейс «Внутренний» и интерфейс «Замыкание на себя». Интерфейс «Внутренний» применяется исключительно в тех случаях, когда наш маршрутизатор является сервером удаленного доступа, все что с этим связано, будет рассмотрено позднее. Интерфейс «Замыкание на себя» это некий виртуальны интерфейс маршрутизатора (и любого узла под управлением Windows), это интерфейс «как бы» имеет IP адрес 127.0.0.1 и применяется для коммуникаций с применением зарезервированного диапазона адресов 127.0.0.0/8. Маршрутизатор применяет этот интерфейс для получения пакетов, предназначенных самому маршрутизатору и этот интерфейс вообще не должен привлекать нашего внимания при конфигурировании маршрутизатора – он всегда есть и предназначен только для обработки пакетов для самого маршрутизатора, как пришедших извне, так и порожденных процессами самого маршрутизатора. Итак, с существующими интерфейсами разобрались. Нужно ли при добавлении адаптера в компьютер, добавлять интерфейс в папку «Интерфейсы маршрутизации»? Нет, он появятся там автоматически, как и значки подключений в папке «Сеть и удаленный доступ к сети». Однако, при создании подключения с помощью модема, соответствующее соединение необходимо создавать в папке «Сеть и удаленный доступ к сети» - то же самое и с интерфейсами маршрутизатора – если у маршрутизатора будет в качестве одного из интерфейсов модем или другое устройство вызова по требованию, то соответствующий интерфейс необходимо будет добавить в «Интерфейсы маршрутизации».

Папки «Политика удаленного доступа» и «Ведение журнала удаленного доступа» имеют смысл только тогда, когда наш маршрутизатор применяется в режиме удаленного доступа и поэтому пока не рассматриваются.

Папка «IP-маршрутизация» содержит в себе настройки IP маршрутизации данного маршрутизатора, если наш маршрутизатор будет маршрутизировать другие сетевые протоколы, то появятся соответствующие папки. Рассмотрим содержимое этой папки:

«Общие» - список интерфейсов, принимающих участие в IP маршрутизации, сведения об адресах этих интерфейсов, статистике и т.д.

«Статические маршруты» как ясно из названия – место, куда записываются в маршрутизаторе Windows те маршруты, которые вносит администратор.

 

Какова должна быть таблица маршрутизации  нашего маршрутизатора если в составной сети всего две сети? Логично ожидать, что в таблице маршрутизации будет всего две записи и обе о подключенных сетях 1.0.0.0/8 и 2.0.0.0/8:

1.0.0.0    255.0.0.0  1.0.0.1

2.0.0.0   255.0.0.0  2.0.0.1

Посмотрим на ту таблицу, которую выдает наш маршрутизатор. С одной стороны в оснастке «Маршрутизация и удаленный доступ» есть средство для получения таблицы маршрутизации:

с другой стороны в Windows есть специальная утилита для управления таблицей маршрутизации: route.exe. Получим таблицу маршрутизации обоими способами. Вот пример таблицы полученной с помощью оснастки «Маршрутизация и удаленный доступ»:

Теперь то же – при помощи route.exe. В окне командной строки запустим команду route print:

Обратите внимание:

  •  В таблице гораздо больше строк, чем ожидалось
  •  Таблицы, полученные различными средствами НЕ совпадают!

Проанализируем содержимое каждой строки таблицы маршрутизации.

Начнем с анализа таблицы маршрутизации, выдаваемой утилитой route.exe. Рассмотрим первую и четвертую строку таблицы. В этих строках как раз и описаны маршруты в подключенные сети в том виде, в котором мы ожидали их увидеть. 

Теперь рассмотрим строку номер 2. Так как маска в этой строке 255.255.255.255, то при наложении этой маски на адрес получателя из принятого пакета в результате операции умножения по модулю два получится тот же адрес, что и адрес получателя из принятого пакета. Следовательно, эта строка описывает обработку пакета с единственным адресом получателя – 1.0.0.1, а этот адрес – и есть адрес интерфейса маршрутизатора. Что маршрутизатор должен сделать с пакетом, предназначенным именно его порту (предназначенном не на канальном уровне, а именно на сетевом уровне)? Из таблицы следует, что данный пакет следует передать интерфейсу с адресом 127.0.0.1, а это как раз и есть интерфейс, существующий у нашего маршрутизатора (исходя из таблицы интерфейсов) и называющийся «Замыкание на себя». Т.е. таким образом в таблице маршрутизации описывается, что данный пакет должен быть обработан самим маршрутизатором как получателем пакета. Можно представить себе это следующим образом: интерфейс «Замыкание на себя» - это тот интерфейс, с помощью которого пакеты «выводятся» из обработки блоком маршрутизации компьютера под управлением Windows и обрабатываются уже как поступившие просто на узел 1.0.0.1. Фактически, любой маршрутизатор, это еще и несколько «узлов» сети, имеющих свои IP адреса, поэтому маршрутизатор должен и обрабатывать пакеты, адресованные лично ему. В маршрутизаторе Windows это реализовано с помощью специального интерфейса «Замыкание на себя» и специальных записей в таблице маршрутизации. В других маршрутизаторах нам возможно не удастся увидеть строк, подобных строке номер 2, однако и такие маршрутизаторы, разумеется, обрабатывают макеты, предназначенные его портам. Это – всего лишь вопрос формы, реализации, но не вопрос содержания. Маршрутизатор в Windows для каждой логики обработки пакетов имеет свою строку в таблице маршрутизации:

  •  Пакеты в подключенные сеть пересылаются на канальном уровне получателям – есть строка о подключенной сети, где адрес следующего маршрутизатора – адрес своего интерфейса.
  •  Пакеты, посланные интерфейсам маршрутизатора никуда не передаются, обрабатываясь в самом маршрутизаторе – есть строка о каждом интерфейсе маршрутизатора, где адрес следующего маршрутизатора 127.0.0.1.

Очевидно, что строки 2 и 5 однотипны – строка 5 описывает тоже самое, нор для другого интерфейса маршрутизатора.

Теперь рассмотрим строки 3 и 6. Так как маска подсети в строке 255.255.255.255, то адрес получателя должен быть в точности равен 1.255.255.255 (2.255.255.255 для второго интерфейса). Что за пакеты с таким адресом получателя? Очевидно, это широковещательные пакеты в подключенные сети. Как обрабатываются такие пакеты транзитными маршрутизаторами, не подключенными к конечным сетям? Точно так же, как и обычные пакеты в сети – такой пакет маршрутизируется в соответствии с номером сети, извлекаемым из него при помощи маски транзитными маршрутизаторами, и поступает на маршрутизатор, подключенный к целевой сети точно так же как и обычный пакет. Как такой пакет обрабатывает подключенный к сети маршрутизатор? Так же как обычный, не широковещательный пакет? Нет, такой пакет посылается в целевую сеть с аппаратным адресом FF:FF:FF:FF:FF:FF, его получают все адаптеры целевой сети и таким образом обеспечивается широковещание в выбранной сети. Как видно, такие широковещательные пакеты для всех транзитных узлов, сетей и маршрутизаторов являются обычными пакетами и не нарушают работы составной сети, а доставляются широковещательно только в сети – получателе. Это означает, что такие пакеты не представляют угрозы всей сети в целом, а одна локальная сеть вполне может справится с широковещанием, следовательно отправка таких пакетов не нарушает концепций составной сети, высказанных нами на первом занятии. Так как такие пакеты обрабатываются маршрутизаторами особым образом (отсылаются по МАС адресу FF:FF:FF:FF:FF:FF), а не посылаются по МАС адресу следующего маршрутизатора, или на свой интерфейс «Замыкание на себя», то и для обработки таких пакетов в таблице  маршрутизации Windows предусмотрены отдельные записи. 

Таким образом, в маршрутизаторе Windows для каждой подключенной сети в таблице маршрутизации делается автоматически три записи:

  •  Маршрут в подключенную сеть – пакет будет отправлен на канальном уровне по МАС адресу истинного получателя
  •  Маршрут к порту в подключенной сети – пакет будет передан интерфейсу «Замыкание на себя», т.е. его содержимое будет обработано стеком локально
  •  Широковещательный маршрут в подключенную сеть – пакет будет передан к кадре канального ровня с широковещательным адресом получателя.

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

Рассмотрим следующую запись, номер 7. Эта запись говорит о том, что все пакеты, имеющие адрес получателя из зарезервированного диапазона 127.0.0.0/8 необходимо отправлять на интерфейс 127.0.0.1, т.е. на свой собственный интерфейс «Замыкание на себя». Если рассматривать «Замыкание на себя» как полноценный интерфейс маршрутизатора, то по сети маршрутизатор подключен к еще одной сети, сети 127.0.0.0. Тогда можно ожидать, что и про эту «подключенную» сеть должно быть три записи а не одна, но это снова таки вопрос формы. Кстати, несколько забегая вперед, при анализе таблицы маршрутизации, выдаваемой оснасткой «Маршрутизация и удаленный доступ к сети» будет видно, что в этой таблице интерфейс «Замыкание на себя» рассматривается с точки зрения записей в таблице маршрутизации как самый обычный  интерфейс, через который подключена сеть 127.0.0.0, что снова таки показывает, что рассматриваемые нами записи – скорее форма, удобная разработчику, так как и без подобных записей в таблице маршрутизации многие другие маршрутизаторы разумеется правильно обрабатывают пакеты в сеть 127.0.0.0.

 

Теперь сравним уже рассмотренную часть таблицы, выдаваемой утилитой route.exe с таблицей, выдаваемой оснасткой «Маршрутизация и удаленный доступ к сети». В этой таблице мы видим, что про ТРИ интерфейса (два физических и интерфейс «Замыкание на себя») есть по ДВЕ однотипные записи – маршрут в сеть и маршрут к узлу, записей об обработке широковещательных пакетов в сети НЕТ. Это наводит на следующие мысли:

  •  Ни то ни другое – НЕ таблица маршрутизации. И таблица, выдаваемая утилитой route.exe и таблица, выдаваемая оснасткой «Маршрутизация и удаленный доступ к сети» это лишь отображение той таблицы маршрутизации,  которая хранится в памяти маршрутизатора, причем процесс маршрутизации описывается не только самой таблицей, но кодом программного обеспечения маршрутизатора, что затрудняет построение на экране истинной таблицы маршрутизации.
  •  Обе «таблицы маршрутизации» - лишь некий способ предоставить администратору форму, наполнив ее некоторым содержанием, причем сделано это различными способами.

Рассмотрим записи номер 8 и 9. Каким должен быть адрес получателя, чтобы пакет с таким адресом был обработан строками 8 или 9?

Номер сети:  11100000.00000000.00000000.00000000

Маска   11100000.00000000.00000000.00000000

Искомый адрес  111ххххх.хххххххх.хххххххх.хххххххх

Это такие адреса, у которых первые три бита – 111, чтобы при наложении битов маски 111 получилось 111, а остальные биты произвольные, так как в маске в остальных позициях нули то, что будет в соответствующих позициях в адресе получателя не важно. Что это за адреса, у которых первые три бита нули? Очевидно это агрегированные адреса класса D (1110xxxxxxxx) и E (1111xxxxxxxx). На самом деле в таблице маршрутизации, выдаваемой утилитой route.exe есть ошибка – правильно эти строки описаны в той таблице, которую выдает оснастка: 224.0.0.0/240.0.0.0. В таком виде эти две строки описывают обработку пакетов в сети класса D, т.е. пакетов, направленных по групповым адресам. Маршруты же в сети класса E не имеют смысла – такие номера сетей являются зарезервированными и пакеты в эти сети отбрасываются всеми маршрутизаторами (за исключением специального адреса 255.255.255.255, о котором пойдет речь особо). Мы пока не рассматривали обработку групповых пакетов, а эти две строки как раз используются маршрутизатором для обработки пакетов посланных по групповым адресам (адресам класса D).

 

Рассмотрим последнюю строку в таблице маршрутизации, выдаваемой утилитой route.exe. В таблице маршрутизации, выдаваемой оснасткой «Маршрутизация и удаленный доступ к сети» аналогичных записей две – по одной на каждый интерфейс,  в этом заключается еще одна неточность в таблице, выдаваемой утилитой route.exe. Как уже ясно из проведенного ранее анализа, данная строка (строки ) описывает обработку маршрутизатором пакетов посланных по адресу 255.255.255.255, т.е. по адресу ограниченного широковещания. Здесь есть важный момент – нами говорилось, что пакеты, посланные по такому адресу являются ограниченно широковещательными, предназначены только для узлов своей сети и поэтому не могут маршрутизироваться. Однако существует исключительная ситуация, при которой такие пакеты особым образом обрабатываются маршрутизатором, но речь об этом пойдет позже.

 

Из содержимого рассмотренных выше таблиц маршрутизации, полученных двумя способами следует:

  •  У Windows существует алгоритм маршрутизации и таблица маршрутизации, они очень тесно связаны, то, что под видом таблицы маршрутизации выдается обоими средствами, встроенными в Windows – лишь некая форма представления таблицы маршрутизации (и отчасти алгоритма работы маршрутизатора)
  •  Таблицы маршрутизации, выдаваемые обоими средствами имеют следующие отличия:
    •  В таблице, выдаваемой route.exe о каждом физическом интерфейсе три записи (в сеть, к самому интерфейсу и широковещание)
    •  В таблице, выдаваемой оснасткой «Маршрутизация и удаленный доступ к сети» о каждом физическом интерфейсе две записи (в сеть и к самому интерфейсу)
    •  В таблице, выдаваемой route.exe об интерфейсе «Замыкание на себя» одна запись (в сеть)
    •  В таблице, выдаваемой оснасткой «Маршрутизация и удаленный доступ к сети» об интерфейсе «Замыкание на себя», как и физическом интерфейсе две записи (в сеть и к самому интерфейсу)
    •  В таблице, выдаваемой route.exe маршруты для обработки групповых пакетов содержат неверную маску /3, вместо /4
    •  В таблице, выдаваемой route.exe запись о маршрутах для ограниченно широковещательных пакетов одна (для первого интерфейса), в таблице, выдаваемой оснасткой «Маршрутизация и удаленный доступ к сети» такие маршруты описаны для каждого физического интерфейса.

  •  Не смотря на разницу маршрутных таблиц, выдаваемых разными инструментами, нельзя говорить о двух таблицах маршрутизации – имеют место две ФОРМЫ выдачи таблицы маршрутизации
  •  Не смотря на сложности связанные с дополнительными записями в нашем случае, во многих аппаратных и программных маршрутизаторах всех этих изначально неожиданных записей нет, но функциональность от этого не страдает, просто функциональность этих маршрутизаторов реализована таким образом, что посторонние записи в таблице маршрутизации не фигурируют.
  •  Все перечисленные сложности касаются только подключенных сетей, в любом случае при добавлении маршрутов в удаленные сети нужно будет добавлять только одну запись.


 

А также другие работы, которые могут Вас заинтересовать

5365. Уровни познания. Эмпирическое и теоретическое исследование 67 KB
  Уровни естественнонаучного познания Изучение естествознания нужно не только для того, чтобы мы как культурные люди знали и разбирались в его результатах, но и для понимания самой структуры нашего мышления. Итак, мы отправляемся в безбрежное море поз...
5366. Механизм излучения. Виды спектральных анализов 34.44 KB
  Спектр - это разложение света на составные части, лучи разных цветов. Метод исследования химического состава различных веществ по их линейчатым спектрам испускания или поглощения называют спектральным анализом. Для спектрального анализ...
5367. Составление гидравлической схемы и рассчет привода волочно-пакетирущей машины 159.5 KB
  Исходные данные для проектирования Валочно-пакетирующая машина. Поворот платформы. Нагрузка на штоке гидроцилиндра - Т=130 (кН) Скорость движения штока цилиндра – V=24 (м/с) Температура окружающей среды...
5368. Проектирование агрегатного участка и повышение технологического процесса в агрегатном участке 950 KB
  Транспортный комплекс Республики Беларусь занимает исключительно важное место в жизнеобеспечении ее многоотраслевой экономики и реализации социальной политики государства. Устойчивое и эффективное его функционирование является необходимым у...
5369. Метод оценки загрязнения атмосферного воздуха автомобильным транспортом с использованием геоинформационных систем 669.5 KB
  Актуальность темы В 2007 году выбросы вредных (загрязняющих) веществ в атмосферный воздух на территории Российской Федерации достигли 16,3 млн. тонн при неуклонном росте объема выбросов с 1997 г. В большинстве городов вкл...
5370. Проектирование техпроцесса изготовления детали ось 97 KB
  Целью представленного курсового проекта являлось проектирование техпроцесса изготовления детали ось. В результате был разработан техпроцесс, состоящий из девяти операций, приведены расчеты режимов резания, припусков, дано описание и расче...
5371. Основы внешнеэкономической деятельности 38 KB
  Определите круг вопросов, относящихся к компетенции федеральных органов. В компетенции федеральных органов решение следующих вопросов: Определение основных принципов осуществления ВЭД и внешнеэкономической политики России в целом ...
5372. Коллоидная химия. Конспект лекций 1.83 MB
  Коллоидная химия Коллоидные системы и предмет коллоидной химии Коллоидные системы Историческая справка Первоначально коллоидная химия была лишь главой физической химии. Теперь это самостоятельная дисциплина со своим кругом идей...
5373. Конкурентоспособность промышленной продукции и пути ее достижения 48.1 KB
  Данная работа посвящена проблеме достижения конкурентоспособности продукции предприятия. Рассмотрены этапы жизненного цикла продукции от ее разработки до упадка. Проведен анализ стратегии поведения служб фирмы на этих этап...