У вас вопросы?
У нас ответы:) SamZan.net

тема имен доменов DNS Domin Nme System позволяет обращаться к компьютерам не только по IP адресам но и по индивидуаль

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024

Лекция 11

Имена доменов в Internet

Система имен доменов DNS (Domain Name System) позволяет обращаться к компьютерам не только по IP адресам, но и по индивидуальным именам. Например, IP адрес 192.102.249.3  задает имя cerfnet.com Когда сеть была молодой, существовало простое пространство имен, достаточно было загрузить файл hosts.txt, поддерживаемый NIC (сетевой информационный центр). Если файла нет, то требовалось указывать IP адрес. Nic изменяла файл. Это возможно только в маленькой сети.

В Internet  применяется иерархическое пространство имен. Определенное имя DNS  обозначает компьютер. Каждое имя называется меткой.

 Домен – сфера деятельности, выполнение каких-либо функций. Здесь ftp – сервер FTP, Microsoft –организация, com – коммерческая.

 DNS – хорошо организованная распределенная база данных.

Структура DNS

Три типа доменов первого уровня:

  1.  ARPA – домен только для преобразования адресов IP в DNS имя. Запрос: 168.158.20.102. inaddr.ARPA  Перестала существовать.
  2.  Сфера деятельности. Три буквы: int – международные, gov, edu, mil, net, - остальные, org, com. В 1997 году добавлены 7 доменов:.

Firm

Фирмы

Rec

Отдых

Store

Торговые фирмы

Info

Информация

Web

Объекты Web

nom

прочие

Arts

искусство

Имена образуются конкатенацией:  хост. поддомен. домен kernal.generic.edu.

  1.  Национальные. Две буквы. Страна пребывания: ac, ru, zw.

Информационный центр InterNIC обслуживает домены высшего уровня (дает имена). Организации обслуживают свою зону (дают имена нижнего уровня).

Сервер доменов (сервер DNS) – программа, преобразующая имена доменов в IP адрес. Чтобы соединиться с каким-либо компьютером, сначала обращаются к серверу DNS. Серверы DNS организованы иерархически, Дерево DNS включает несколько уровней :

DNS состоит из

  •  сервера имен – name server, содержат информацию о именах, зонах, службах;
  •  базы данных – database, каждый хост имеет отдельную запись в базе данных;
  •  программы – определителя имен – name resolver на рабочих станциях.

Все серверы DNS дублированы с точки зрения надежности. Первичный сервер (работающий) передает всю информацию вторичному (дублирующему) один раз за несколько часов.

Преобразование имен в IP адреса.

Клиент обращается к своему серверу DNS. Если адрес находится в зоне этого сервера, то клиент получает адрес. Если домен находится вне зоны, то выполняется преобразование адресов:

  1.  Рекурсивное выполнение – сервер, который не может преобразовать имя сам  обращается  серверу высшего уровня, который может выполнить преобразование. Чаще используется для связи клиента – определителя имен и сервера. Сервер должен найти ответ или возвратить код ошибки.
  2.  Итеративное выполнение – сервер, не выполнивший преобразование, указывает клиенту адрес следующего сервера, к которому нужно обратиться Чаще используется для связи между серверами имен. Сервер может возвратить наиболее подходящее значение.

Пример базы данных

Поле

Содержание

Пример

SOA

Ответственный за домен сервер. Самый доступный источник информации.

Ns1.nougle.com

NS

Серверы имен узла или домена. Перечислены все серверы имен домена/.

Ns1.nougle.com Ns2.nougle.com Ns3.nougle.com

А

IP адрес

H1.nougle.com 128.1.1.1

H2.nougle.com 128.1.15.1

Aliases

Nt1.nougle.com H1.nougle.com

MX

Узел обмена почтовой информацией. Сервер обмена почтой для домена ing.nougle.com с приоритетом 5 (9).

Ing.nougle.com 5 mail1.nougle.com

Ing.nougle.com 9 mail2.nougle.com

PTR

Доменное имя узла

CNAME

Каноническое имя узла. Узел определяется альтернативным доменным именем

TXT

Простой текст

SRV

Запись о расположении службы

RP

Ответственное лицо

Протокол динамической настройки хостов

В больших динамичных сетях включена поддержка DHCP Dynamic Host Configuration Protocol.  Адрес компьютеру дается автоматически это

  •  облегчает перемещение компьютера из одной подсети в другую;
  •  дает возможность использовать меньше адресов.

Например, на 100 компьютеров можно использовать 50 адресов. Работа с DHCP возможна при наличии сервера  WinNT.  

