Редактирование: UNИX, осень 2008, 10 лекция (от 03 декабря)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 40 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 1: Строка 1:
-
* '''Диктофонная запись:''' http://esyr.org/lections/audio/uneex_2008_winter/uneex_08_12_03.ogg
+
= Сегодня прикладной уровень TCP/IP в Linux. =
-
 
+
-
<gallery>
+
-
Изображение:Uneex 081203 desk 1.jpg
+
-
Изображение:Uneex 081203 desk 2.jpg
+
-
</gallery>
+
-
 
+
-
= Лекция =
+
-
== Вступление ==
+
-
Сегодня прикладной уровень TCP/IP в Linux.
+
Первое — DNS.
Первое — DNS.
Строка 18: Строка 9:
Казалось бы, мы обсудили весь функционал в linux для работы с сетью, тем не менее, есть одна базовая система, без правильной настройки которой ей пользоваться трудно.
Казалось бы, мы обсудили весь функционал в linux для работы с сетью, тем не менее, есть одна базовая система, без правильной настройки которой ей пользоваться трудно.
-
== Проблема ==
 
Откуда доменная система имён растёт?
Откуда доменная система имён растёт?
Что мы имеем на уровне ip: что мы имеем виду под интернетом — доступную жёсткую систему раздачи адресов, связанную с топологией сети.
Что мы имеем на уровне ip: что мы имеем виду под интернетом — доступную жёсткую систему раздачи адресов, связанную с топологией сети.
Когда принимается решение о выдаче ip-адресов, это решение, эти циферки, которые будут выданы, берутся не с потолка.
Когда принимается решение о выдаче ip-адресов, это решение, эти циферки, которые будут выданы, берутся не с потолка.
Существует центральная организация, которая их раздаёт, существуют всякие держатели больших пулов, которые раздают их дальше.
Существует центральная организация, которая их раздаёт, существуют всякие держатели больших пулов, которые раздают их дальше.
- 
У нас есть руцентр.
У нас есть руцентр.
То есть, если нужно подключить несколько десятков компьютеров, то выбирается организация, где цены лучше, и там их покупаешь.
То есть, если нужно подключить несколько десятков компьютеров, то выбирается организация, где цены лучше, и там их покупаешь.
- 
У этой архитектуры есть три недостатка:
У этой архитектуры есть три недостатка:
-
* IP адрес — такая штука, которую сложно запомнить. Один можно запомнить, а вот сотню адресов сложно. Эта задача решалась, и очень простым способом: есть '''/etc/hosts''', в котором перечислены в очень простом формате ip-адрес и его имена. Пока в интернете было компьютеров 20—30, это замечательно работало. Когда их стало больше, задумались о том, что надо по-другому организовать эту архитектуру.
+
* IP адрес — такая штука, которую сложно запомнить. Один можно запомнить, а вот сотню адресов сложно. Эта задача решалась, и очень простым способом: есть /etc/hosts, в котором перечислены в очень простом формате ip-адрес и его имена. Пока в интернете было компьютеров 20—30, это замечательно работало. Когда их стало больше, задумались о том, что надо по-другому организовать эту архитектуру.
-
* Как только выяснилось, что интернет это не три локальных сети, а много сетей, то возникла проблема определения по ip-адресу компьютера. Точнее, как определить административную принадлежность компьютера по сравнению с его жёсткой ip-адресацией, которая зависит исключительно от топологии сети. Необходима система именования, отвязанная от топологии сети.
+
* Как только выяснилось, что интернет это не три локальных сети, а много сетей, то возникла проблема определения по ip-адресу компьютера. Точнее, как определить административную принадлежность компьютера по сравнению с его жёсткой ip-адресацией, которая зависит исключительно от топологии сети. Необходима система именования, отвязанная от тополгии сети.
* Понятие административной принадлежности имеет оборотное свойство: проблема не только в том, чтобы по имени компьютера выяснить, зачем он вообще нужен, проблема в том, чтобы грамотно раздать людям из различных зон административной ответственности права раздавать эти имена.
* Понятие административной принадлежности имеет оборотное свойство: проблема не только в том, чтобы по имени компьютера выяснить, зачем он вообще нужен, проблема в том, чтобы грамотно раздать людям из различных зон административной ответственности права раздавать эти имена.
Задача при этом такова: нужно придумать имена, при том имена должны отражать административную структуру интернета, и нужно решить задачу, чтобы каждый администратор именовал свои компьютеры. Это намекает на распределённую систему, которая будет заниматься преобразованием имён в ip-адреса и обратно.
Задача при этом такова: нужно придумать имена, при том имена должны отражать административную структуру интернета, и нужно решить задачу, чтобы каждый администратор именовал свои компьютеры. Это намекает на распределённую систему, которая будет заниматься преобразованием имён в ip-адреса и обратно.
-
== DNS как решение ==
 
