Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Занятие 5. Уровни сетевой архитектуры, сетевые протоколы

Поиск

План занятия:

· Уровни сетевой архитектуры TCP\IP

· Канальный уровень

· Сетевой уровень

· Другие протоколы сетевого уровня

 

Уровни сетевой архитектуры TCP\IP

 

Хостом (host) является узел сети, где используют стек протоколов TCP/IP. Сетевым интерфейсом (network interface) является абстракция виртуального устройства для связи с сетью, которую предоставляет программное обеспечение канального уровня. Хост может иметь несколько сетевых интерфейсов, обычно они соответствуют его аппаратным сетевым устройствам.

Сетевая архитектура TCP / IP имеет четыре уровня. Рассмотрим их снизу вверх.

  1. Канальный уровень (data link layer) отвечает за передачу кадра данных между любыми узлами в сетях с типовой аппаратной поддержкой (Ethernet, FDDI и т.п.) или между двумя соседними узлами в любых сетях (SLIP, PPP). При этом обеспечиваются формирования пакетов, коррекция аппаратных ошибок, совместное использование каналов. Кроме того, на более низком уровне он обеспечивает передачу битов физическими каналами, такими как коаксиальный кабель, витая пара или оптоволоконный кабель (иногда для описания такого взаимодействия выделяют отдельный физический уровень - physical layer).
  2. На сетевом уровне (network layer) происходит передача пакетов с использованием различных транспортных технологий. Он обеспечивает доставку данных между сетевыми интерфейсами любых хостов в неоднородной сети с произвольной топологией, но при этом не принимает на себя никаких обязательств по надежности передачи данных. На этом уровне реализована адресация интерфейсов и маршрутизация пакетов. Основным протоколом этого уровня в стеке TCP/IP является IP (Internet Protocol).
  3. Транспортный уровень (transport layer) реализует базовые функции по организации связи между процессами, которые выполняются на удаленных хостах. В стеке TCP/IP на этом уровне функционируют протоколы TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). TCP обеспечивает надежное качество передачи сообщений между удаленными процессами пользователя за счет образования виртуальных соединений. UDP обеспечивает ненадежное качество передачи прикладных пакетов (подобно IP), выполняя исключительно функции связующего звена между IP и процессами пользователя.
  4. Прикладной уровень (application layer) реализует набор разнообразных сетевых сервисов, предоставляемых конечным пользователям. К этому уровню относятся протоколы, реализованные различными сетевыми службами, например, HTTP (основа организации Web), SMTP (основа организации пересылки электронной почты). Основное отличие прикладного уровня заключается в том, что в большинстве случаев его поддержка реализована в режиме пользователя (обычно за это отвечают разные приложения-серверы), а поддержка других уровней - в ядре ОС. Задача сетевой службы прикладного уровня - реализовать сервис для конечного пользователя (пересылки электронной почты, передачи файлов и т.п.), который не имеет информации об особенностях перемещения данных сетью. Другие уровни, наоборот, не имеют информации об особенностях приложений, которые будут обмениваться данными с их помощью.

Канальный уровень

Реализация канального уровня обычно включает драйвер сетевого устройства ОС и аппаратное сетевое устройство. и скрывает от программного обеспечения верхнего уровня и приложений, детали взаимодействия с физическими каналами, предоставляя им абстракцию сетевого интерфейса. Передача данных сетью в программном обеспечении верхнего уровня происходит между сетевыми интерфейсами.

Количество сетевых интерфейсов обычно соотносится с количеством сетевых аппаратных устройств хоста. Кроме того, выделяют специальный интерфейс обратной связи (loopback interface); все данные, передаваемые этому интерфейсу, поступают на вход реализации стека протоколов того же хоста.

Сетевой уровень

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