При конфигурации TCP/IP 

  •  можно указать статический IP адрес и несколько серверов DNS для использования имен.
  •  можно указать динамическую настройку IP и использовать службу WINS Windows Internet Service для распознавания имен

WINS автоматически отслеживает изменения при динамическом выделении IP адресов. Кроме того позволяет использовать имена NetBIOS. Например, одинаково преобразуются имена:

One –  имя NetBIOS,  доменное имя One.Comp.com,

Two-  имя TCP/IP,   доменное имя Two.Comp.com 

Средства WINS предоставляет сервер Windows NT. Если сервера нет, или временно не работает, то можно использовать файл Lmhosts.sam.

Статическая и динамическая настройка TCP/IP.

При установке Windows дается имя NetBIOS.

При статическом выделении адреса надо указать

  •  IP адрес хоста,
  •  доменное имя компьютера Two.Comp.com,
  •  имена серверов DNS.

При динамическом выделении адресов сервером DHCP 

  •  IP адрес хоста не указывают,
  •  надо указать IP адреса серверов WINS,
  •  серверы DNS не указывают: сервер DHCP автоматически связывается с сервером DNS.

Указать IP адреса маршрутизаторов (шлюзов). Умалчиваемый шлюз недоступен.

Статическое выделение адреса TCP/IP

Динамическое выделение адреса DHCP

IP адрес хоста

-

Доменное имя компьютера

Доменное имя компьютера

Имена серверов DNS

Имена серверов WINS

IP адреса маршрутизаторов

IP адреса маршрутизаторов

Протокол динамической настройка DHCP.

DHCP имеет несколько режимов:

  •  автоматическое выделение адресов   в постоянное пользование;
  •  динамическое выделение адресов на определенный период:
  •  непосредственное выделение адресов системным администратором дает возможность определять и переопределять адреса хостов вручную. Станция всегда имеет один и тот же IP адрес.

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

  1.  Широковещательный запрос клиента DHCPDISCOVER включает предлагаемый  IP адрес и срок аренды. Маршрутизатор направляет запрос в другие сегменты в соответствии с заданным числом переходов hops.
  2.  Каждый активный сервер, связанный с этим клиентом смотрит, используется ли этот адрес, отвечает DHCPOFFER и передает IP адрес.
  3.  Клиент может получить несколько предложений и выбирает тот сервер, который дает адрес, наиболее близкий к запрошенному.

Освобождения IP адреса:

  1.  Клиент передает сообщение DHCPRELEASE до или после окончания срока аренды.
  2.  Промежуток времени, в течение которого клиент монопольно использует IP адрес, называется сроком аренды.
  3.  Длительность определяется диалогом клиента и сервера REQUEST/OFFER.
  4.  Синхронизация таймеров не производится, поэтому сервер может выделить меньше времени, чем запрошено.
  5.  Для продления срока аренды требуется специальный запрос.
  6.  Для изменения срока аренды используются 32-битные числа- время в секундах от 1 сек до 132 лет.

Использование файлов hosts и Lmhosts

При использовании DNS, если сервер временно не доступен, для распознавания имен используем файл ASCII hosts.sam из папки Windows. Файл содержит таблицу узлов:

  1.  lockalhost
    1.  my.tools.comp.com
      1.  boss

При использовании DHCP, если сервер временно не доступен, для распознавания имен используем файл ASCII Lmhosts.sam из папки Windows. Можно преобразовывать имена NetBIOS. Файл содержит таблицу узлов, содержит ключевые слова:

#PRE – предварительно загружаемые имена (при загрузке Windows),

#DOM- указание удаленного компьютера имен доменов,

#include – включение файла на другом компьютере к распознаванию.

102.54.94.96 my

102.54.95.98 boss

102.54.94.99 server #pre #dom:tiger сервер в домене tiger

#include c:\mydir\Lmhosts  мой собственный файл

#include \\source\dir\Lmhosts  альтернативный источник

Получение адреса компьютера по имени

WinSock имеет функции преобразователи, которые являются клиентами сети Интернет. Эти функции открывают коммуникационной канал и посылают запрос серверу домена.  gethostbyname();

      gethostbyaddr();

Функция преобразования DNS имени в IP адрес

Struct hostent FAR * PASCAL FAR

gethostbyname(const char FAR* name);

lpHostEnt=gethostbyname(“cerfnet.com”);

Возвращаемое значение lpHostEnt –указатель на структуру PHOSTENT. Содержание структуры:

Struct hostent

