Маршрутизация пакетов в IP-сетях без использования масок

Рассмотрим на примере составной сети работу средств сетевого уровня по продвижению пакета в этой составной сети. Будем считать, что все узлы составной сети имеют IP-адреса, основанные на классах «A», «B» или «C», и деление этих IP-адресов на IP-подсеть и IP-адреса узла в данной IP-подсети будет осуществляться в соответствии с базовыми масками классов IP-адресации. Это означает, что фактически для продвижения пакетов маски можно не использовать.

Итак, пусть пользователь компьютера «cit.dol.ru», находящегося в сети Ethernet и имеющего IP-адрес «194.87.23.17» (адрес класса «С»), обращается по протоколу FTP к компьютеру «sl.msk.su», принадлежащему другой сети Ethernet и имеющему IP-адрес «142.06.13.14» (адрес класса «В»):

«> FTP sl.msk.su».

Протокол FTP упаковывает свое сообщение в сегмент транспортного протокола TCP, который в свою очередь помещает свой сегмент в поле данных протокола IP. В заголовке IP-пакета должен быть указан IP-адрес узла назначения, поскольку пользователь компьютера «cit.dol.ru» указал доменное имя компьютера «sl.msk.su», то стек TCP/IP должен определить IP-адрес узла назначения самостоятельно.

При конфигурировании стека TCP/IP в компьютере с доменным именем «cit.dol.ru» был задан собственный IP-адрес сетевого интерфейса этого компьютера, IP-адрес маршрутизатора по умолчанию и IP-адрес DNS-сервера. Модуль (протокол) IP может сделать запрос к серверу DNS, но обычно сначала просматривается локальная таблица соответствия символьных (доменных) имен и IP-адресов (соответствующий текстовый файл HOSTS находится на этом компьютере и представлен в папке /etc (Linux)). Будем считать, что компьютер «cit.dol.ru» имеет файл HOSTS, в котором присутствует запись:

«142.06.13.14     sl.msk.su».

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

В этой ситуации протокол IP компьютера «cit.dol.ru» будет маршрутизировать пакеты с адресом назначения «142.06.13.14», поскольку адрес IP-подсети назначения «142.06.0.0» не равен IP-адресу подсети «194.87.23.0» (IP-подсети с указанным адресом принадлежит компьютер-отправитель).

Компьютер «cit.dol.ru» начинает формировать кадр Ethernet для отправки IP-пакета маршрутизатору по умолчанию, IP-адрес которого известен «194.87.23.1», но неизвестен MAC-адрес, необходимый для перемещения кадра в локальной сети. Для определения MAC-адреса маршрутизатора протокол IP обращается к протоколу ARP, который просматривает ARP-таблицу. Если в последнее время компьютер «cit.dol.ru» выполнял какие-либо межсетевые обмены, то запись, содержащая соответствие между IP- и MAC- адресами маршрутизатора по умолчанию, уже находится в кэш-таблице протокола ARP в виде:

«194.87.23.1     00:80:48:EB:7E:60».

Обозначим этот MAC-адрес в соответствии с номером маршрутизатора и его порта через «MAC[11]». В результате компьютер «cit.dol.ru» отправляет по локальной сети пакет, упакованный в кадр Ethernet, имеющий следующие поля:

Кадр принимается портом №1 маршрутизатора №1 в соответствии с протоколом Ethernet, так как MAC-узел этого порта распознает свой адрес «МАС[11]». Протокол Ethernet извлекает из этого кадра IP-пакет и передает его программному обеспечению маршрутизатора, реализующему протокол IP. Протокол IP извлекает из пакета адрес назначения «142.06.13.14» и просматривает записи своей таблицы маршрутизации. Пусть этот маршрутизатор имеет в этой таблице следующую запись:

«142.6.0.0     135.12.0.11     2».

Эта запись говорит о том, что пакеты для сети «142.06.0.0» нужно передавать маршрутизатору «135.12.0.11», находящемуся в сети, подключенной к порту №2 маршрутизатора №1.

Маршрутизатор №1 начинает просматривать параметры своего порта №2 и находит, что к нему подключена сеть FDDI. Поскольку сеть FDDI имеет значение MTU большее, чем сеть Ethernet, то фрагментации передаваемого IP-пакета не требуется. Поэтому маршрутизатор №1 просто формирует кадр формата FDDI. На этом этапе протокол IP должен определить MAC-адрес следующего маршрутизатора из таблицы маршрутизатора по известному IP-адресу «135.12.0.11». Для этого он обращается к протоколу ARP. Рассмотрим теперь случай, когда требуемой записи в кэш-таблице не оказалось. Тогда в сеть FDDI отправляется широковещательный ARP-запрос, содержащий следующую информацию:

Порт №1 маршрутизатора №2 распознал в пришедшем кадре FDDI свой IP-адрес и посылает ARP-ответ по MAC-адресу запросившего узла:

Теперь, зная MAC-адрес порта следующего маршрутизатора «00:E0:7F:F7:51:A0», маршрутизатор №1 через порт №2 отсылает кадр FDDI порту №1 маршрутизатора №2.

Аналогично протокол IP действует и на маршрутизаторе №2. Получив на свой первый порт кадр FDDI, он отбрасывает его заголовок, а из заголовка IP извлекает IP-адрес подсети назначения (в соответствии с классом IP-адреса назначения) и начинает просматривать свою таблицу маршрутизации. Пусть, например, протокол IP нашел в этой таблице запись об IP-подсети назначения:

«142.6.0.0     203.21.4.12     2».

При отсутствии такой записи будет использована запись о маршрутизаторе по умолчанию:

«default     203.21.4.12     2».

Определив IP-адрес порта следующего маршрутизатора «203.21.4.12», протокол IP начинает формировать Ethernet кадр для передачи пакета маршрутизатору №3 по сети Ethernet. С помощью протокола ARP он находит MAC-адрес порта этого маршрутизатора и помещает его в заголовок Ethernet кадра. При этом IP-адрес узла назначения в передаваемом кадре остается неизменным.

После того как пакет в составе кадра Ethernet поступает на порт №2 маршрутизатора №3, появляется возможность передачи этого пакета компьютеру назначения «sl.msk.su». Маршрутизатор №3 по IP-адресу назначения определяет, что пакет необходимо передать в IP-подсеть «142.06.0.0», которая непосредственно подключена к его №1 порту, поэтому он посылает ARP-запрос по сети Ethernet с IP-адресом соответствующего интерфейса компьютера «sl.msk.su». ARP-ответ содержит MAC-адрес сетевой карты узла назначения, который протокол IP передает канальному протоколу для формирования Ethernet кадра.

Сетевая карта «sl.msk.su» захватывает кадр Ethernet, обнаруживает совпадения собственного MAC-адреса сетевой карты и MAC-адреса назначения в пришедшем заголовке кадра и направляет его в модуль IP. После анализа полей заголовка пакета протокол IP извлекает из своего поля данных данные, которые содержат сообщение вышележащего протокола. Поскольку в примере рассматривается обмен данными по протоколу FTP, который использует в качестве транспортного протокола TCP, то в поле данных IP-пакета находится TCP-сегмент. Определив из TCP-заголовка номер порта (как правило, это порт 21) модуль IP переправляет TCP-сегмент в соответствующую очередь этого порта, из которой данный сегмент попадает программному модулю FTP-сервера.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: