ТОП 10:

Разрешение адресов в IP-сетях



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

Протокол ARP

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

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

Таблица 7 Пример ARP таблицы

IP адрес МАС адрес Тип записи
192.168.31.20 008045А21235 динамический
192.169.31.45 00806527ЕВ16 динамический
192.168.31.12 03075А448277 статический

Порядок разрешения локального адреса следующий.

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

Система DNS

Другая распространенная задача разрешения адресов это определение IP адреса узла назначения по известному доменному имени этого узла. Эта задача возникает всякий раз, когда пользователь обращается к другому компьютеру с использованием его символьного имени (ведь именно для этого эти имена и были созданы). Однако использовать в этом случае широковещательный принцип определения адреса (как в ARP) невозможно. При разрешении доменных имен используется специальная централизованная служба: система доменных имен – DNS (Domain Name System).

Работа DNS основана на использовании специальных DNS- серверов – узлов, которые хранят специальные таблицы соответствия IP- адресов и доменных имен. DNS серверы распределены по доменам и каждый из них контролирует домен своего уровня. Таблицы соответствия пополняются при регистрации в домене новых узлов или поддоменов. Кроме того, каждый DNS сервер содержит адреса DNS серверов всех своих поддоменов, а также кэш, содержащий результаты запросов к нему.

Процедура разрешения доменного имени следующая:

· На каждом компьютере работает DNS клиент. При необходимости разрешения доменного имени, этот клиент отправляет запрос к локальному DNS серверу (обслуживающему его домен).

· Если DNS сервер знает ответ (запрашиваемый адрес относится к этому домену или необходимая информация есть в кэше сервера), то он отправляет ответ запросившему его узлу.

· В противном случае DNS сервер запрашивает корневой DNS сервер, указывая ему полное доменное имя.

· Корневой DNS сервер возвращает адрес следующего DNS сервера, обслуживающего домен первого уровня, указанный в запросе.

· Локальный DNS сервер запрашивает сервер первого уровня. Если тот не может разрешить запрос, то возвращает адрес DNS сервера второго уровня и т.п.

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

Протокол IP

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

IP пакет состоит из заголовка (20 байт) и поля данных, в котором содержится сегмент, переданный транспортным протоколом (TCP или UDP). Формат IP пакета показан в таблице.

Таблица 8.

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
Версия Длина заг. Тип сервиса Общая длина пакета
Идентификатор пакета флаги Смещение фрагмента
Время жизни Протокол Контрольная сумма заголовка
IP адрес источника
IP адрес назначения
Опции
данные
           

Функции полей заголовка следующие:

Версия (4 бита) – определяет версию протокола IP. Сейчас – 4.

Длина заголовка (4 бита) - задает длину IP заголовка в 32 разрядных словах. Стандартный заголовок содержит 20 байт (значение 5).

Тип сервиса (1 байт) – 3 первых бита: приоритет пакета (0 – самый низкий, 7-самый высокий). Биты со 2 по 7 определяют критерий выбора маршрута:

0000 – по умолчанию;

0001 – минимальная стоимость;

0010 – максимальная надежность;

0100 – максимальная пропускная способность;

1000 – минимальная задержка;

1111 – максимальная защита.

Общая длина (2 байта) – содержит общую длину пакета, включая заголовок и данные.

Идентификатор (2 байта) – содержит уникальный номер пакета, необходимый при сборке пакета после фрагментации.

Флаги (3 бита) – содержит биты управления процессом фрагментации. Имеют следующие значения:

бит 1 – не используется,

бит 2 –запрет фрагментации,

бит 3 – дальнейшие фрагменты (не последний фрагмент дейтаграммы)

Смещение фрагмента (13 бит) - определяет позицию (в октетах байтов) текущего фрагмента относительно начала оригинального пакета.

Время жизни (1 байт)– задает число маршрутизаторов, которое может быть пройдено пакетом до места назначения.

Протокол (1 байт) – идентификатор протокола верхнего уровня (например: 6 – ТСР, 17 – UDP).

Контрольная сумма заголовка (2 байта) – содержит значение контрольной суммы для заголовка (без учета поля данных).

IP адрес источника (4 байта) – идентифицирует узел, отправивший пакет.

IP адрес назначения (4 байта) – идентифицирует узел, которому направляется пакет.

Опции (переменной длины) – может содержать до 16 дополнительных элементов со служебной информацией, например для записи маршрута при маршрутизации от источника, для временных отметок и т.п. В случае использования этого поля размер заголовка будет более 20 байт и соответственно изменится значение в поле длина заголовка.

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

В заголовке существует параметр время жизни пакета. Максимальное значение – 255. Это число устанавливается при создании пакета. Каждый маршрутизатор вычитает из него по единице. Если на очередном маршрутизаторе после этого преобразования время жизни будет равно 0, этот пакет будет отброшен. Таким образом, в сети избавляются от потерянных и зациклившихся пакетов.

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