Каждый сетевой интерфейс в IP-сети имеет уникальный адрес. Такие адреса называют IP-адресам. Стандартной версии IP, которой пользуются с начала 80-х годов XX века, является IP версии 4 (IPv4), где используют адреса длиной 4 байта. Их обычно записывают в точечно-десятичном представлении (четыре десятичные числа, разделенные точками, каждое из которых отражает один байт адреса). Примером может быть 194.41.233.1. Специальный адрес обратной связи 127.0.0.1 (loopback address) присваивают интерфейсам обратной связи и используют для связи с приложениями, запущенными на локальном хосте.

Поиск процесса на соответствующем хосте обеспечивают протоколы транспортного уровня (например TCP). Пакеты этих протоколов инкапсулируют в IP-дейтаграммы.

Протокол IPv6. Существенным недостатком протокола IPv4 является незначительная длина IP-адреса. Количество адресов, которые можно отобразить с помощью 32 бит, недостаточно учитывая современные темпы роста Интернета. Сегодня новые IP-адреса выделяют ограничено.

Для решения этой проблемы была предложена новая реализация IP-протокола - IP версии 6 (IPv6), основным отличием которой является длина адреса - 128 бит (16 байт).

Другие протоколы сетевого уровня

Кроме IP, на сетевом уровне реализованы и другие протоколы. Для обеспечения сетевой диагностики применяют протокол ICMP (Internet Control Message Protocol), используемый для передачи сообщений об ошибках при передаче IP-дейтаграмм, а также для реализации простейшего эхо-протокола, реализующего обмен запросом к хосту и ответом на этот запрос. IСМР-сообщение инкапсулируют в IP-дейтаграммы. Большинство современных ОС имеют утилиту ping, которую используют для проверки достижимости удаленного хоста. Эта утилита использует эхо-протокол в рамках IСМР.

Транспортный уровень

Пакет с TCP-заголовком называют TCP-сегментом. Основные характеристики протокола TCP такие:

1) Поддержка коммуникационных каналов между клиентом и сервером, которые называют соединениями (connections). TCP-клиент устанавливает соединение с конкретным сервером, обменивается данными с сервером через TCP соединение, после чего разрывает его.

2) Обеспечение надежности передачи данных. Когда данные передаются с помощью TCP, требуется подтверждение их получения. Если оно не получено в течение определенного времени, передачу данных автоматически повторяют, после чего протокол снова ожидает подтверждения. Время ожидания возрастает с увеличением количества попыток. После определенного количества безуспешных попыток соединения разрывают. Неполного передачи данных по каналу быть не может: или оно надежно пересылает данные, или его разрывают.

3) Установление последовательности данных (data sequencing). Для этого каждый сегмент, переданный по этому протоколу, сопровождает номер последовательности (sequence number). Если сегменты приходят в неверном порядке, TCP на основании этих номеров может переставить их перед тем как передать сообщение в применение.

4) Управление потоком данных (flow control). Протокол TCP сообщает об удаленном применении данных, объем которых может быть принят от него в любой момент времени. Это значение называют объявленным окном (advertised window), оно равно объему свободного пространства в буфере, предназначенном для получения данных. Окно динамично меняется: при чтении применяемых данных из буфера увеличивается, в случае поступления данных сетью - уменьшается. Это гарантирует, что буфер не может переполниться. Если буфер заполнен полностью, размер окна уменьшают до нуля. После этого TCP, пересылая данные, ожидать, пока в буфере не освободится место.

 


Занятие 6. Система имен DNS

План занятия:

· Общая характеристика DNS

· Пространство имен DNS

· Распределение ответственности

· Получение IP-адреса

· Кэширование IP-адресов

· Типы DNS ресурсов

 

Общая характеристика DNS

Доменная система имен (Domain Name System, DNS) - это распределенная база данных, которую приложения используют для организации отображения символьных имен хостов (доменных имен) на IP-адреса. С помощью DNS всегда можно найти IP-адрес, соответствующий заданному доменному имени. Распределенность DNS заключается в том, что нет ни одного хоста в Интернете, который имел бы всю информацию об этом распределении. Каждая группа хостов (например, та, что связывает все компьютеры колледжа) поддерживает свою собственную базу данных имен, открытую для запросов внешних клиентов и других серверов. Поддержка базы данных имен осуществляется с помощью приложения, которое называют DNS-сервером или сервером имен (name server).

