Цифровой адрес (IP-адрес)
Цифровой адрес представляет собой основной тип адресов – это просто число, однозначно определяющее TCP/IP узел в Internet. В сетях TCP/IP узлом называется любой компьютер, имеющий сетевой интерфейс, настроенный на использование TCP/IP. IP-адрес включает в себя два компонента: адрес сети и номер узла. Адрес сети обозначает конкретную сеть (или сегмент), в которой физически находится компьютер (узел). Этот адрес должен быть уникален во всей ТСР/IР-сети, вне зависимости от того, является сеть глобальной ТСР/IP-сетью или это просто небольшая локальная сеть предприятия, в которой реализован протокол TCP/IP. Адрес сети используется для передачи информации на нужный сетевой интерфейс маршрутизатора.
Компьютер оперирует IP-адресами, представленными в двоичном формате. Поскольку людям сложно манипулировать двоичными числами, обычно предпочитается при записи десятичный формат IP-адресов. Рассмотрим пример IP-адреса. В двоичном коде цифровой адрес записывается следующим образом: 11000000.10101000. 00000001.00000000, в привычном – десятичном коде он имеет вид 192.168.1.0. Когда IP-адрес записан в десятичном формате, он состоит из четырех групп цифр по 8 бит, называемых октетами, каждая из которых отделена от соседней октеты точкой и может принимать значение в пределах от 0 до 255. Действительно, если все биты октета равны 0, то его десятичное значение равно 0, а если все биты октета равны 1, его десятичное значение будет равно 255. Если бы использовались все 32 бита в IP-адресе, то получилось бы (232), т. е. свыше четырех миллиардов возможных адресов. Однако некоторые комбинации битов зарезервированы для специальных целей, поэтому реальное число адресов намного меньше. Сетевой адрес класса А 127 зарезервирован для диагностических целей.
В классическом ТСР/IР числа 0 (все нули в октете) и 255 (все единицы) не могут использоваться в идентификаторах сетей и узлов.
- Если весь IP-адрес состоит только из двоичных нулей, то он обозначает адрес того узла, который сгенерировал этот пакет.
- Если в поле номера сети стоят только нули, то, по умолчанию, считается, что узел назначения принадлежит той же самой сети, что и узел, который отправил пакет.
- Если все двоичные разряды IP-адреса равны единице, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета.
- Если в поле номера узла назначения стоят только единицы, то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным номером сети. Например, пакет с адресом 194.132.17.255 доставляется всем узлам сети 194.132.17.0. Такая рассылка называется широковещательным сообщением.
В Internet IP-адреса координирует InterNIC (Internet Network Information Center, Сетевой информационный центр Internet, США), который дает полномочия по распределению адресов региональным и национальным организациям. Этим организациям InterNIC выделяет большие блоки IP-адресов, из которых они затем выделяют адреса отдельным организациям. Полномочия на адреса в России делегированы нескольким сетевым организациям, среди которых основную роль играет Российский НИИ развития общественных сетей. Для получения IP-адреса для локальной сети организации нужно направить соответствующую заявку.
IP-адреса выделяются в зависимости от размеров предприятия и типа его деятельности. Для обеспечения максимальной гибкости IP-адреса выделяются в зависимости от количества сетей и компьютеров в организации и разделяются на классы А, В и С. Структура IP-адреса для сетей различных классов показана на рис. 5.
Рис. 5. Классы IP-адресов и соответствующие им идентификаторы
сетей и узлов
Адрес сети класса А имеет только 7 бит для сетевого адреса и 24 бита для адреса узла. Старший бит первого октета адреса этого класса всегда равен нулю, что позволяет идентифицировать этот класс. Следовательно, класс А использует для идентификации сети только первый октет, а три оставшихся октета – для идентификации узла. Это позволяет идентифицировать (224-2), т. е. более 16 миллионов различных узлов в одной подсети. Однако может существовать только (27-2)=126 сетей класса А. Таким образом, адреса класса А предназначены для использования в больших сетях общего пользования, допускающих большое количество номеров узлов.
Класс В использует для идентификации сети первый и второй октеты, а два оставшиеся – для идентификатора узла. Два старших бита первого октета всегда равны 10 (один, ноль), что позволяет идентифицировать этот класс сетей. Адрес сети класса В имеет 14 бит для сетевого адреса и 16 бит для адреса узла, что позволяет выделить большее количество сетей класса В (214-2) =16 тыс., но с меньшим количеством узлов. Тем не менее 16 бит позволяют идентифицировать (21б-2), т. е. более 65 тыс. узлов. Адреса класса В используются в сетях среднего размера, например сетях университетов и крупных компаний.
Класс С использует для идентификатора сети первые три октета и оставшийся октет – для идентификатора узла. Три старших бита первого октета адреса этого класса всегда равны 110 (один, один, ноль). Сети класса С могут иметь максимум (28 -2) = 254 узла, но таких сетей может быть очень много (221-2). Адреса классов С используются в сетях с небольшим числом компьютеров. Большинство сетей относятся к классам В и С.
Тип класса можно узнать по первому числу IP-адреса. Существуют следующие правила для первого 8-битного числа:
- адреса класса А – числа от 0 до 127;
- адреса класса В – числа от 128 до 191;
- адреса класса С-– числа от 192 до 223.
Если адрес вашего компьютера 148.15.86.25, то вы знаете, что ваш компьютер находится в сети класса В, сетевой идентификатор – 148.15, а уникальный номер вашего компьютера в этой сети 86.25.
Назначение IP-адресов узлам сети даже при не очень большом размере сети может представлять для администратора сети утомительную процедуру. Протокол Dynamic Host Configuration Protocol (DHCP) освобождает администратора от этих проблем, автоматизируя процесс назначения IP-адресов. Протокол DHCP работает в соответствии с моделью клиент-сервер. Компьютер, являющийся DHCP-клиентом, посылает в сеть запрос на получение IP-адреса. DHCP-сервер откликается и посылает ответ, содержащий IP-адрес. При динамическом распределении адресов DHCP-сервер выдает адрес клиенту на ограниченное время, называемое временем аренды, что дает возможность впоследствии повторно использовать этот IP-адрес. При ручной процедуре назначения адресов осуществляет администратор сети.
Всякий раз, когда посылается сообщение какому-либо компьютеру в Internet, IP-адрес используется для указания адреса отправителя и получателя. Конечно, пользователю не придется самому запоминать все IP-адреса, т. к. для этого используется доменная система имен.
Символьные доменные имена (DNS, Domain Name System) строятся по иерархическому принципу. Эта структура подобна структуре каталогов в компьютере: есть домены самого верхнего уровня, есть вложенные в них домены, которые, в свою очередь, могут содержать другие имена. Имена доменов самого верхнего уровня строго определены.
Существует два типа классификации доменных имен.
Имена по типу организации. Такие домены имеют трехбуквенное сокращенное название, например: com – коммерческие организации: edu – учебные заведения; gov – правительственные учреждения и т. п. Например, tutor.sptu.edu. Здесь edu – общий домен для школ, университетов, tutor – поддомен sptu, который является поддоменом edu. Когда какая-либо организация получает доступ к Internet, она регистрирует свое название в специальных регистрационных службах Internet. Выбор названий, расположенных в доменом имени левее организации, является прерогативой самой организации. Для пользователей Internet адресами могут быть просто их регистрационные имена на компьютере, подключенном к сети. За именем следует знак @ – знак «коммерческого AT». Например, nikola@tutor.sptu.edu – пользователь, зарегистрированный под именем nikola на компьютере, имеющем в Internet имя tutor.sptu.edu. В Internet могут использоваться не только имена отдельных людей, но и имена групп. Для обработки пути поиска в доменах имеются специальные серверы имен, которые преобразуют доменное имя в соответствующий цифровой адрес.
Имена по стране (географическим регионам) имеют двух-буквенные обозначения для всех стран мира типа .ru – Россия, .us – США и т. п. Далее, уже в рамках данной страны, провайдеры регистрируют свои группы имен – домены. Имя каждого домена отделяется при написании от другого имени точкой, причем имя домена верхнего уровня пишется справа. Самая левая группа символов является именем данного компьютера.
Если предоставление услуг осуществляется через несколько организаций, то полное имя компьютера может состоять из большого числа символов, хотя на практике редко встретишь имена, включающие в себя больше пяти групп.
Каждый домен администрируется отдельной организацией, которая обычно разбивает свой домен на поддомены и передает функции администрирования этих поддоменов другим организациям. Чтобы получить доменное имя, необходимо зарегистрироваться в какой-либо организации, которой InterNIC делегировал свои полномочия по распределению имен доменов. Официальная регистрация имен домена производится только после выполнения всей предварительной работы по внесению соответствующих записей в базы данных серверов DNS (Domain Name System).
Рис. 6. Поиск адресов по доменному имени
На самом деле, для повышения эффективности, поиск начинается не с самого верха, а с наименьшего домена, в который входите и вы, и компьютер, имя которого вы запросили. Например, если ваш компьютер имеет имя xl.yl.z.ru и вы запрашивайте компьютер с именем x.y.z.ru, то опрос начнется (если имя не выяснится сразу) не со всемирного сервера, чтобы узнать адрес сервера группы ru, а сразу с группы z.ru, что сразу сокращает поиск и по объему, и по времени.
Этот поиск адреса совершенно аналогичен поиску пути Письма без надписанного почтового индекса. Как определяется этот индекс? Все регионы пронумерованы – это первые цифры индекса. Письмо пересылается на центральный почтамт этого региона, где имеется справочник с нумерацией районов этого региона, – это следующие цифры индекса. Теперь письмо идет на центральный почтамт соответствующего района, где уже знают все почтовые отделения в подопечном районе. Таким образом, по географическому адресу определяется почтовый индекс, ему соответствующий. Также определяется и адрес компьютера в Internet, но путешествует не послание, а запрос вашего компьютера об этом адресе. И, в отличие от случая с почтой, информация об адресе доходит до вас, как если бы районный почтамт места назначения отправлял вам письмо, любезно уведомляя вас на будущее об индексе, которого вы не изволили знать.
Отображение IP-адресов на локальные (MAC-адреса).
Прежде чем IP-пакет будет отправлен на другой узел, должен быть известен аппаратный (MAC) адрес этого узла. Для определения локального адреса по IP-адресу используется протокол разрешения адреса ARP (Address Resolution Protocol).
И так, все адресное пространство может быть разделено на три большие группы: классы А, В, С. Однако иногда необходимо дополнительное подразделение блока адресов на подсети, поскольку блоки адресов, выделенные InterNIC организации, могут не соответствовать топологии существующей сети, так как каждый сетевой идентификатор соответствует одному физическому сегменту сети. Если вы получаете адрес класса С, но в вашей сети два различных физических сегмента, вам желательно далее разделить ваш блок адресов класса С. Следовательно, если необходимо провести дальнейшее разделение части адресного пространства, выделенной InterNIC, понадобится передать часть бит, выделенных исходно для идентификатора узла, идентификатору подсети. Подсеть – это сеть или идентификатор сети, созданный при помощи переноса нескольких бит из числа IP-адреса, содержащего идентификатор узла, в часть, содержащую идентификатор сети. Конечно, появление дополнительных идентификаторов подсетей приводит к потере доступных идентификаторов компьютеров, что снижает трафик сети.
Маскирование сетей позволяет сетевым устройствам и людям определить, какая часть IP-адреса относится к адресу сети и какая – к адресу узла, что позволяет использовать некоторые из идентификаторов узлов для разделения сети на подсети. Маски подсетей по умолчанию для адресов классов А, В и С приведены в табл. 1.
Таблица 1
Маска подсети представляет собой 32-разрядное двоичное число. Единицы в нем обозначают часть, относящуюся к адресу сети, а нули – к адресу узла. Например, маска по умолчанию сети класса С 255.255.255.0 представляет число 11111111.11111111.11111111.00000000, поскольку только последний оплет используется для идентификации узла. Для адресов класса А маской подсети по умолчанию является 255.0.0.0, поскольку только первый октет таких адресов используется для идентификатора подсети. После того как маска сети была определена и установлена, узел использует ее значение для того, чтобы определить, предназначен пакет для локальной подсети или для удаленной, применяя операцию логического «И». Логическое «И» – это математическая операция, выполняемая над двоичными числами. Результат сравнения двух бит равен 1, если они оба равны 1, и равен 0 в остальных случаях. Пример работы логического «И» представлен в табл. 2.
Таблица 2
7. Назначение и функции
брандмауэров и прокси-серверов
Предотвращение несанкционированного доступа внешних пользователей к компьютеру (или ко всей сети) – компетенция прокси-серверов, брандмауэров.
Брандмауэр – это любое устройство или группа устройств, предоставляющее единственную контрольную точку, в которой можно разрешить или запретить дальнейшее перемещение потоков информации между Internet и внутренней сетью (рис. 7). Эти две функции – ограничение доступа и регистрация доступа – и являются основными функциями брандмауэра в сети.
Рис. 7. Использование брандмауэра для защиты сети
Брандмауэр ограничивает доступ к сети, используя информацию, заключенную в сетевом пакете. В случае Internet, использующей протокол ТСР/IР, эту информацию можно подразделить на следующие компоненты; конечный IP-адрес, конечный IP-порт, исходный IP-адрес и исходный IР-порт.
Уточним понятие IP-порта. Порты – это числа, которые протоколы на транспортном уровне используют для передачи данных соответствующим протоколам более высокого уровня. После того как пакет доставлен в компьютер-получатель, данные необходимо направить конкретному процессу-получателю.
Каждый компьютер может выполнять несколько процессов, более того, прикладной процесс может тоже иметь несколько точек входа, выступающих в качестве адреса назначения для пакетов данных. Поступающие пакеты организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. Такие системные очереди при использовании протокола TCP называются IP-портами. Следовательно, каждый процесс, использующий протокол TCP, должен иметь номер порта, указывающий расположение определенного приложения или процесса на каждом компьютере. По сути, IP-порт – это расширение IP-адреса. Сочетание IP-адреса и номера порта называется сокетом.
Номера IP-портов, как правило, соответствуют «хорошо известным протоколам». Например, большинство Web-серверов ожидают запросов на соединение на 80 порту, а большинство почтовых серверов, поддерживающих SMTP протокол, используют 25 порт, номер 21 закреплен за службой удаленного доступа к файлам FTP. Наиболее распространенные TCP/IP приложения и службы используют первые 1023 портов из всех 65535 доступных. Эти применяемые по умолчанию, или «хорошо известные», IP-порты распределены между протоколами, работающими на сервере, в то время как порты, используемые на стороне клиента, выделяются приложению динамически при открытии соединения. Например, при установлении Telnet-сеанса с удаленным узлом пользователь обычно соединяется с «хорошо известным» IP-портом 23. При этом клиент получает динамически выделенный номер порта, который будет использоваться сервером при передаче сообщений на компьютер клиента.
Брандмауэр действует следующим образом. Основываясь на информации об исходном и конечном адресах и портах, он может либо принять пакет данных, либо отказаться от его приема. Брандмауэр может также регистрировать выполняемые действия аналогично определителю номера с памятью, чтобы иметь возможность установить, кто предпринял попытку доступа к сети.
Некоторые брандмауэры не ограничиваются простой фильтрацией пакетов и используют в качестве критерия допуска сетевой сеанс. Для каждого сеанса используется отдельный IP-порт, таким образом, каждому сеансу соответствует уникальный идентификатор. Сеансные брандмауэры способствуют повышению уровня безопасности системы и предоставляют более эффективные возможности по регистрации деятельности клиентов. Все, что может сделать брандмауэр – это снизить риск, связанный с подключением к Internet, но не полностью его исключить. Заметим, что брандмауэр может представлять собой как одно, так и несколько устройств. Так, в качестве брандмауэров используют иногда набор правил фильтрации на маршрутизаторах сети. Одним словом, брандмауэр – это не аппаратное обеспечение, а его настройка (конфигурация).
Прокси-сервер (proxy (англ.) – доверенное лицо, посредник) – это сервер, работающий «представителем» клиентов на рабочих станциях в сети и является, по сути, разновидностью брандмауэра. Однако прокси-сервер обладает одной дополнительной чертой, не присущей сеансным брандмауэрам: он может маскировать адрес и IP-порт конечного компьютера.
Рис. 8. Использование прокси-сервера для защиты сети
Иными словами, прокси-сервер – это система, настроенная в качестве посредника между несколькими сетями. Во все пакеты, проходящие через прокси-сервер во внешнюю сеть, будет подставлен адрес прокси-сервера в качестве адреса отправителя. Весь входящий трафик будет поступать на прокси-сервер. Таким образом, прокси-сервер «прячет» друг от друга истинного отправителя и адресата. Это позволяет предотвратить несанкционированный доступ, не препятствуя в то же время доступу к сети внешних пользователей (рис. 8).
При создании прокси-сервера указывается адрес IР-порта, который он в дальнейшем будет отслеживать. Прокси-а используется отдельный IP-порт, таким образом, каждому сеансу соответствует уникальный идентификатор. Сеансные брандмауэры способствуют повышению уровня безопасности системы и предоставляют более эффективные возможности по регистрации деятельности клиентов. Все, что может сделать брандмауэр – это снизить риск, связанный с подключением к Internet, но не полностью его исключить. Заметим, что брандмауэр может представлять собой как одно, так и несколько устройств. Так, в качестве брандмауэров используют иногда набор правил фильтрации на маршрутизаторах сети. Одним словом, брандмауэр – это не аппаратное обеспечение, а его настройка (конфигурация).
Прокси-сервер (proxy (англ.) – доверенное лицо, посредник) – это сервер, работающий «представителем» клиентов на рабочих станциях в сети и является, по сути, разновидностью брандмауэра. Однако прокси-сервер обладает одной дополнительной чертой, не присущей сеансным брандмауэрам: он может маскировать адрес и IP-порт конечного компьютера.
Рис. 8. Использование прокси-сервера для защиты сети
Иными словами, прокси-сервер – это система, настроенная в качестве посредника между несколькими сетями. Во все пакеты, проходящие через прокси-сервер во внешнюю сеть, будет подставлен адрес прокси-сервера в качестве адреса отправителя. Весь входящий трафик будет поступать на прокси-сервер. Таким образом, прокси-сервер «прячет» друг от друга истинного отправителя и адресата. Это позволяет предотвратить несанкционированный доступ, не препятствуя в то же время доступу к сети внешних пользователей (рис. 8).
При создании прокси-сервера указывается адрес IР-порта, который он в дальнейшем будет отслеживать. Прокси-сервер будет устанавливать, какой конечный IP- адрес и IP-порт собирается использовать клиент. Если разрешение на соединение отсутствует, подключение не выполняется, если же доступ разрешен, прокси-сервер выполнит подключение к внешнему источнику. Получаемые от внешнего источника данные передаются сетевому клиенту, а любые запросы сетевого клиента передаются внешнему источнику через прокси-сервер.
Чтобы получить доступ к внутренней сети, внешнему пользователю необходимо знать IP-адрес компьютера клиента, IP-адрес прокси-сервера и IP-порт, отслеживаемый прокси-сервером. Кроме того, этот пользователь должен быть включен в список лиц, которым разрешен доступ к сети, т. е. в IP-адрес внешних клиентов. Если хотя бы один из этих параметров не известен внешнему пользователю, он не сможет подключиться к компьютеру-клиенту, расположенному за прокси-сервером.
Прокси-серверы можно настроить для работы в обоих направлениях – для доступа внутренних пользователей к внешним и для доступа внешних пользователей к определенным внутренним серверам.
Кроме обеспечения «барьера безопасности» между сетями, прокси-сервер также можно настроить и для кэширования часто запрашиваемой информации.