{

char FAR* h_name;  //официальное имя хоста

 char FAR* FAR*h_aliases; //массив псевдонимов

short h_addrtype; // тип возвращаемого адреса константа AF_INET

short h_length; //длина адреса константа AF_INET_LENGTH

char FAR* FAR* h_addr_list;

//список адресов хоста порядок сетевой

#define h_addr h_addr_list[0]

}

Содержание структуры сохраняется только до следующего вызова gethostbyname(). Если функция выполнена успешно, то получим адрес в виде десятичного сточкой:

LPSTR szIPAddr;

szIPAddr=inet_ntoa(*(LPIN_ADDR)*(lpHostEnt->h_add_list));

h_add_list указывает на список IP адресов сетевого компьютера (по числу интерфейсов). Первый адрес преобразуется к десятичному с точкой.

Char FAR* PASCAL FAR inet_ntoa(struct in_addr in)

Структура содержит адрес в двух формах 4 байта и 2*2 байта. Возвращает указатель на строку, содержащую IP адрес «десятичное с точкой».

Получение имени компьютера по адресу

Преобразуем IP адрес в формате десятичное с точкой в 32 разрядный адрес:

DWORD dwIPAddr;

DwIPAddr=inet_addr(“129.79.28.27”);

Получаем адрес в переменной 32-х разрядной dwIPAddr. По этому адресу получим имя компьютера:

LpHostEnt = gethostbyaddr ((lpstr)&dwIPAddr, AF_INET_LENGTH,PF_INET);

Результат получаем в поле h_name структуры hostent:

LpHostEnt->h_name;

Выводы:

  1.  Система доменов Internet предназначена для пользователей, желающих обращаться к компьютеру по имени.
  2.  Система доменов Internet преобразует имя компьютера и адрес в различной форме.
  3.  База данных DNS является распределенной, серверы DNS взаимодействуют между собой.

Протокол Finger

В UNIX строка текста заканчивается переводом каретки (CR), в ДОС – CR+LF. В других системах переводом строки (LF). Прервать программу в разных система Ctrl^C или Esc. Устранение несоответствия – это функция уровня представления, которую выполняет протокол виртуального терминала TELNET.

Виртуальный терминал NVT (RFC 854)  - это воображаемое устройство, выполняющее соглашение о работе компьютерного терминала. В спецификации NVT указано, какими символами нужно кодировать.

Формат NVT. Для кодирования используется ASCII код, на 1 символ затрачивает 7 битов можно кодировать 128 символов. Для командные символов используем восьмой  бит. Всего кодируют 95 символов и 33 управляющих символов, из которых NVT использует только 8: NUL,BEL,CR,LF,BS,HT,VT,FF.

Протокол Finger

Позволяет получить информацию о пользователях. Запросы Finger выполняются в формате NVT:

  •  Запрос информации о всех пользователях – передать пустую строку.
  •  Запрос информации о пользователе – передать идентификатор пользователя.

Программа Finger содержит:

  1.  получение адреса хоста;
  2.  создание сокета для связи с хостом;
  3.  получение информации о службе Finger на удаленном компьютере;
  4.  соединение сокета;
  5.  послать запрос Finger;
  6.  принять информацию на запрос Finger;
  7.  освободить ресурсы и закончить программу.

Начало работы. Инициализация сокета:

#define WINSOCK_VERSION 0x0101

WSADATA wsaData;

WSAStartup(WINSOCK_VERSION,&wsaData);

  1.  Получение IP адреса удаленного компьютера:

 lpHostEnt=gethostbyname(“cerfnet.com”);

lpHostEnt – указатель на структуру, содержащую сведения о компьютере.

2.   Создаем сокет:

hSocket = socket (PF_INET, SOCK_STREAM, DEFAULT_PROTOCOL)

DEFAULT_PROTOCOL- протокол по умолчанию.

3.Получение информации о сетевой службе:

 LpServEnt=getservbyname(“Finger”,NULL);

Finger”- указатель на имя службы. NULL – указатель на протокол по умолчанию.

Функция обращается к базе данных по сетевым службам, в которой хранится информация о Finger, Ftp, Mail, Telnet. Файл SERVNET содержит данные о сервисе. Структура servent содержит данные о сетевой службе.

struct servent

{  char FAR* s_name; // название службы

  char FAR* FAR* s_aliases;// список псевдонимов

  short s_port;  // номер порта протокола (79)

  char FAR* s_proto; //транспортный протокол,   работающий с    этой службой

}

Функция getservbyname() исследует базу данных с информацией о сервисе:

Имя сервиса

Протокол, порт

Псевдоним

Echo

7/tcp

-

Echo

7/udp

-

Smtp

25/tcp

Mail

Time

37/tcp

Timserver

Time

37/udp