Доступ к DNS осуществляют с помощью распознавателя (resolver) - клиент, обращается к DNS-серверу для преобразования доменных имен в IP-адреса (этот процесс называют разрешением доменных имен - domain name resolution). Распознаватель реализован, как библиотека, компонуемая с приложениями. Он использует конфигурационный файл, в котором указаны IP-адреса локальных серверов имен. Если применение требует разрешения доменного имени, код распознавателя отсылает запрос на локальный сервер имен, получает оттуда информацию о соответствующем IP-адресе и возвращает его в применение. Отметим, что и распознаватель, и сервер имен обычно работают в режиме пользователя.

Пространство имен DNS

Пространство имен DNS является иерархическим. Каждый узел сопровождает символьная отметка. Корнем дерева является узел с обозначением нулевой длины. Домен это имя любого узла дерева - это список меток, начиная с этого узла (слева направо) и до корня, разделенных символом «точка». Доменные имена должны быть уникальными.

Доменное имя,которое завершается точкой, называют полным доменным именем (Fully Qualified Domain Name, FQDN). Если точка в конце имени отсутствует, считают, что это имя может быть дополнено (к нему может быть добавлен суффикс соответствующего домена). Такие имена могут использоваться в рамках домена. Среди доменов верхнего уровня (суффикс для которых не содержит точек, кроме конечной) выделяют всем известные com, edu, org и т.д., а также домены для стран (ua для Украины). Есть специальный домен агра, используемый для обратного превращения IP-адресов в DNS-имена.

Поддомен (англ. subdomain) — подчинённый домен (например, wikipedia.org — поддомен домена org, а ru.wikipedia.org — домена wikipedia.org). Теоретически такое деление может достигать глубины 127 уровней, а каждая метка может содержать до 63 символов, пока общая длина вместе с точками не достигнет 254 символов. Но на практике регистраторы доменных имён используют более строгие ограничения. Например, если у вас есть домен вида mydomain.ru, вы можете создать для него различные поддомены вида mysite1.mydomain.ru, mysite2.mydomain.ru и т. д.

 

Распределение ответственности

Распределение ответственности за зоны DNS-дерева - важнейшая характеристика доменных имен. Нет ни одной организации или компании, которая бы руководила отображением для всех отметок дерева. Есть специальная организация (Network Information Center, NIC), управляющая доменом верхнего уровня и делегирующая ответственность другим организациям других зон. Зоной называют часть DNS-дерева, которая администрируется отдельно. Примером зоны есть домен второго уровня (например, kharkov.ua). Многие организации разделяют свои зоны на меньшие согласно доменов следующего уровня (например, kpi.kharkov.ua, kture.kharkov.ua), аналогичным образом делегируя ответственность за них. В этом случае зоной верхнего уровня считают часть домена, которая не включает выделенные в ней зоны.

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

Получение IP-адреса

Если сервер имен не имеет необходимой информации, он ее ищет на других серверах. Процесс получения такой информации называют итеративным запросом (iterative query).

Рассмотрим итеративный запрос получения IP-адреса для имени www.kpi.kha- rkov.ua. Сначала локальный сервер связывается с корневым сервером имен (root name server), ответственным за домен верхнего уровня (.). По состоянию па 2004 в Интернете было 13 таких серверов, каждый из них должен был быть известен всем другим серверам имен. Корневой сервер имен хранит информацию о серверах первого уровня. Получив запрос на отображение имени, он определяет, что это имя относится не к его зоне ответственности, а к домену.uа, и возвращает локальному серверу информацию об адресах и именах всех серверов соответствующей зоны. Далее локальный сервер обращается к одному из этих серверов с аналогичным запросом. Тот сервер содержит информацию о том, что для зоны kharkov.ua есть свой сервер имен, в результате локальный сервер получает адрес этого сервера. Процесс повторяют до тех пор, пока требование не поступит на сервер, ответственный за домен kpi.kharkov.ua, что может вернуть корректную IP-адрес.