Фрагментация IP пакетов

Как указывалось выше, протокол IP разрабатывался как универсальный протокол сетевого уровня, способный работать в интерсети, состоящей из множества сетей с различными технологиями. Однако каждая технология канального уровня имеет свои ограничения. В частности это касается ограничения на размеры кадров, которые могут передаваться в локальной сети. В каждой технологии определен параметр MTU (Maximum Transfer Unit) – максимальный передаваемый блок, который определяет размер максимального кадра, который может быть передан через локальную сеть. Так в технологии Ethernet MTU равно 1500 байт, в сети FDDI – 4096 байт, а в сети Х.25 – 128 байт. Поскольку при создании пакета на узле отправителе заранее не известно через какие сети он будет проходить, то возникает задача разбиения пакетов на несколько частей при передаче их из сетей с большим значением MTU в сети с меньшим значением MTU. Этот процесс называется фрагментацией и выполняется на промежуточных маршрутизаторах, связывающих сети.

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

· значение поля общей длины изменяется в зависимости от размера данного фрагмента;

· бит 3 поля флагов устанавливается в 1, указывая, что далее будут еще фрагменты (кроме последнего фрагмента);

· величина смещения определяет смещение поля данных каждого фрагмента относительно начала исходного пакета.

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

В заголовке пакета может быть указан запрет на его фрагментацию (второй бит поля флагов). В этом случае маршрутизаторы не проводят фрагментацию данного пакета. Если следующая сеть – с малым MTU и пакет не может быть через нее передан без фрагментации этот пакет уничтожается и узлу-источнику передается ICMP сообщение.

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

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

Маршрутизация в IP-сетях

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

Таблица 9. Таблица маршрутизации для М1

Network Address Netmask Gateway address Interface Metric
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1
224.0.0.0 224.0.0.0 200.13.30.5 200.13.30.5
224.0.0.0 224.0.0.0 60.0.45.80 60.0.45.80
224.0.0.0 224.0.0.0 198.145.22.12 198.145.22.12
255.255.255.255 255.255.255.255 200.13.30.5 200.13.30.5
200.13.30.5 255.255.255.255 127.0.0.1 127.0.0.1
198.145.22.12 255.255.255.255 127.0.0.1 127.0.0.1
60.0.45.80 255.255.255.255 127.0.0.1 127.0.0.1
200.13.30.0 255.255.255.0 200.13.30.5 200.13.30.5
198.145.22.0 255.255.255.0 198.145.22.12 198.145.22.12
60.0.0.0 255.0.0.0 60.0.45.80 60.0.45.80
130.38.0.0 255.255.0.0 60.0.215.17 60.0.45.80
150.66.0.0 255.255.0.0 60.0.215.17 60.0.45.80
0.0.0.0 0.0.0.0 60.0.215.17 60.0.45.80

В этой таблице содержатся записи о специальных адресах и адресах сетей в окрестностях данного маршрутизатора. Записи о специальных адресах генерируются автоматически при подключении маршрутизатора. В таблице это первые 5 записей Адрес 255.255.255.255 относится к широковещательным пакетам для непосредственно подключнной локальной сети, а адреса 224.0.0.0 – необходимы для обработки групповых адресов. Далее следуют записи об адресах портов самого маршрутизатора. После этого – 3 записи о непосредственно подключенных к маршрутизатору сетях. Далее следуют записи о сетях, на которые будут передаваться пакеты через транзитный маршрутизатор с адресом 60.0.215.17. Последняя запись – адрес маршрутизатора по умолчанию. На этот адрес будут отправлены пакеты в сети, адреса которых не перечислены в таблице.

 
 

 

 


Рис. Пример IP сети

 

В качестве примера работы IP маршрутизации рассмотрим процесс передачи запроса к некоторому серверу с именем www.hotmail.com.

Пользователь, работая на компьютере с адресом 200.13.30.25 обращается к серверу, указывая его имя www.hotmail.com. Сообщение с запросом передается по стеку протоколов и попадает к модулю IP, который формирует пакет для передачи в сеть. При этом необходимо знать IP адрес узла назначения. Для этого используется система DNS. Если соответствие имени узла и его IP адреса находится в локальном кэше компьютера, то искомый адрес берется оттуда, в противном случае сначала формируется запрос на DNS сервер, который и возвращает искомый IP адрес. Полученный IP адрес узла назначения 170.213.0.66 записывается в заголовке пакета и модуль IP определяет (сравнивая этот адрес и адрес своей сети), что узел назначения находится в другой сети. Значит, необходима маршрутизация. В локальной таблице маршрутизации существует запись о маршрутизаторе по умолчанию. Его адрес – 200.13.30.5. Необходимо сформировать кадр канального уровня своей локальной сети (например, Ethernet) и отправить его маршрутизатору. Однако, для этого необходимо знать МАС адрес этого маршрутизатора в локальной сети. Этот адрес определяется с использованием ARP протокола (либо из локальной таблицы, либо после ARP запроса в сети). Наконец, определив МАС адрес маршрутизатора, IP модуль отправляет пакет на канальный уровень, где формируется кадр. Далее сетевой адаптер получает доступ к среде передачи (в соответствии с технологией локальной сети) и сообщение покидает компьютер пользователя.