Каким образом это сейчас решается с помощью DNS?
Каким образом это сейчас решается с помощью DNS?
Существует некая организация, которая принимает решение о заведении корневых домненов --- ICANN. (недавно она продавилась под китайцами и решила начать раздавать корневые домены в национальных языках).
Существует некая организация, которая принимает решение о заведении корневых домненов --- ICANN. (недавно она продавилась под китайцами и решила начать раздавать корневые домены в национальных языках).
-
 
+
Корневой домен, домен первогоуровня это некое окончание, самая общая часть.
-
Корневой домен, домен первого уровня это некое окончание, самая общая часть.
+
Доменов первого уровня бывает несколько видов в соответствии с неким предназначением, национальные и разные другие, принятые недавно.
Доменов первого уровня бывает несколько видов в соответствии с неким предназначением, национальные и разные другие, принятые недавно.
-
Их немного, в районе двух сотен.
+
Их немного, в район двух сотен.
-
 
+
Кроме того, в этой рг. надо зарег., чтобы разд. домены в зоне ru. Это озн. зона тв. внутри этой зоны лежит на этой орг (в случае с ru это руцентр), и ICANn уже практ. всё равно, что ам творится. Аналогично у руцентра рег. некая орг., которая говорит, что отв., например, за зону msu.ru, и дальше она уже отв. за неё. И тут уже, помимо разд. зон, ещё раздаются имён компьютерам в этом домене.
-
Кроме того, в этой организации надо зарегистрироваться, чтобы раздавать домены в зоне ru.
+
-
Это определяет, что ответственность внутри этой зоны лежит на зарегистрированной организации (в случае с ru это руцентр), и ICANN уже практически всё равно, что там творится.
+
-
 