Кэширование IP-адресов

Кэширования IP-адресов позволяет значительно уменьшить нагрузку на сеть. Когда сервер имен получает информацию об отображении (например, IP-адрес, соответствующий доменному имени), он сохраняет эту информацию локально (в специальном кэше). Следующий аналогичный запрос получит в ответ данные из кэша без обращения к другим серверам. Информацию хранят в кэше ограниченное время. Отметим, что, когда для сервера не задана зона, за которую он отвечает, кэширование является его единственной задачей. Где распространен сервер кэширования (caching-only server).

Типы DNS ресурсов

Элемент информации в базе данных DNS называют ресурсной записью (Resource Record, RR). Каждая такая запись имеет класс и тип. Для записи отображения IP-адресов классом всегда является IN.

Рассмотрим некоторые типы DNS-ресурсов. Важнейшим из них является A-запись, связывает полное доменное имя с IP-адресом. Именно на основе таких записей сервера имен возвращают информацию об отражении. В конфигурационном файле сервера имен bind для домена kpi.kharkov.ua A-запись для www.kpi.kharkov.ua задают так: www IN А 144.91.1.21. Еще одним типом записи является CNAME-запись, задает алиас доменного имени. Одному и тому же IP-адресу (A-записи) может соответствовать несколько таких алиасов.


Занятие 7. Особенности DNS

План занятия:

· Элементы DNS

· Рекурсия

· Обратный DNS запрос

· Записи DNS

Элементы DNS

Ресурсная запись — единица хранения и передачи информации в DNS. Каждая ресурсная запись имеет имя (то есть, привязана к определенному доменному имени, узлу в дереве имен), тип и поле данных, формат и содержание которого зависит от типа.

Зона — часть дерева доменных имен (включая ресурсные записи), размещаемая как единое целое на некотором сервере доменных имен (DNS-сервере), а чаще — одновременно на нескольких серверах. Целью выделения части дерева в отдельную зону является передача ответственности за соответствующий домен другому лицу или организации. Это называется делегированием. Как связная часть дерева, зона внутри тоже представляет собой дерево. Если рассматривать пространство имен DNS как структуру из зон, а не отдельных узлов/имен, тоже получается дерево; оправданно говорить о родительских и дочерних зонах, о старших и подчиненных. На практике, большинство зон 0-го и 1-го уровня ('.', ru, com, …) состоят из единственного узла, которому непосредственно подчиняются дочерние зоны. В больших корпоративных доменах (2-го и более уровней) иногда встречается образование дополнительных подчиненных уровней без выделения их в дочерние зоны.

Делегирование — операция передачи ответственности за часть дерева доменных имен другому лицу или организации. За счет делегирования в DNS обеспечивается распределенность администрирования и хранения. Технически делегирование выражается в выделении этой части дерева в отдельную зону, и размещении этой зоны на DNS-сервере, управляемом этим лицом или организацией. При этом в родительскую зону включаются «склеивающие»ресурсные записи (NS и А), содержащие указатели на DNS-сервера дочерней зоны, а вся остальная информация, относящаяся к дочерней зоне, хранится уже на DNS-серверах дочерней зоны.

DNS-сервер — специализированное ПО для обслуживания DNS, а также компьютер, на котором это ПО выполняется. DNS-сервер может быть ответственным за некоторые зоны и/или может перенаправлять запросы вышестоящим серверам.

DNS-клиент — специализированная библиотека (или программа) для работы с DNS. В ряде случаев DNS-сервер выступает в роли DNS-клиента.

