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

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

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

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

ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 41 килобайт. Страницы, размер которых приближается к 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.
Это определяет, что ответственность внутри этой зоны лежит на зарегистрированной организации (в случае с ru это руцентр), и ICANN уже практически всё равно, что там творится.
Это определяет, что ответственность внутри этой зоны лежит на зарегистрированной организации (в случае с ru это руцентр), и ICANN уже практически всё равно, что там творится.
- 
Аналогично у руцентра регистрируется некая организация, которая говорит, что она отвечает, например, за зону msu.ru.
Аналогично у руцентра регистрируется некая организация, которая говорит, что она отвечает, например, за зону msu.ru.
И тут уже, помимо раздачи зон, ещё раздаются имёна компьютерам в этом домене.
И тут уже, помимо раздачи зон, ещё раздаются имёна компьютерам в этом домене.
Строка 55: Строка 39:
Под королём были домены первого уровня.
Под королём были домены первого уровня.
-
При этом соблюдался принцип: '''вассал моего вассала не мой вассал'''.
+
При этом соблюдался принцип: вассал мего вассала не мой вассал.
По этой причине это и называется доменная система.
По этой причине это и называется доменная система.
Строка 61: Строка 45:
Эта структура была хороша как самоорганизация, пока уровень связности был в пределах одного уровня.
Эта структура была хороша как самоорганизация, пока уровень связности был в пределах одного уровня.
-
== Сервисы ==
 
