Вопросы лекции ipадресация Система доменных имен Служба доменных имен Порты ipадресация
Скачать 405.91 Kb.
|
Лекция № 3 «Сетевые службы и приложения» Вопросы лекции: 1. IP-адресация 2. Система доменных имен 3. Служба доменных имен 4. Порты 1. IP-адресация IP-адрес является основным видом адресации в Internet. Он обозначает не только компьютер, но и сегмент сети, в котором находится данный компьютер. Например, адрес 192.123.004.010 соответствует узлу номер 10 в сети 192.123.004. У другого узла в этом же сегменте может быть номер 20 и т.д. Сети и узлы в них - это отдельные объекты с отдельными номерами. IP-адрес - представляет собой 32-разрядное двоичное число (например, 11000000 01111011 00001010). Для удобства оно разбивается на четыре восьмиразрядных поля, называемых октетами. TCP/IP представляет эти двоичные октеты их десятичными эквивалентами (в данном примере это 192.123.004.010), что облегчает использование IP-адресов для человека. IP-адрес удобен для машинной обработки маршрутов. Рис. 9. Общая структура IP-адреса Классы IP-сетей Эти четыре октета в разных сетях обозначают разные вещи. В некоторых организациях создается одна большая сеть, но с миллионами узлов. Здесь первый октет адреса используется для обозначения сети, а остальные три октета - для обозначения отдельных рабочих станций. Такой адрес называют адресом класса А. Самые частые потребители адресов класса А - поставщики сетевых услуг (провайдеры), которые обслуживают очень большие сети с тысячами конечных пунктов. В некоторых организациях могут быть тысячи узлов, включенных в состав нескольких сетей. В таких случаях используются адреса класса В, в которых первые два октета (16 битов) используются для обозначения сети, а последние два - для обозначения отдельных узлов. Наиболее известные потребители адресов класса В - университеты и крупные учреждения. Наконец, наиболее часто используется адрес класса С, в котором первые три октета (или 24 бита) служат для обозначения сегмента, а последний октет - для обозначения рабочих станций. Такие адреса лучше всего подходят для случая, когда имеется множество отдельных сетей, в состав каждой из которых входит всего несколько десятков узлов. Адреса такого типа чаще всего встречаются в локальных сетевых средах, где в одном сетевом сегменте в среднем бывает около 40 узлов. При соединении сети класса А с сетью класса В маршрутизатору необходимо сообщить, как он должен отличать одну сеть от другой. В противном случае он подумает, что трафик, исходящий из сети класса С и предназначенный для узла класса, можно идентифицировать по последнему октету. На самом же деле узел класса А обозначается последними тремя октетами - а это большая разница. Не зная этого, маршрутизатор попытается найти трехоктетную сеть, к которой подключен однооктетный хост. На самом же деле ему нужно послать данные в однооктетную сеть, в которой находится трехоктетный хост. Стек протоколов TCP/IP использует первые три бита первого октета для идентификации класса сети, позволяя устройствам автоматически распознавать соответствующие типы адресов. У адресов класса А первый бит установлен в 0, а остальные семь битов служат для идентификации сетевой часть адреса (как вы полмните, в адресах класса А первый октет служит для обозначения сети, а остальные три - для обозначения узлов). Поскольку можно использовать только семь битов, максимально возможное количество сетей - 128. Номера сетей 000 и 127 зарезервированы для использования программным обеспечением, поэтому это число уменьшается до 126 (001 - 126). Для обозначения узлов можно использовать 24 бита, поэтому для каждой из этих сетей максимальное число узлов составляет 16 777 216. У адресов класса В первый бит всегда устанавливается в 1, а второй в 0. Поскольку для обозначения сетей здесь используются два октета, то для каждого сетевого сегмента остается, таким образом, 14 битов. Следовательно, максимально возможное число адресов этого класса - 16 384, в диапазоне от 128.001 до 191.254 (номера 000 и 255 зарезервированы). В адресах класса С первые два бита всегда равны 1, а третий установлен в 0. В этих адресах для обозначения сетей используются первые три октета, следовательно, остается 21 бит. Диапазон возможных номеров сетей - от 192.001.001 до 223.254.254, или 2 097 152 сегмента. При этом, однако, для обозначения узлов остается только один октет, поэтому в каждом сегменте может быть всего 254 устройства. В таблице 3 приведены характеристики адресов сетей различных классов. Адреса класса D предназначены для широковещательной рассылки пакетов сразу группе машин. Адреса класса Е пока не используются. Предполагается, что со временем они будут задействованы с целью расширения стандарта. Таблица 2 Характеристика классов IP-адресов
Среди IP-адресов несколько зарезервировано под специальные случаи использования (табл. 2). Так, значение первого октета 127 зарезервировано для служебных целей, в основном, для тестирования сетевого оборудования, поскольку IP-пакеты, направленные на такой адрес, не передаются в сеть, а ретранслируются обратно управляющей надстройке сетевого программного обеспечения как только что принятые. Таким образом, по классам можно подвести итог: Класс А. Адреса назначаются узлам очень большой сети. Старший бит в адресах этого класса всегда 0. 7 бит 1-го октета - идентификатор сети. 24 бита содержат идентификатор узла. Маска подсети: 255.0.0.0. 126 сетей. В каждой сети такого класса может находиться 16777216 адресов. Адреса в промежутке 1.0.0.0... 126.0.0.0 Класс В. Адреса назначаются узлам в больших и средних сетей. 2 старших битах =10 14 бит - идентификатор сети 16 бит - идентификатор узла. Маска подсети: 255.255.0.0. 16 384 сетей 65536 узлов. Адреса в промежутке 128.0.0.0...191.255.0.0. Класс С. Применяются в небольших сетях. 3 старших бита = 1 10. 21 бит -идентификатор сети 8 бит - идентификатор узла. Маска подсети 255.255.255.0. около 2 000 000 сетей класса С 254 узла Адреса в промежутке 192.0.1.0...223.255.255.0. Класс D. Предназначен для рассылки групповых сообщений. Группа получателей может содержать один, несколько или ни одного узла. 4 старших бита =1110. Оставшиеся биты обозначают конкретную группу получателей и не разделяются на части. Пакеты с такими адресами рассылаются избранной группе узлов в сети. Получателями могут быть только специальным образом зарегистрированные узлы. Таблица 3. Значение выделенных IP-адресов
Централизованным распределением IP-адресов занимаются государственные организации. В США - Стенфордский международный научно-исследовательский институт (Stanford Research Institute), расположенный в г. Мэнло-Парк, штат Калифорния. Услуга по присвоению новой локальной сети IP-адресов бесплатная, и занимает она приблизительно неделю. В небольших локальных сетях, использующих стек TCP/IP, можно назначать IP-адреса компьютерам произвольно - в том случае, если данные компьютеры не имеют непосредственного (прямого) выхода в Internet Маски подсетей Часто перед администраторами локальных сетей встает необходимость разбиения вверенной им сети на несколько подсетей. Делается это с помощью маски подсети. Маска подсети заставляет сетевое программное обеспечение иначе интерпретировать IP-адреса машин, входящих в сеть. Фактически, маска подсети нужна для определения, какая часть IP-адреса узла относится к адрсу сети, а какая – к адресу самого узла в этой сети. Рассмотрим, например, адрес хоста 192.123.004.010. Это адрес класса С, в котором первые 24 бита обозначают номер сети. Остальные 8 битов обозначают хост. Можно установить сетевую маску так, чтобы первые 25 битов обозначали сеть, а остальные 7 - хост. Последние 8 битов администратор локальной сети может использовать так, как ему нужно. Можно их использовать обычным образом, для обозначения хост-машин. Но есть и другой вариант: назначить некоторые из оставшихся 8 битов подсетям. По сути дела, сетевая часть адреса получает еще одно поле, а диапазон номеров хостов сокращается. Рассмотрим воображаемую компанию, Windows Inc., которая использует и сети Ethernet, и кольцевые сети с маркерным доступом. Ей выделен, однако, только один сетевой адрес класса С, 192.123.004. Вместо того чтобы использовать последний октет для обозначения 254 хостов в одной сети, компания решила ввести в адрес маску подсети, "позаимствовав" первый бит последнего октета. В результате создаются две подсети по 128 возможных хост-номера в каждой. Изучая свои сетевые номера, Windows Inc. видит следующее: Сегмент Адрес сети Адреса узлов* Ethernet 192.123.004 001-127 Token Ring 192.123.004 128-254 *Номера 000 и 255 зарезервированы. Следует, однако учесть, что устройства в сети не выполняют эту логическую разбивку автоматически. Основываясь на идентификаторе класса С в начале адреса, они продолжают считать, что последние 8 битов адреса обозначают хост. Поэтому о принятой маске нужно сообщить всем устройствам в сегменте сети. В маске подсети используется очень простой алгоритм. Если бит маски установлен в 1, это часть номера сети. Если бит маски установлен в 0, это часть номера хоста. Следовательно, маска подсети для приведенного выше примера имеет вид 11111111 11111111 11111111 10000000. Маска - это число, двоичная запись которого содержит единицы в тех разрядах, которые должны интерпретироваться как номер сети. В таблице 4 приведены стандартные маски подсетей для различных классов адресов сетей. Таблица 4. Стандартные маски подсетей
Маска подсети должна применяться при обработке адреса маршрутизаторами. Если ранее маршрутизатор просто проверял, не совпадает ли адрес сети получателя, например, 192.123.004, с адресом какой-либо непосредственно подсоединенной к маршрутизатору сети, то теперь он должен использовать маску подсети, чтобы выделить адрес сети получателя. Чтобы маска подсети работала, ее должны поддерживать все устройства данной подсети. Для определения адреса сети по IP-адресу и маске подсети надо к ним применить операцию поразрядной конъюнкции (логическое И). Например, для IP-адреса 192.168.1.2 и маски подсети 255.255.254.0 адрес сети будет равен 192.168.0.0. Проблемы 4-х байтовой адресации Если сложить все возможные IP-адреса, то получится свыше 4,7 млрд. адресов хостов. Это очень много, но, к сожалению, четырехоктетной структуре присущи серьезные ограничения. Каждый раз, когда какой-то организации назначается адрес класса А, с ним уходит около 17 млн. адресов хостов. Если назначить все 126 адресов класса А, то свыше 3 млрд. из наличных 4,7 млрд. адресов окажутся занятыми. Если назначить все 16000 адресов класса В, уйдет еще миллиард. При этом не важно, используются ли выделенные адреса или нет: все они назначены конкретной сети и повторно использоваться не могут. Самая большая проблема, однако, связана с классом С. Тому есть две причины. Во-первых, этих адресов меньше всего (имеется лишь около 500 млн. адресов узлов). Во-вторых, эти адреса самые популярные, потому что удовлетворяют размерам большинства локальных сетей. Каждый раз, когда сетевому сегменту выделяется адрес класса С, с ним уходят 254 возможных адреса узлов. Вспомним, что для каждой отдельной сети нужен новый номер. Поэтому люди, у которых три сегмента и всего 60 узлов, тратят впустую более 700 возможных адресов рабочих станций (3 сегмента ´ 254 адреса узлов = 762 адреса - 60 активных узлов = 702 незадействованных адреса). Понятно, что при таких темпах "расходования" наличные хост-номера фактически уже закончились. По действующей схеме (протокол IPv4) может быть всего 2113662 сети. Если бы для обозначения сегмента все сети применяли первые 24 бита (не используя "классовые" биты), то максимальное число сетей составило бы 16777216, по 254 узла в каждой. Вспомним, однако, что сети TCP/IP изначально рассчитаны на использование маршрутизаторов. Естественно, узлам и маршрутизаторам проще запомнить несколько сетей, чем множество. Необходимость обработки 16 миллионов адресов сетей быстро переполнила бы базы данных маршрутизаторов, и сетевой трафик существенно замедлился бы. Наличие классов сетей позволяет маршрутизаторам легко работать с большими сетями, причем без ущерба для производительности. Следует также помнить, что первоначально Internet состояла, в основном, из крупных сетей, соединенный друг с другом. Было удобно дать один адрес сети milnet (это сеть несекретных военных компьютеров), а другой - сети NSFnet (это сеть Национального научного фонда США). Благодаря этому маршрутизаторам, для того чтобы передавать данные буквально на миллионы хост-машин, достаточно было запомнить только адрес другого маршрутизатора. На сегодняшний день, однако истощение запаса адресов порождает огромные проблемы. При отсутствии адресов ни одна новая организация не сможет подключиться к Internet, а существующие сети не смогут расширяться. Для решения большинства этих проблем разработана новая версия протокола IP - IPv6 (или IPng - IP next generation). 2. Система доменных имен IP-адресация удобна для машинной обработки таблиц маршрутов, однако сложна для использования человеком. Система доменных имен (Domain Name System - DNS) позволяет присваивать компьютерам легко запоминаемые имена, например, yahoo.com, и отвечает за перевод этих имен в IP-адреса. DNS строится по иерархическому принципу, однако эта иерархия не является строгой. Фактически нет единого корня всех доменов Internet. В 80-е гг. были определены первые домены (национальные, США) верхнего уровня: gov, mil, edu, com, net. Позднее появились национальные домены других стран: uk (Великобритания), jp (Япония), au (Австрия), cn (Китай) и т.п. Для СССР был выделен домен su, однако после приобретения республиками Союза суверенитета многие из них получили собственные домены: ua - Украина, ru - Россия и т.п. Глубина древа DNS составляет 127 уровней. В настоящее время существуют домены верхнего уровня com - для коммерческих компаний, edu - для школ и университетов, org - для прочих организаций, net - для сетевых организаций и т.д. Вслед за доменами верхнего уровня следуют домены, определяющие либо регионы, либо организации; следующие уровни иерархии могут быть закреплены за небольшими организациями, либо за подразделениями больших организациях. Таким образом, доменное имя компьютера имеет, по меньшей мере, два уровня доменов. Каждый уровень отделяется от другого точкой. Слева от домена верхнего уровня располагается другое имя и, возможно, не одно. Все, что находится слева, является поддоменом для общего домена. Так, например, в имени somesite.russia.ru слово somesite является поддоменом russia, который, в свою очередь, является поддоменом домена ru. Рис. 5. Структура доменного имени. DNS-серверы, реализующие перевод IP-адресов в доменные и обратно, устанавливаются обычно на машинах, которые являются шлюзами для локальных сетей. Вообще говоря, сервер имен может быть установлен на любой компьютер локальной сети. При выборе машины для установки сервера имен следует принимать в расчет то обстоятельство, что многие реализации серверов держат базы данных имен в оперативной памяти. При этом часто подгружается информация и с других серверов. Все это может вызвать задержки при разрешении запроса на адрес по имени машины, если для сервера имен будет использоваться маломощный компьютер. 3. Служба доменных имен Служба доменных имен (DNS) относится к прикладному уровню эталонной модели TCP/IP (рис. 13). Она переводит трудно воспринимаемые человеком IP-адреса в более удобочитаемый текстовой формат, а так же обеспечивает независимость от физического IP-адреса хоста. В самом деле, предположим, что владелец сайта решил сменить хост. Если бы поиск сайта осуществлялся по его IP, то пользователь, который знает прежний адрес сайта и ввел его в адресную строку в своем браузере, попал бы куда угодно, но не туда, куда ожидал. Тоже самое справедливо для электронной почты и прочих интернет-служб. Для того чтобы решить эти две проблемы, и была создана служба доменных имен. Служба доменных имен построена по иерархическому принципу. Глубина древа DNS составляет 127 уровней. Доменом называется множество хостов, объединенных в логическую группу. В бытность существования ARPANET соответствия между IP-адресами и их текстовыми эквивалентами хранились в файле hosts.txt. Ежесуточно все хосты получали этот файл, что обеспечивало актуальность (авторитетность) хранящихся в нем записей, и пока к сети было подключено несколько сотен машин, это было вполне приемлемым решением. Но когда сеть разрослась до нескольких тысяч компьютеров, стало ясно, что этому механизму надо искать какую-то замену. В самом деле, размер файла становился слишком большим, а главное, в результате децентрализации неизбежно должны были возникнуть конфликты имен. Эту проблему была призвана решить служба доменных имен (Domain Name System, DNS). Идея DNS состоит в разбиении всего адресного пространства на несколько непересекающихся зон (доменов), которые делятся на подзоны (поддомены). Весь Интернет разделен на 200 доменов верхнего уровня, число которых постоянно увеличивается. Доменом называют множество хостов, объединенных в логическую группу. Каждый домен верхнего уровня подразделяется на поддомены, которые так же могут состоять из других доменов и т. д. (рис. 16,а). Когда приложение, запущенное на машине клиента, хочет обратиться к хосту по его имени, то это имя передается распознавателю, который запущен на клиентской машине (рис. 16, б). Распознаватель обращается с запросом к одному из локальных DNS-серверов, и если требуемый домен относится к сфере ответственности данного DNS-сервера, то он сам передает распознавателю авторитетную запись ресурса. Если же DNS-сервер не имеет информацию о запрашиваемом домене, то он посылает сообщение с запросом серверу домена более высокого уровня. Рекурсивным запросом называют кэширование информации и хранение IP-адресов доменов и дочерних доменов DNS-сервером. Р ис. 16. Служба доменных имен Рассмотрим пример обработки запроса распознавателя, установленного на машине p.asp.sut.ru, подключенной к кафедральному серверу asp.sut.ru, к хосту a.it.oxford.edu (рис. 16,в). Сначала инициатор запроса p.asp.sut.ru посылает запрос кафедральному серверу asp.sut.ru, который переадресует его университетскому DNS-серверу sut.ru. Он ищет требуемую запись в собственной базе данных и, не найдя ее, передает запрос DNS-серверу зоны .ru. Последний находит адрес сервера Оксфордского университета (oxford.edu) и переадресует ему запрос, так как по принципу построения иерархических систем он не должен хранить имена доменов третьего уровня. DNS-сервер Оксфордского университета переадресует запрос DNS-серверу факультета информационных технологий (it.oxford.edu), который хранит запись с требуемым IP-адресом хоста a.it.oxford.edu, после чего резульат передается назад по цепочке: it.oxford.edu – oxford.edu – ru-server.net – sut.ru – asp.sut.ru – p.asp.sut.ru (на самом деле, для повышения эффективности обработки запросов, DNS-серверы часто кэшируют информацию и хранят IP-адреса не только дочерних доменов, но и доменов не находящихся в их прямой ответственности). Такая схема называется рекурсивным запросом, но возможны и другие схемы. 4. Порты Компьютеры могут работать с несколькими приложениями одновременно. Для определения того, с каким приложение работает ПК, используются порты. Значение номера порта изменяется в пределах 0…65535. Связка порт+IP-адрес представляет собой полную информацию, необходимую для подключения к другой машине. Порт можно считать расширением IP-адреса. Порт записывается поле двоеточия: «215.24.25.211:442». Порты 0…1024 зарезервированы. Порт — цифровой номер, который является программным адресом, используемым для взаимодействия различных конечных точек (сетевых устройств, хостов) в современных компьютерных сетях на транспортном уровне модели OSI. Порты используются в транспортных протоколах TCP, UDP, SCTP, DCCP и позволяют различным программам и сетевым службам на одном хосте получать данные в IP-пакетах независимо друг от друга. Всякое взаимодействие двух хостов подразумевает использование как минимум одного порта получателя, и как правило, порта источника. Номер порта, добавленный к IP-адресу компьютера, завершает идентификацию возможного сеанса связи. То есть, пакеты данных направляются по сети к определенному IP-адресу назначения, а затем, по достижении конечного компьютера, далее направляется конкретному процессу, связанному с номером порта назначения. Принцип использования портов зависит от протокола, который их использует. Порт хоста назначения конкретного сетевого взаимодействия обычно известен приложению заранее. Порт хоста-источника сетевого пакета может назначаться как динамически для каждого нового сеанса связи, так и быть постоянным, статическим. Для TCP-соединения порт хоста-отправителя особенно важен, так как именно на него должен прийти ответ и подтверждение доставки пакета от хоста-получателя. Для SCTP в рамках ассоциации может использоваться несколько портов хоста-источника и несколько портов хоста-назначения (таким образом в данном протоколе достигается более высокая надёжность сеанса связи и скорость передачи). В случае, если определённый номер постоянно закреплён за определённой программой на хосте и может постоянно использоваться для приёма и / или передачи данных, то говорят что такой порт является «открытым». Сходная терминология открытый порт или закрытый (заблокированный) порт используется в сетевых брандмауэрах. Если конкретная программа ожидает передачи на определённый порт и держит его открытым, говорят, что программа «слушает порт». Номера портов, рекомендованные и используемые для конкретных специфических целей, то есть для сетевых сервисов, выделяет и регистрирует IANA (Internet Assigned Numbers Authority), однако на практике часто встречаются случаи их неофициального применения. Рис. 11. Некоторые зарезервированные порты. Номер порта является 16-разрядным целым двоичным числом, таким образом, порты возможны в диапазоне от 1 до 65535 (для TCP, номер порта 0 зарезервирован и не может быть использован). Для UDP порт источника не является обязательным и нулевое значение означает отсутствие порта. Приведём несколько примеров портов в компьютерных сетях. В частности, на примере популярной сетевой службы электронной почты (E-mail). Сервер используется для отправки и получения электронной почты, то есть, как правило, нуждается в существовании двух служб. Первая служба используется для передачи сообщений на другие сервера. Это выполняется посредством простого протокола передачи почты (SMTP). Приложение-служба протокола SMTP обычно прослушивает TCP-порт 25 для входящих запросов. Вторая служба это, как правило, либо Post Office Protocol (POP), либо Internet Message Access Protocol (IMAP), которые используются клиентскими приложениями электронной почты на персональных компьютерах пользователей для получения сообщений электронной почты с сервера. Служба POP прослушивает TCP-порт под номером 110. Обе службы могут быть запущены на одном и том же хост-компьютере, и в этом случае по номеру порта можно определить сервис, который запрошен удаленным компьютером, будь то компьютер пользователя или другой почтовый сервер. Номера порта-источника (то есть клиента) для подключения к серверу SMTP и POP3 обычно определяется динамически. Как отмечалось выше, в некоторых приложениях использования конкретных номеров портов клиентами и сервером чётко определены. Хорошим примером этого является протокол динамического управления IP-адресами (DHCP), в котором клиент всегда использует UDP-порт 68, а сервер всегда использует UDP-порт 67. Номера портов можно иногда увидеть в адресах веб-сайтов (URL) или других идентификаторах ресурсов в компьютерных сетях URI. По умолчанию, протокол HTTP использует порт 80, а HTTPS использует порт 443, но URL как http://www.example.com:8080/path/ указывает, что веб-ресурс обслуживается веб-сервером на порту 8080. TCP- или UDP-пакеты всегда содержат два поля номера порта: отправителя и получателя. Тип обслуживающей программы определяется портом получателя поступающих запросов, и этот же номер является портом отправителя ответов. «Обратный» порт (порт отправителя запросов, он же порт получателя ответов) при подключении по TCP определяется клиентом произвольно (хотя номера меньше 1024 и уже занятых портов не назначаются), и для пользователя интереса не представляет. Использование обратных номеров портов в UDP зависит от реализации. Активные порты протоколов транспортного уровня во многих операционных системах (Windows, Unix-подобные) могут быть обнаружены с помощью команды NetStat или nmap (в UNIX / Linux). Возможны следующие состояния порта, показываемые командами netstat и nmap: Таблица 5. Некоторые возможные состояния порта
В большинстве UNIX-подобных операционных систем прослушивание портов с номерами 0—1023 (почти все из которых зарегистрированы) требует особых привилегий. Каждый из остальных портов может быть захвачен первым запросившим его процессом. Однако, зарегистрировано номеров намного больше, чем 1024. |