+
-
Аналогично у руцентра регистрируется некая организация, которая говорит, что она отвечает, например, за зону msu.ru.
+
-
И тут уже, помимо раздачи зон, ещё раздаются имёна компьютерам в этом домене.
+
И тут решаются все три задачи.
И тут решаются все три задачи.
-
Такая организация называется доменной.
+
Такая орг. наз. доменной. Произошло от слова домен, которое озн. феод, владение феодала.
-
Произошло от слова домен, которое означает феод, владение феодала.
+
Под королём были домены первого уровня.
Под королём были домены первого уровня.
-
При этом соблюдался принцип: '''вассал моего вассала не мой вассал'''.
+
При этолм собл. при этом собл. приницп вассал мего вассала не мой вассал.
-
По этой причине это и называется доменная система.
+
По этой причине это наз. доменная система.
-
Эта структура была хороша как самоорганизация, пока уровень связности был в пределах одного уровня.
+
Эта структура была зороша как самоорг. пока уровень связности был в пределахз одного уровня.
-
== Сервисы ==
+
Как это устр. на самом нижнем уровне:
-
Как это устроено на самом нижнем уровне:
+
-
Есть '''/etc/services''', в котором прописано соответствие сервисам портов.
+
Есть /etc/services, в котором прописано соотв. сервисам портов.
-
Клиент подключается по указанному порту к серверу, за которым его ждут услуги.
+
клиент подкл. по ук. порту к серверу, за которым его ждут услуни.
-
manmachine: диапазон красных портов
+
manmachine: диапазон красныйх портов
-
К тому, что происходит при использовании данного порта данный порт отношения не имеет. При этом было бы хорошо договориться, что определённый порт соответствовал определённому протоколу.
+
К тому, что происх. при исп. данного пората данный порт не имеет. При этом было бы хорошо договориться, что опр. порт. соотв. опр. протоколу.
-
Это соответствие существует чисто для удобства пользователя. Мы когда подключаемся по 80 порту, ожидаем встретить http-сервер, и так далее.
+
Это соотв. оно такое чисто для удобстве польз. Мы когда подкл. по 80 порту, то ожидаем всетитть http-сервер, и так далее.
-
Но всегда нужно иметь в виду, что на прикладном уровне это штука далеко не всегда встречающаяся.
+
Но всегда нужно иметь в виду, что на прикл. уровне это штука далеко не всегда встречающаяся.
-
В /etc/services можно увидеть порт 53, который отвечает как раз за dns.
+
В /etc/services модноу увидеть порт 53, которыйотв. как раз за dns.
-
Эта технология привязки службы к определённому порту является частью более общего механизма, который сужает понятие просто прикладного протокола до понятия клиент-серверного прикладного протокола.
+
Эта технология, технология привяз. службы к опр. порту явл. частью более общего мех., который сужает понятие просто прикл. протокол до понятия клиент-серв. прикл. протокол. Когда говорится о взаимод .по какому-то порту говорится имено о клиент-серверном взаимод. Это сущ. огранич. по сравнению с симметричной схемой. Это к тому, почему эта штука наз. services.
-
Когда говорится о взаимодействии по какому-то порту, говорится именно о клиент-серверном взаимодействии.
+
-
Это существенное ограничение по сравнению с симметричной схемой.
+
-
Это к тому, почему эта штука называется services.
+
-
Этот сервер, но в случае dns он заявлен как отвечающицй на tcp, так и на udp.
+
Этот сервер, но в случае dns он заявлен как отвечающицй на tcp, так и на udp. Почему так: запрос на преобр. ip-адреса в доменное имя и обр. как правило укл. в один. пакет. Соотв., ответ тоже, как правило, укл. в один пакет. Поск. такой запрос и такой ответ предст. собой датаграмму, почему бы его не исп. К тому же, исп. TCP утяжелило бы обмен примерно в 4 раза.
-
Почему так: запрос на преобразование ip-адреса в доменное имя и обратно как правило укладывается в один пакет.
+
-
Соответственно, ответ тоже, как правило, укладывается в один пакет.
+
-
Поскольку такой запрос и такой ответ представляют собой датаграмму, почему бы не использовать протокол датаграмм?
+
-
К тому же, использование TCP утяжелило бы обмен примерно в 4 раза.
+
-
Клиентская часть, resolver, есть практически на любой машине.
+
Клиентская часть, resolver, есть прак. на любой машине. Если его нет, то пользователь считает, что интернета нет.
-
Если его нет, то пользователь считает, что интернета нет.
+
-
Есть '''/etc/resolv.conf''', где указано, где находится DNS сервер.
+
Есть /etc/resolv.conf, где указано, где нах. DNS сервер.
-
К слову о FQDN, полном имя домена: в '''/etc/resolv.conf''' указываются две вещи: какие компьютеры являются dns-серверами, и вторая информация --- список доменов, в которых будет производиться поиск, если вы указали не полное имя, а краткое.
+
К слову, FQDN, полное имя домена, в /etc/resolv.conf указ. две вещи: какие компьютеры явл. dns-серверами, и вторая инфомация --- список доменов, в которых будет производиться поиск, если вы указали не полное имя, а краткое.
-
'''/etc/resolv.conf''' может не использоваться, если resolver запускается в chroot (например, так в alt).
+
/etc/resolv.conf может не исп., если resolver запускается в chroot (анпример, так в alt). Поэтому, например, если руками модиф. файл, далеко не сразу службы, которые его исп., начнут его исп.
-
Поэтому, например, при ручной модификации файла, далеко не сразу службы, которые его используют, начнут его использовать.
+
-
== Архитектура ==
+
Теперь об арзитектуре. Очевидно, с т. з. программы рещализация долнжа быть такая: есть понятие "сервер", этот сервер. Каждая орг. должна иметь такого рода севрвер, которая предост. услуги преобр. имён и адресов в соотв. с теми именами, которые есть.
-
Теперь об архитектуре.
+
-
Очевидно, с точки зрения программы реализация должна быть такая: есть понятие "сервер", это сервер.
+
-
Каждая организация должна иметь такого рода сервер, который предоставляет услуги преобразования имён и адресов в соответствие с теми именами, которые есть.
+
-
Каждый доменный сервер должен знать всю информацию об именах в своём домене и информацию о серверах, которые обслуживают зоны в домене.
+
Каждый доменный сервер должен знать всю инф. об именах в своём домене и инф. о серверазх, которые обслуж. зоны в домене.
-
Получается, что эта такая иерархически распределённая база данных.
+
Получается, что эта такая иерарх. распред. база данных.
-
Далее. вот прописал какой-то сервер в качестве сервера доменных имён.
+
Далее. вот прописал какой-то сервер в качестве сервера доменных имён. Далее вопрос: я же хочу спрашивать не только имена в этом домене, но и всякие другие. Должен ли он иметь full view? Конечно, нет. Хорошо, а как он будет узнавать? Никак, он скажет, спроси у корневого. Спрашиваем у корневого: он говорит, я не знаю, знаю про com. Кто знает про com, знает только про cdrom.com. А тот уже знает про ftp.cdrom.comю
-
Далее вопрос: я же хочу спрашивать не только имена в этом домене, но и всякие другие.
+
-
Должен ли он иметь full view?
+
-
Конечно, нет.
+
-
 