Авторитетность (англ. authoritative) — признак размещения зоны на DNS-сервере. Ответы DNS-сервера могут быть двух типов: авторитетные (когда сервер заявляет, что сам отвечает за зону) и неавторитетные (англ. Non-authoritative), когда сервер обрабатывает запрос, и возвращает ответ других серверов. В некоторых случаях вместо передачи запроса дальше DNS-сервер может вернуть уже известное ему (по запросам ранее) значение (режим кэширования).

DNS-запрос (англ. DNS query) — запрос от клиента (или сервера) серверу. Запрос может быть рекурсивным или нерекурсивным.

Система DNS содержит иерархию DNS-серверов, соответствующую иерархии зон. Каждая зона поддерживается как минимум одним авторитетным сервером DNS (от англ. authoritative — авторитетный), на котором расположена информация о домене.

Рекурсия

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

DNS-запрос может быть рекурсивным — требующим полного поиска и нерекурсивным (или итеративным) — не требующим полного поиска.

Аналогично, DNS-сервер может быть рекурсивным (умеющим выполнять полный поиск) и нерекурсивным (не умеющим выполнять полный поиск). Некоторые программы DNS-серверов, например, BIND, можно сконфигурировать так, чтобы запросы одних клиентов выполнялись рекурсивно, а запросы других — нерекурсивно.

При ответе на нерекурсивный запрос, а также при неумении или запрете выполнять рекурсивные запросы, DNS-сервер либо возвращает данные о зоне, за которую он ответствен, либо возвращает ошибку. Настройки нерекурсивного сервера, когда при ответе выдаются адреса серверов, которые обладают большим объёмом информации о запрошенной зоне, чем отвечающий сервер (чаще всего — адреса корневых серверов), являются некорректными и такой сервер может быть использован для организации DDoS-атак.

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

Рассмотрим на примере работу всей системы.

Предположим, мы набрали в браузере адрес ru.wikipedia.org. Браузер спрашивает у сервера DNS: «какой IP-адрес у ru.wikipedia.org»? Однако, сервер DNS может ничего не знать не только о запрошенном имени, но даже обо всём домене wikipedia.org. В этом случае сервер обращается к корневому серверу — например, 198.41.0.4. Этот сервер сообщает — «У меня нет информации о данном адресе, но я знаю, что 204.74.112.1 является ответственным за зону org.» Тогда сервер DNS направляет свой запрос к 204.74.112.1, но тот отвечает «У меня нет информации о данном сервере, но я знаю, что 207.142.131.234 является ответственным за зону wikipedia.org.» Наконец, тот, же запрос отправляется к третьему DNS-серверу и получает ответ — IP-адрес, который и передаётся клиенту — браузеру.

В данном случае при разрешении имени, то есть в процессе поиска IP по имени:

  • браузер отправил известному ему DNS-серверу рекурсивный запрос — в ответ на такой тип запроса сервер обязан вернуть «готовый результат», то есть IP-адрес, либо пустой ответ и код ошибки NXDOMAIN;
  • DNS-сервер, получивший запрос от браузера, последовательно отправлял нерекурсивные запросы, на которые получал от других DNS-серверов ответы, пока не получил ответ от сервера, ответственного за запрошенную зону;
  • остальные упоминавшиеся DNS-серверы обрабатывали запросы нерекурсивно (и, скорее всего, не стали бы обрабатывать запросы рекурсивно, даже если бы такое требование стояло в запросе).

Иногда допускается, чтобы запрошенный сервер передавал рекурсивный запрос «вышестоящему» DNS-серверу и дожидался готового ответа.

При рекурсивной обработке запросов все ответы проходят через DNS-сервер, и он получает возможность кэшировать их. Повторный запрос на те же имена обычно не идет дальше кэша сервера, обращения к другим серверам не происходит вообще. Допустимое время хранения ответов в кэше приходит вместе с ответами (поле TTL ресурсной записи).