Кадр с сообщением получает сетевой адаптер маршрутизатора, подключенный к сети 200.13.30.0, извлекает из него пакет и передает IP модулю маршрутизатора. Этот модуль анализирует заголовок пакета (время жизни, контрольную сумму) на предмет возможного уничтожения сбойного или потерянного пакета. Далее анализируется адресная часть заголовка. Пакет направлен в сеть 170.213.0.0, однако в таблице маршрутизации записи о такой сети нет. Поэтому используется запись по умолчанию (последняя в приведенной выше таблице), которая определяет, следующий маршрутизатор с адресом 60.0.215.17 и свой передающий порт 60.0.45.80. Выясняется – нужно ли фрагментирование пакета при передаче через сеть 60.0.0.0. Далее с помощью ARP протокола определяется МАС адрес следующего маршрутизатора и пакет (или несколько фрагментов пакета) передается на канальный уровень – в сетевой адаптер, подключенный к сети 60.0.0.0. В нем формируется кадр (или кадры для фрагментов пакета) и передается в сеть. Сообщение покидает первый маршрутизатор.

Так исходный пакет внутри кадров каждой из транзитный сетей переходит от одного маршрутизатора к другому, пока не достигнет маршрутизатора, непосредственно подключенного к сети 170.213.0.0. Этот маршрутизатор, получив кадр через один из своих интерфейсов, извлекает пакет (проводит те же проверки, что и предыдущие маршрутизаторы), а затем по адресу сети назначения выясняет, что он непосредственно подключен к этой сети. Поэтому пакет может быть передан компьютеру-адресату. С помощью ARP протокола выясняется МАС адрес, соответсвующий адресу 170.213.0.66, формируется кадр и направляется на этот компьютер.

Сетевой адаптер компьютера назначения получает из сети адресованный ему кадр, извлекает из него пакет и передает его модулю IP. Этот модуль определяет не был ли пакет фрагментирован по пути следования. Если да, то он ожидает получения остальных фрагментов пакета и осуществляет сборку исходного пакета. Из пакета извлекается сегмент транспортного уровня и передается модулю транспортного уровня (указанному в поле протокол заголовка). Далее происходит передача информации выше по стеку протокола TCP/IP пока исходное сообщение не попадет к протоколу HTTP, которому оно и было адресовано. Этот протокол передает сообщение соответствующей прикладной программе (вэб – серверу), в которой оно обрабатывается и формируется ответ. Этот ответ, который и передается обратно – на компьютер пользователя.

Протоколы маршрутизации

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

· автоматически генерируются записи о специальных адресах;

· заносятся вручную администраторами сетей;

· автоматически создаются и модифицируются при помощи специальных протоколов.

Однако, в крупных интерсетях, таких как Интернет, включающих в себя тысячи сетей, невозможно хранить о них информацию в каждом маршрутизаторе. Поэтому такие сети делятся на автономные системы, соединенные между собой магистральными каналами. Такое разделение обеспечивает модульность и масштабируемость больших сетей. В качестве автономной системы может выступать отдельная интерсеть, которая административно управляется какой-либо корпорацией, государственным органом, Интернет - провайдером и т.п. Маршрутизаторы автономных систем называются внутренними шлюзами (interior gateways), а маршрутизаторы с помощью которых происходит подключение автономных систем к магистральным каналам – внешними шлюзами (exterior gateways). Внутренние шлюзы обеспечивают маршрутизацию пакетов внутри автономной системы и передачу пакетов на внешние шлюзы, если он адресован узлу, находящемуся вне этой автономной системы. Внутри автономных систем используются внутренние протоколы маршрутизации: специальные служебные протоколы, предназначенные для формирования и поддержания в актуальном состоянии таблиц маршрутизации. Примерами таких протоколов служат протоколы RIP, OSPF, рассматриваемые в этом разделе. На границах автономных систем располагаются внешние шлюзы, которые обмениваются информацией с другими такими же шлюзами о макро-топологии Интернет с помощью протоколов внешних шлюзов, таких как BGP (Border Gateway Protocol).







Последнее изменение этой страницы: 2016-09-20; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.207.240.35 (0.012 с.)