Как это устроено на самом нижнем уровне:
Как это устроено на самом нижнем уровне:
-
Есть '''/etc/services''', в котором прописано соответствие сервисам портов.
+
Есть /etc/services, в котором прописано соответствие сервисам портов.
Клиент подключается по указанному порту к серверу, за которым его ждут услуги.
Клиент подключается по указанному порту к серверу, за которым его ждут услуги.
Строка 79: Строка 62:
Эта технология привязки службы к определённому порту является частью более общего механизма, который сужает понятие просто прикладного протокола до понятия клиент-серверного прикладного протокола.
Эта технология привязки службы к определённому порту является частью более общего механизма, который сужает понятие просто прикладного протокола до понятия клиент-серверного прикладного протокола.
-
Когда говорится о взаимодействии по какому-то порту, говорится именно о клиент-серверном взаимодействии.
+
Когда говорится о взаимодействии по какому-то порту, говорится имено о клиент-серверном взаимодействии.
Это существенное ограничение по сравнению с симметричной схемой.
Это существенное ограничение по сравнению с симметричной схемой.
Это к тому, почему эта штука называется services.
Это к тому, почему эта штука называется services.
Строка 92: Строка 75:
Если его нет, то пользователь считает, что интернета нет.
Если его нет, то пользователь считает, что интернета нет.
-
Есть '''/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).
Поэтому, например, при ручной модификации файла, далеко не сразу службы, которые его используют, начнут его использовать.
Поэтому, например, при ручной модификации файла, далеко не сразу службы, которые его используют, начнут его использовать.
-
== Архитектура ==
 
Теперь об архитектуре.
Теперь об архитектуре.
Очевидно, с точки зрения программы реализация должна быть такая: есть понятие "сервер", это сервер.
Очевидно, с точки зрения программы реализация должна быть такая: есть понятие "сервер", это сервер.
Строка 112: Строка 94:
Должен ли он иметь full view?
Должен ли он иметь full view?
Конечно, нет.
Конечно, нет.
- 
Хорошо, а как он будет узнавать?
Хорошо, а как он будет узнавать?
Никак, он скажет, спроси у корневого.
Никак, он скажет, спроси у корневого.
Строка 125: Строка 106:
Если бы все компьютеры в интернете работали бы так, то к корневым серверам было бы слишком много запросов.
Если бы все компьютеры в интернете работали бы так, то к корневым серверам было бы слишком много запросов.
Поэтому обычно так не делают, хотя можно.
Поэтому обычно так не делают, хотя можно.
-
Поэтому обычно можно сначала послать прямой запрос своему dns-серверу, который уже может ответить да / нет / не знаю.
+
Поэтому обычно можно сначала послать прямой запрос своему dns-серверу, который уже может ответить да, нет, не знаю.
Кроме того, клиентские машины обычно не делают рекурсивные запросы, они посылают только прямые, а уже dns-сервер занимается рекурсивным запросом и занимается кешированием.
Кроме того, клиентские машины обычно не делают рекурсивные запросы, они посылают только прямые, а уже dns-сервер занимается рекурсивным запросом и занимается кешированием.
Почему это лучше: если целая сеть ломится по какому-то ip, то в кеше останутся ip dns-серверов ещё для com и cdrom.com.
Почему это лучше: если целая сеть ломится по какому-то ip, то в кеше останутся ip dns-серверов ещё для com и cdrom.com.
Строка 131: Строка 112:
Для того, чтобы не происходило злоупотребление, есть практика рекурсивные запросы выполнять только для своих хостов.
Для того, чтобы не происходило злоупотребление, есть практика рекурсивные запросы выполнять только для своих хостов.
-
=== Кэш запросов ===
+
Тепер, что касается способов увеличения безобразия:
-
Теперь, что касается способов увеличения безобразия.
+
* Кеш
-
В каждой такой таблице соответствия ip-адресов и имён, которые хранит dns-сервер, есть ttl. Она говорит, какое время полученная запись может считаться валидной. Зачем это сделано: чтобы если понадобится изменить ip-адрес, об этом узнали через некоторое время. Обычно TTL выставляется в сутки. Если же у вас сеть меняется часто, то можно уменьшить ttl, но нужно быть готовым к увеличению нагрузки.
+
* В каждой такой таблице соответствия ip-адресов и имён, которые хранит dns-сервер, есть ttl. Она говорит, какое время полученная запись может считаться валидной. Зачем это сделано: чтобы если понадобится изменить ip-адрес, об этом узнали через некоторое время. Обычно TTL выставляется в сутки. Если же у вас сеть меняется часто, то можно уменьшить ttl, но нужно быть готовым к увеличению нагрузки.
Есть ещё expired, который используется, если ttl просрачивается, а dns недоступен.
Есть ещё expired, который используется, если ttl просрачивается, а dns недоступен.
-
=== Дополнительные возможности ===
 
Есть ещё одна идея, которая позволяет убыстрить и увеличить связность: обычно для каждой зоны указывается несколько серверов (минимум 2), при этом хорошо, чтобы они были в разных подсетях класса B.
Есть ещё одна идея, которая позволяет убыстрить и увеличить связность: обычно для каждой зоны указывается несколько серверов (минимум 2), при этом хорошо, чтобы они были в разных подсетях класса B.
Это увеличивает надёжность.
Это увеличивает надёжность.
Строка 147: Строка 127:
По какому признаку принимается решение, что данный сервер авторитетен на вопросы про DNS?
По какому признаку принимается решение, что данный сервер авторитетен на вопросы про DNS?
Помимо преобразования имён адреса, DNS оказывает услуги по преобразованию имён во что угодно.
Помимо преобразования имён адреса, DNS оказывает услуги по преобразованию имён во что угодно.
-
* A — адреса.
+
A — адреса.
-
* NS — списки авторитетных адресов для данного домена.
+
NS — списки авторитетных адресов для данного домена.
-
* MX — адрес/имя почтового сервера.
+
MX — адрес/имя почтового сервера.
-
* TXT — произвольный текст.
+
TXT — произвольный текст.
-
DNS-сервера используются для того, чтобы хранить информацию о спамерах.
+
DNS-сервера исп для того, чтобы хранить информацию о спамерах.
Оно устроено именно как dns-сервер.
Оно устроено именно как dns-сервер.
Ему скармливается ip задом наперёд, и по ответу понятно, что это за ip.
Ему скармливается ip задом наперёд, и по ответу понятно, что это за ip.
Строка 160: Строка 140:
* RPC
* RPC
* p2p
* p2p
 +
= Конспект Kda =
= Конспект Kda =

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

Разделы