Рекурсивные запросы требуют больше ресурсов от сервера (и создают больше трафика), так что обычно принимаются от «известных» владельцу сервера узлов (например, провайдер предоставляет возможность делать рекурсивные запросы только своим клиентам, в корпоративной сети рекурсивные запросы принимаются только из локального сегмента). Нерекурсивные запросы обычно принимаются ото всех узлов сети (и содержательный ответ даётся только на запросы о зоне, которая размещена на узле, на DNS-запрос о других зонах обычно возвращаются адреса других серверов).

Обратный DNS запрос

DNS используется в первую очередь для преобразования символьных имён в IP-адреса, но он также может выполнять обратный процесс. Для этого используются уже имеющиеся средства DNS. Дело в том, что с записью DNS могут быть сопоставлены различные данные, в том числе и какое-либо символьное имя. Существует специальный домен in-addr.arpa, записи в котором используются для преобразования IP-адресов в символьные имена. Например, для получения DNS-имени для адреса 11.22.33.44 можно запросить у DNS-сервера запись 44.33.22.11.in-addr.arpa, и тот вернёт соответствующее символьное имя. Обратный порядок записи частей IP-адреса объясняется тем, что в IP-адресах старшие биты расположены в начале, а в символьных DNS-именах старшие (находящиеся ближе к корню) части расположены в конце.

Записи DNS

Записи DNS, или Ресурсные записи (англ. Resource Records, RR) — единицы хранения и передачи информации в DNS. Каждая ресурсная запись состоит из следующих полей:

  • имя (NAME) — доменное имя, к которому привязана или которому «принадлежит» данная ресурсная запись,
  • TTL (Time To Live) — допустимое время хранения данной ресурсной записи в кэше неответственного DNS-сервера,
  • тип (TYPE) ресурсной записи — определяет формат и назначение данной ресурсной записи,
  • класс (CLASS) ресурсной записи; теоретически считается, что DNS может использоваться не только с TCP/IP, но и с другими типами сетей, код в поле классопределяет тип сети,
  • длина поля данных (RDLEN),
  • поле данных (RDATA), формат и содержание которого зависит от типа записи.
  • Наиболее важные типы DNS-записей:
  • Запись A (address record) или запись адреса связывает имя хоста с адресом протокола IPv4. Например, запрос A-записи на имя referrals.icann.org вернёт его IPv4-адрес — 192.0.34.164.
  • Запись AAAA (IPv6 address record) связывает имя хоста с адресом протокола IPv6. Например, запрос AAAA-записи на имя K.ROOT-SERVERS.NET вернёт его IPv6-адрес — 2001:7fd::1.
  • Запись CNAME (canonical name record) или каноническая запись имени (псевдоним) используется для перенаправления на другое имя.
  • Запись MX (mail exchange) или почтовый обменник указывает сервер(ы) обмена почтой для данного домена.
  • Запись NS (name server) указывает на DNS-сервер для данного домена.
  • Запись PTR (pointer) или запись указателя связывает IP-адрес хоста с его каноническим именем. Запрос в домене in-addr.arpa на IP-адрес хоста в reverse форме вернёт имя (FQDN) данного хоста (см. Обратный DNS-запрос). Например, (на момент написания) для IP-адреса 192.0.34.164 запрос записи PTR 164.34.0.192.in-addr.arpa вернёт его каноническое имя referrals.icann.org. В целях уменьшения объёма нежелательной корреспонденции (спама) многие серверы-получатели электронной почты могут проверять наличие PTR-записи для хоста, с которого происходит отправка. В этом случае PTR-запись для IP-адреса должна соответствовать имени отправляющего почтового сервера, которым он представляется в процессе SMTP-сессии.
  • Запись SOA (Start of Authority) или начальная запись зоны указывает, на каком сервере хранится эталонная информация о данном домене, содержит контактную информацию лица, ответственного за данную зону, тайминги (параметры времени) кеширования зонной информации и взаимодействия DNS-серверов.
  • SRV-запись (server selection) указывает на серверы для сервисов, используется, в частности, для Jabber и Active Directory.



Поделиться:


Последнее изменение этой страницы: 2016-04-08; просмотров: 448; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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