+
-
Хорошо, а как он будет узнавать?
+
-
Никак, он скажет, спроси у корневого.
+
-
Спрашиваем у корневого: он говорит, я не знаю, знаю про com.
+
-
Кто знает про com, знает только про cdrom.com.
+
-
А тот уже знает про ftp.cdrom.com.
+
Вот это — рекурсивный запрос.
Вот это — рекурсивный запрос.
Строка 123: Строка 81:
При этом делается такая прогулка.
При этом делается такая прогулка.
-
Если бы все компьютеры в интернете работали бы так, то к корневым серверам было бы слишком много запросов.
+
Если бы все компьютьеры в интирнете работали бы так, то к корневым серверам было бы слишком много запросов. Поэтому обычно так не делают, хотя можно. Поэтому обычно можно сначала послать прямой запрос своему dns-серверу, колторый уже может ответить да, нет, не знаю. Кроме того, клиентские машины обычно не делают рекурсивные запросы, они посылают только прямые, а уже dns-сервер занимается рекурсивным запросом и занимается кжшированием. Почему это улчше: елси целая сеть ломится по какому-то ip, то в кэше останутся ip dns-серверов для ежё для com и cdrom.com.
-
Поэтому обычно так не делают, хотя можно.
+
-
Поэтому обычно можно сначала послать прямой запрос своему dns-серверу, который уже может ответить да / нет / не знаю.
+
-
Кроме того, клиентские машины обычно не делают рекурсивные запросы, они посылают только прямые, а уже dns-сервер занимается рекурсивным запросом и занимается кешированием.
+
-
Почему это лучше: если целая сеть ломится по какому-то ip, то в кеше останутся ip dns-серверов ещё для com и cdrom.com.
+
-
Для того, чтобы не происходило злоупотребление, есть практика рекурсивные запросы выполнять только для своих хостов.
+
Для того, чтобы не происзодило злоупотребление, есть практика рекурсивные запросы выполнять только для своих хостов.
-
=== Кэш запросов ===
+
Тепер, что кас. способову увел. безобразия:
-
Теперь, что касается способов увеличения безобразия.
+
* Кэш
-
В каждой такой таблице соответствия ip-адресов и имён, которые хранит dns-сервер, есть ttl. Она говорит, какое время полученная запись может считаться валидной. Зачем это сделано: чтобы если понадобится изменить ip-адрес, об этом узнали через некоторое время. Обычно TTL выставляется в сутки. Если же у вас сеть меняется часто, то можно уменьшить ttl, но нужно быть готовым к увеличению нагрузки.
+
* В каждой такой таблице соотв. ip-адрсеов и имён, которые хранит dns-сервер есть ttl. Она говорит, какой время полученная запись может считаться валидной. Зачем это сделано: чтобы если понадобится изменить ip-адрес, об ээтом узнали через некоторое время. Обычно TTL выставляется у сутки. Если же у вас сеть меняется часто, то можно уменьшить ttl, но нужно быть готовым к увелич. нагрузки.
-
Есть ещё expired, который используется, если ttl просрачивается, а dns недоступен.
+
Есть ещё expired, который исп., если ttl просрачивапется, а dns недоступен.
-
=== Дополнительные возможности ===
+
Есть ещё одна идея, которая позв. убыстрить и увеличить связность: обычно для кжадой зоны указывается неск. серверов (минимум 2), при этом хорошо, чтобы они были в разных подсетях класса B. Это увле. надёжность. В слчаях, когда нужно обращаться напрямую, тут возникает вопрос, кто истина в посл. инстанции. И тут возникает механизм передачи зон. То есть редакт. зона на одной машине, а скач. на другой. И он тоже призн. авторитетным.
-
Есть ещё одна идея, которая позволяет убыстрить и увеличить связность: обычно для каждой зоны указывается несколько серверов (минимум 2), при этом хорошо, чтобы они были в разных подсетях класса B.
+
-
Это увеличивает надёжность.
+
-
В случаях, когда нужно обращаться напрямую, тут возникает вопрос, кто истина в последней инстанции.
+
-
И тут возникает механизм передачи зон.
+
-
То есть редактируется зона на одной машине, а скачивается на другой.
+
-
И он тоже признаётся авторитетным.
+
-
По какому признаку принимается решение, что данный сервер авторитетен на вопросы про DNS?
+
По какому призн. принимается реш., что данный сервер авторитетен на вопросы про DNS. Помимо преоюр. имён адреса DNS оказ. услуги по преобр. имён во что угодно. A — адреса. NS — списки авторитетных адресов для данного домена. MX — адрес.имя постового сервера. TXT — текст.
-
Помимо преобразования имён адреса, DNS оказывает услуги по преобразованию имён во что угодно.
+
-
* A — адреса.
+
-
* NS — списки авторитетных адресов для данного домена.
+
-
* MX — адрес/имя почтового сервера.
+
-
* TXT — произвольный текст.
+
-
DNS-сервера используются для того, чтобы хранить информацию о спамерах.
+
DNS-сервера исп. для того, чтобы хранить инф. о спамерах. Оно устр. именно как dns-сервер. Ему скармливается ip задом наперёд, и по ответу понятно, что это за ip.
-
Оно устроено именно как dns-сервер.
+
-
Ему скармливается ip задом наперёд, и по ответу понятно, что это за ip.
+
-
Остались две с половиной темы:
+
Остались две темы:
-
* Завершить DNS
+
* Заверш DNS
* RPC
* RPC
* p2p
* p2p
 +
= Конспект Kda =
= Конспект Kda =

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Разделы