Timserver

ftp

21/tcp

Finger

79/tcp

Если получаем информацию о службе echo с использованием функции:

Getservbyname(“echo”,NULL);

То заполняем структуру Servent:

s_name[]=”echo”;

s_aliases=NULL;

s_port=7;

s_proto[]=”tcp”;

4.  Соединяем сокет

Структура адреса сокета:

SOCKADDR_IN sockAddr;

sockAddr_in

{short  sin_family; // тип адреса сокета AF_INET

u_short  sin_port;  // номер порта

struct in_addr sin_addr;// IP адрес удал.компьютера

char  sin_zero[8]; // не используется

};

Для обращения к удаленному компьютеру нужен его адрес. В структуре sin_addr содержится объединение union, служащее для IP адреса 4*8 2*16 бит.

Формируем структуру адреса сокета:

sockAddr.sin_family=AF_INET;

sockAddr.sin_port=iFingerPort;

sockAddr.sin_addr=*((LPIN_ADDR)*lpHpstEnt->h_addr_list);

Соединяем сокет:

hconnect = connect(hSocket,(PSOCADDR) & sockAddr, sizeof(sockAddr));

Чтобы соединить сокет, вызываем функцию connect() с аргументом дескриптор сокета и адрес сокета.

Чтобы получить дескриптор сокета, вызываем socket(),указывая тип протокола tcp или udp.

Для создания сокета следует заполнить структуру данных, указав порт протокола и IP адрес удаленного компьютера.

Чтобы получить номер порта, вызаваем getservbyname(), указывая наименование сетевой службы и протокол.

Чтобы получить IP адрес, вызываем функцию для DNS gethostbyname().

5.Посылаем запрос Finger

Используем функцию send():

nCharSend = send(nSocket, szFingerQuery, lstrlen (szFingerQuery), send_flags);

SzFingerQuery[100] – буфер для хранения запроса Finger

lstrlen (szFingerQuery)-

send_flags=0 - флаги функции send могут быть MSG_DONTROUTE нельзя маршрутизировать, MSG_OOB данные вне диапазона.

Для запроса обо всех пользователях нужно передать пустую строку.

Запрос нужно записать в буфер SzFingerQuery. Чтобы сформировать его в NVT нужно добавить CRFL (\n):

wsprintf(szFingerQuery,”%s\n”,FINGER_QUERY);

nCharSend = send(nSocket, szFingerQuery, lstrlen (szFingerQuery), send_flags);

Функция возвращает количество переданных байтов. Текст сообщения находится в FINGER_QUERY –имя пользователя.

6. Получаем ответное сообщение

Данные принимаем в цикле:

Do

{ nCharRecv = recv(nSocket, (LPSTR)&szFingerInfo[n],  sizeof(szFingerInfo)-n, RECV_FLAGS);

n+=nCharRecv;

}

while(nCharRecv>0);


Корневой домен

ARPA

mil

int

gov

edu

com

et

org

ae

ru

zw

microsoft

star

sun

win

nets

proto

Host1

Host2

Host3

Сервер корневого домена

Сервер informika.ru

Сервер indiana.edu

Сервер dec.com

Программа-клиент

Программа-сервер

Клиент определитель имен

Сервер имен

IBM.com

Сервер имен

корневой

Сервер имен

DHCP клиент

DHCP сервер В

DHCP сервер А

DHCPDISCOVER FFFFFF

IP? Срок?

DHCPOFFER B

DHCPOFFER  A

DHCPREQUEST к А

IP? Срок?




1. Расчет импульсного усилителя
2. Туризм І семестр 20132014 н.1
3. Николай Гаврилович Чернышевский
4. тема технического обслуживания и ремонта ЭПС
5. бизнес планирования 2
6. Альтера [5] 3
7. Антигравитация вектор силы
8. социальное государство
9. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ по проведению практических занятий по фармакологии для преподавателей и
10. патриотическому воспитанию дошкольников Борисюк Е.
11. задачи непосредственно подчиненному личному составу снайперу стрелку ~ санитару и другим
12. Про затвердження бюджету Фонду соціального страхування від нещасних випадків на виробництві та професійних
13. Для определения магнитных азимутов и склонений магнитной стрелки подписываемых на топографических карта
14. Анжу Петр Федорович
15. Жилищная политика как составляющая государственной социальной политики Украины
16. Переподготовка и повышение квалификации гражданских служащих
17. відлига в укр.суспільнополітичному житті
18. Лекция 1 Миокардиты Платошкин Э
19. Проблема защиты прав человека как важнейшее направление судебной реформы современной России
20. Расул Гамзатов