Адресация в IP-сетях В стеке TCP/IP используется три типа адресов: • физический (МАС-адрес), • сетевой (IP-адрес), • символьный (DNS-имя).
Каждый компьютер в сети TCP/IP имеет адреса трех уровней: • локальный адрес узла, определяемый технологией, с помощью которой построена отдельная сеть, в которую входит данный узел. Для узлов, входящих в локальные сети, — это МАС-адрес сетевого адаптера назначаются производителями оборудования и являются уникальными адресами, так как управляются централизованно. Для всех существую¬щих технологий локальных сетей МАС-адрес имеет формат 6 байтов: старшие 3 байта — идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем. Для узлов, входящих в глобальные сети, такие, как Х.25 или frame relay, локальный адрес назначается администратором глобальной сети; • IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администра-тором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно либо назна¬чен по рекомендации специального подразделения Интернет (Network Information Center, NIC), если сеть должна работать как его состав¬ная часть. Обычно провайдеры услуг Интернета получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Деление IP-адреса на поле номера сети и номера узла — гибкое, и граница между этими полями может устанавливаться весьма произвольно. Узел может входить в несколько IP-сетей. В этом случае узел должен иметь несколько IP-адресов — по числу сетевых связей. Таким образом, IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение; • символьный идентификатор-имя, например, SERV1.IBM.COM. Этот адрес назначается администратором и состоит из нескольких ча¬стей, например имени машины, имени организации, имени домена. Такой адрес, называемый также DNS-именем, используется на при¬кладном уровне, например в протоколах FTP или telnet. IP-адрес имеет длину 4 байта и обычно записывается в виде че-тырех чисел, представляющих значения каждого байта в десятичной форме и разделенных точками, например: 128.10.2.30 — традиционная десятичная форма представления адреса, 10000000 00001010 00000010 00011110 - двоичная форма предста-вления этого же адреса. На рис. показана структура IP-адреса. Адрес состоит из двух логических частей — номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая к номеру узла, определяется значениями первых битов адреса: • если адрес начинается с 0, то сеть относят к классу А, и номер сети занимает один байт, остальные 3 байта интерпретируют как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126 (номер О не используют, а номер 127 зарезервирован для специальных целей, о чем будет сказано ниже.) В сетях класса А число узлов должно быть больше 216, но не превышать 224; • если первые два бита адреса равны 10, то сеть относится к клас-су В и является сетью средних размеров с числом узлов 28 — 216. В сетях класса В под адрес сети и под адрес узла отведено по 16 битов, т. е. по 2 байта; • если адрес начинается с последовательности ПО, то это сеть класса С с числом узлов не больше 28. Под адрес сети отведено 24 бита, а под адрес узла — 8 битов; • если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес — multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес; • если адрес начинается с последовательности НПО, то это адрес класса Е, он зарезервирован для будущих применений. В табл. 6.1 приведены диапазоны номеров сетей, соответствующих каждому классу сетей. В протоколе IP существует несколько соглашений об особой интер-претации IP-адресов: • если IP-адрес состоит только из двоичных нулей: 0000…………………0000 то он обозначает адрес того узла, который сгенерировал этот пакет;
если в поле номера сети стоят нули: 0000…. Номер узла
то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет; • если все двоичные разряды IP-адреса равны единице: 0000…………………………11 то пакет с таким адресом назначения должен рассылаться всем уз¬лам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast); • если в поле адреса назначения стоят сплошные единицы: Номер сети 1111…………..11 то пакет, имеющий такой адрес, рассылается всем узлам сети с задан-ным номером. Такая рассылка называется широковещательным сооб-щением (broadcast); • адрес 127.0.0.1 зарезервирован для организации обратной связи при тестировании работы программного обеспечения узла без реальной отправки пакета по сети. Этот адрес имеет название loopback. Уже упоминавшаяся форма группового IP-адреса — multicast озна-чает, что данный пакет должен быть доставлен сразу нескольким узлам, которые образуют группу с номером, указанным в поле адреса. Узлы сами идентифицируют себя, т. е. определяют, к какой из групп они от¬носятся. Один и тот же узел может входить в несколько групп. Такие сообщения в отличие от широковещательных называют мультивещательными. Групповой адрес не делится на поля номера сети и узла и обрабатывается маршрутизатором особым образом. В протоколе ГР нет понятия широковещательности в том смысле, в котором оно используется в протоколах канального уровня локальных сетей, когда данные должны быть доставлены абсолютно всем узлам. Как ограниченный широковещательный IP-адрес, так и широковеща-тельный IP-адрес имеют пределы распространения в интерсети — они ограничены либо сетью, к которой принадлежит узел — источник па-кета, либо сетью, номер которой указан в адресе назначения. Поэтому деление сети с помощью маршрутизаторов на части локализует широ-ковещательный шторм пределами одной из составляющих общую сеть частей просто потому, что нет способа адресовать пакет одновременно всем узлам всех сетей составной сети. В протоколе IP-адрес узла, т. е. адрес компьютера или порта марш-рутизатора, назначается произвольно администратором сети и прямо не связан с его локальным адресом, как это сделано, например, в про-токоле IPX. Подход, используемый в IP, удобно использовать в крупных сетях и по причине его независимости от формата локального адреса, и по причине стабильности, так как в противном случае, при смене на компьютере сетевого адаптера, это изменение должны были бы учи-тывать все адресаты всемирной сети Интернет (конечно, в том случае, если сеть подключена к Интернету). Локальный адрес используется в протоколе IP только в пределах локальной сети при обмене данными между маршрутизатором и узлом этой сети. Маршрутизатор, получив пакет для узла одной из сетей, не-посредственно подключенных к его портам, должен для передачи паке-та сформировать кадр в соответствии с требованиями принятой в этой сети технологии и указать в нем локальный адрес узла, например его МАС-адрес. В пришедшем пакете этот адрес не указан, поэтому перед маршрутизатором встает задача поиска его по известному IP-адресу, который указан в пакете в качестве адреса назначения. С аналогичной задачей сталкивается и конечный узел, когда необходимо отправить па¬кет в удаленную сеть через маршрутизатор, подключенный к той же локальной сети, что и данный узел. Для определения локального адреса по IP-адресу используется про¬токол разрешения адреса Address Resolution Protocol (ARP). Протокол ARP работает различным образом в зависимости от того, какой прото¬кол канального уровня работает в данной сети — протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещатель¬ного доступа одновременно ко всем узлам сети или же протокол гло¬бальной сети (Х.25, frame relay), как правило, не поддерживающий широковещательный доступ. Существует также протокол, решающий обратную задачу — нахождение IP-адреса по известному локальному адресу. Он называется реверсивный ARP — RARP (Reverse Address Resolution Protocol) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера. В локальных сетях протокол ARP использует широковещательные кадры протокола канального уровня для поиска в сети узла с заданным IP-адресом. Узел, которому нужно выполнить отображение IP-адреса на локаль¬ный адрес, формирует ARP-запрос, вкладывает его в кадр протокола канального уровня, указывая в нем известный IP-адрес, и рассылает запрос широковещательно. Все узлы локальной сети получают ARP-запрос и сравнивают указанный там IP-адрес с собственным. В случае их совпадения узел формирует ARP-ответ, в котором указывает свой IP-адрес и свой локальный адрес и отправляет его уже направленно, так как в ARP-запросе отправитель указывает свой локальный адрес. ARP-запросы и ответы используют один и тот же формат пакета. Так как локальные адреса могут в различных типах сетей иметь различную длину, то формат пакета протокола ARP зависит от типа сети. В глобальных сетях администратору сети чаще всего приходится вручную формировать ARP-таблицы, в которых он задает, например, соответствие IP-адреса адресу узла сети Х.25, который имеет смысл локального адреса. В последнее время наметилась тенденция автома-тизации работы протокола ARP и в глобальных сетях. Для этой цели среди всех маршрутизаторов, подключенных к какой-либо глобальной сети, выделяется специальный маршрутизатор, который ведет ARP-таблицу для всех остальных узлов и маршрутизаторов этой сети. При таком централизованном подходе для всех узлов и маршрутизаторов вручную нужно задать только IP-адрес и локальный адрес выделенно¬го маршрутизатора. Затем каждый узел и маршрутизатор регистрирует свои адреса в выделенном маршрутизаторе, а при необходимости уста-новления соответствия между IP-адресом и локальным адресом узел обращается к выделенному маршрутизатору с запросом и автоматиче-ски получает ответ без участия администратора. Хотя программы могут обращаться к хостам, почтовым ящикам и другим ресурсам по их сетевым адресам, пользователям запоминать их тяжело. На самом деле IP-адресам ставятся в соответствие состоя¬щие из слов синонимы, чтобы пользователю их было легче запоминать. Эти синонимы называются доменными именами. Служба имен доме¬нов (DNS, Domain Name System) — это распределенная база данных, поддерживающая иерархическую систему имен для идентификации уз-лов в сети Интернет. Служба DNS предназначена для автоматического поиска IP-адреса по известному символьному имени узла. Специфи-кация DNS определяется стандартами RFC 1034 и 1035. DNS требует статической конфигурации своих таблиц, отображающих имена ком¬пьютеров в IP-адрес. Протокол DNS является служебным протоколом прикладного уров-ня. Этот протокол несимметричен — в нем определены DNS-серверы и DNS-клиенты. DNS-серверы хранят часть распределенной базы дан-ных о соответствии символьных имен и IP-адресов. Эта база данных распределена по административным доменам сети Интернет. Клиенты сервера DNS знают IP-адрес сервера DNS своего административно¬го домена и по протоколу IP передают запрос, в котором сообщают известное символьное имя и просят вернуть соответствующий ему IP-адрес. Если данные о запрошенном соответствии хранятся в базе данно-го DNS-сервера, то он сразу посылает ответ клиенту, если же нет — то он посылает запрос DNS-серверу другого домена, который может сам обработать запрос либо передать его другому DNS-серверу. Все DNS-серверы соединены иерархически, в соответствии с иерархией доменов сети Интернет. Клиент опрашивает эти серверы имен, пока не найдет нужные отображения. Этот процесс ускоряется из-за того, что серверы имен постоянно кэшируют информацию, предоставляемую по запросам. Клиентские компьютеры могут использовать в своей работе IP-адреса нескольких DNS-серверов для повышения надежности своей работы. База данных DNS имеет структуру дерева, называемого доменным пространством имен, в котором каждый домен (узел дерева) имеет имя и может содержать поддомены. Имя домена идентифицирует его положение в этой базе данных по отношению к родительскому домену, причем точки в имени отделяют части, соответствующие узлам домена. Корень базы данных DNS управляется центром Internet Network Information Center. Домены верхнего уровня назначаются для каждой страны, а также на организационной основе. Имена этих доменов долж¬ны следовать международному стандарту ISO 3166. Для обозначения стран используются трехбуквенные и двухбуквенные аббревиатуры, а для различных типов организаций используются следующие аббреви¬атуры: • com — коммерческие организации (например, microsoft.com); • edu — образовательные (например, mit.edu); • gov — правительственные организации (например, nsf.gov); • org — некоммерческие организации (например, fidonet.org); • net — организации, поддерживающие сети (например, nsf.net). Каждый домен DNS администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функ¬ции администрирования этих поддоменов другим организациям. Каждый домен имеет уникальное имя, а каждый из поддоменов имеет уни¬кальное имя внутри своего домена. Имя домена может содержать до 63 символов. Каждый хост в сети Интернет однозначно определяется своим полным доменным именем (fully qualified domain name, FQDN), которое включает имена всех доменов по направлению от хоста к кор-ню. Пример полного DNS-имени: citint.dol.ru. Как уже было сказано, IP-адреса могут назначаться администрато-ром сети вручную. Это представляет для администратора утомитель¬ную процедуру. Ситуация усложняется еще тем, что многие пользова¬тели не обладают достаточными знаниями для того, чтобы конфигури¬ровать свои компьютеры для работы в интерсети и должны поэтому полагаться на администраторов. Протокол Dynamic Host Configuration Protocol (DHCP) был разра-ботан для того, чтобы освободить администратора от этих проблем. Основным назначением DHCP является динамическое назначение IP-адресов. Однако, кроме динамического, DHCP может поддерживать и более простые способы ручного и автоматического статического на-значения адресов. В ручной процедуре назначения адресов активное участие прини-мает администратор, который предоставляет DHCP-серверу информа-цию о соответствии IP-адресов физическим адресам или другим иден-тификаторам клиентов. Эти адреса сообщают клиентам в ответ на их запросы к DHCP-серверу. При автоматическом статическом способе DHCP-сервер присваи-вает IP-адрес (и, возможно, другие параметры конфигурации клиента) из пула наличных IP-адресов без вмешательства оператора. Границы пула назначаемых адресов задает администратор при конфигурирова-нии DHCP-сервера. Между идентификатором клиента и его IP-адресом по-прежнему, как и при ручном назначении, существует постоянное соответствие. Оно устанавливается в момент первичного назначения сервером DHCP IP-адреса клиенту. При всех последующих запросах сервер возвращает тот же самый IP-адрес. При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на ограниченное время, что дает возможность впослед-ствии повторно использовать IP-адреса другими компьютерами. Дина-мическое разделение адресов позволяет строить IP-сеть, число узлов в которой намного превышает число имеющихся в распоряжении адми-нистратора IP-адресов. DHCP обеспечивает надежный и простой способ конфигурации се¬ти TCP/IP, гарантируя отсутствие конфликтов адресов за счет центра-лизованного управления их распределением. Администратор управляет процессом назначения адресов с помощью параметра «продолжитель¬ности аренды» (lease duration), которая определяет, как долго компью¬тер может использовать назначенный IP-адрес, перед тем как снова запросить его от сервера DHCP в аренду. Примером работы протокола DHCP может служить ситуация, когда компьютер, являющийся клиентом DHCP, удаляется из подсети. При этом назначенный ему IP-адрес автоматически освобождается. Когда компьютер подключается к другой подсети, то ему автоматически на-значается новый адрес. Ни пользователь, ни сетевой администратор не вмешиваются в этот процесс. Это свойство очень важно для мобильных пользователей. Протокол DHCP использует модель клиент-сервер. Во время старта системы компьютер-клиент DHCP, находящийся в состоянии «иници-ализация», посылает сообщение discover (исследовать), которое широ-ковещательно распространяется по локальной сети и передается всем DHCP-серверам частной интерсети. Каждый DHCP-сервер, получив¬ший это сообщение, отвечает на него сообщением offer (предложение), которое содержит IP-адрес и конфигурационную информацию. Компьютер-клиент DHCP переходит в состояние «выбор» и соби-рает конфигурационные предложения от DHCP-серверов. Затем он вы-бирает одно из этих предложений, переходит в состояние «запрос» и отправляет сообщение request (запрос) тому DHCP-серверу, чье пред-ложение было выбрано. Выбранный DHCP-сервер посылает сообщение DHCP-acknowledgment (подтверждение), содержащее тот же IP-адрес, который уже был послан ранее на стадии исследования, а также параметр аренды для этого адреса. Кроме того, DHCP-сервер посылает параметры сетевой конфигурации. После того, как клиент получит это подтверждение, он переходит в состояние «связь», находясь в котором он может принимать участие в работе сети TCP/IP. Компьютеры-клиенты, которые имеют локальные диски, сохраняют полученный адрес для использования при последующих стартах системы. При приближении момента истечения срока аренды адреса компьютер пытается обновить параметры аренды у DHCP-сервера, а если этот IP-адрес не может быть выделен снова, то ему возвращается другой IP-адрес. В протоколе DHCP описывается несколько типов сообщений, ко-торые используются для обнаружения и выбора DHCP-серверов, для запросов информации о конфигурации, для продления и досрочного прекращения лицензии на IP-адрес. Все эти операции направлены на то, чтобы освободить администратора сети от утомительных рутинных операций по конфигурированию сети. Однако использование DHCP несет в себе и некоторые пробле¬мы. Во-первых, это проблема согласования информационной адресной базы в службах DHCP и DNS. Как известно, DNS служит для пре¬образования символьных имен в IP-адреса. Если IP-адреса будут ди¬намически изменяться сервером DHCP, то эти изменения необходимо также динамически вносить в базу данных сервера DNS. Хотя про¬токол динамического взаимодействия между службами DNS и DHCP уже реализован некоторыми фирмами (так называемая служба Dynamic DNS), стандарт на него пока не принят. Во-вторых, нестабильность IP-адресов усложняет процесс управле-ния сетью. Системы управления, основанные на протоколе SNMP, раз-работаны с расчетом на статичность IP-адресов. Аналогичные пробле-мы возникают и при конфигурировании фильтров маршрутизаторов, которые оперируют с IP-адресами. Наконец, централизация процедуры назначения адресов снижает надежность системы: при отказе DHCP-сервера все его клиенты ока-зываются не в состоянии получить IP-адрес и другую информацию о конфигурации. Последствия такого отказа могут быть уменьшены путем использования в сети нескольких серверов DHCP, каждый из которых имеет свой пул IP-адресов.
|