|
Книгу перевёл в HTML
студент группы Ми-501К
Макиевский А. Н.
5.3.4. Маршрутизация без
использования масок
Рассмотрим на примере IP-сети (рис.
5.14) алгоритм работы средств сетевого уровня
по продвижению пакета в составной сети. При
этом будем считать, что все узлы сети,
рассматриваемой в примере, имеют адреса,
основанные на классах, без использования
масок. Особое внимание будет уделено
взаимодействию протокола IP с протоколами
разрешения адресов ARP и DNS.
Рис. 5.14. Пример взаимодействия
компьютеров через сеть
Итак, пусть пользователь
компьютера 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-адресов.
Такая таблица хранится чаще всего в виде
текстового файла простой структуры - каждая
его строка содержит запись об одном
символьном имени и его IP-адресе. В ОС Unix
такой файл традиционно носит имя hosts и
находится в каталоге /etc.
Будем считать, что компьютер
dt.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. Так как адрес сети
назначения (142.06.0.0) не совпадает с адресом
(194.87.23.0) сети, которой принадлежит компьютер-отправитель,
то маршрутизация необходима.
Компьютер cit.dol.ru начинает
формировать кадр Ethernet для отправки IP-пакета
маршрутизатору по умолчанию, IP-адрес
которого известен - 194.87.23.1, но неизвестен
МАС - адрес, необходимый для перемещения
кадра в локальной сети. Для определения МАС
- адреса маршрутизатора протокол IP
обращается к протоколу ARP, который
просматривает ARP-таблицу. Если в последнее
время компьютер cit.dol.ru выполнял какие-либо
межсетевые обмены, то скорее всего искомая
запись, содержащая соответствие между IP- и
МАС - адресами маршрутизатора по умолчанию
уже находится в кэш-таблице протокола ARP.
Пусть в данном случае нужная запись была
найдена именно в кэш-таблице:
194.87.23.1 008048ЕВ7Е60
Обозначим найденный МАС - адрес
008048ЕВ7Е60 в соответствии с номером
маршрутизатора и его порта через МАС11.
В результате компьютер cit.dol.ru отправляет
по локальной сети пакет, упакованный в кадр
Ethernet, имеющий следующие поля:
Кадр принимается портом 1
маршрутизатора 1 в соответствии с
протоколом Ethernet, так как МАС - узел этого
порта распознает свой адрес МАС11. Протокол
Ethernet извлекает из этого кадра IP-пакет и
передает его программному обеспечению
маршрутизатора, реализующему протокол IP.
Протокол IP извлекает из пакета адрес
назначения 142.06.13.14 и просматривает записи
своей таблицы маршрутизации. Пусть
маршрутизатор 1 имеет в своей таблице
маршрутизации запись 142.06.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 должен определить МАС - адрес
следующего маршрутизатора по известному IP-адресу
135.12.0.11. Для этого он обращается к протоколу
ARP. Допустим, что нужной записи в кэш-таблице
не оказалось, тогда в сеть FDDI отправляется
широковещательный ARP-запрос, содержащий
наряду с прочей следующую информацию.
Порт 1 маршрутизатора 2 распознает
свой IP-адрес и посылает ARP-ответ по адресу
запросившего узла:
Теперь, зная МАС - адрес следующего
маршрутизатора 00E0F77F51A0, маршрутизатор 1
отсылает кадр FDDI по направлению к
маршрутизатору 2. Заметим, что в поле IP-адреса
назначения никаких изменений не произошло.
Аналогично действует модуль IP
на маршрутизаторе 2. Получив кадр FDDI, он
отбрасывает его заголовок, а из заголовка IP
извлекает IP-адрес сети назначения и
просматривает свою таблицу маршрутизации.
Там он может найти запись о конкретной сети
назначения:
142.06.0.0 203.21.4.12 2
или при отсутствии такой записи
будет использована запись о маршрутизаторе
по умолчанию:
default 203.21.4.12 2.
Определив IP-адрес следующего
маршрутизатора 203.21.4.12, модуль IP формирует
кадр Ethernet для передачи пакета
маршрутизатору 3 по сети Ethernet. С помощью
протокола ARP он находит МАС - адрес этого
маршрутизатора и помещает его в заголовок
кадра. IP-адрес узла назначения, естественно,
остается неизменным.
Наконец, после того как пакет
поступил в маршрутизатор сети назначения -
маршрутизатор 3, - появляется возможность
передачи этого пакета компьютеру
назначения. Маршрутизатор 3 определяет, что
пакет нужно передать в сеть 142.06.0,0, которая
непосредственно подключена к его первому
порту. Поэтому он посылает ARP-запрос по сети
Ethernet с IP-адресом компьютера sl.msk.su. ARP-ответ
содержит МАС - адрес конечного узла, который
модуль IP передает канальному протоколу для
формирования кадра Ethernet:
Сетевой адаптер компьютера
sl.msk.su захватывает кадр Ethernet, обнаруживает
совпадение МАС - адреса, содержащегося в
заголовке, со своим собственным адресом и
направляет его модулю IP. После анализа
полей IP-заголовка из пакета извлекаются
данные, которые в свою очередь содержат
сообщение выше лежащего протокола.
Поскольку в данном примере рассматривается
обмен данными по протоколу FTP, который
использует в качестве транспортного
протокола TCP, то в поле данных IP-пакета
находится ТСР - сегмент. Определив из TCP-заголовка
номер порта, модуль IP переправляет сегмент
в соответствующую очередь, из которой
данный сегмент попадет программному модулю
FTP-сервера.
|