Редактирование: UNИX, осень 2008, 10 лекция (от 03 декабря)
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 41 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
- | + | = Сегодня прикладной уровень TCP/IP в Linux. = | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Сегодня прикладной уровень TCP/IP в Linux. | + | |
Первое — DNS. | Первое — DNS. | ||
Строка 18: | Строка 9: | ||
Казалось бы, мы обсудили весь функционал в linux для работы с сетью, тем не менее, есть одна базовая система, без правильной настройки которой ей пользоваться трудно. | Казалось бы, мы обсудили весь функционал в linux для работы с сетью, тем не менее, есть одна базовая система, без правильной настройки которой ей пользоваться трудно. | ||
- | == Проблема == | ||
Откуда доменная система имён растёт? | Откуда доменная система имён растёт? | ||
Что мы имеем на уровне ip: что мы имеем виду под интернетом — доступную жёсткую систему раздачи адресов, связанную с топологией сети. | Что мы имеем на уровне ip: что мы имеем виду под интернетом — доступную жёсткую систему раздачи адресов, связанную с топологией сети. | ||
Когда принимается решение о выдаче ip-адресов, это решение, эти циферки, которые будут выданы, берутся не с потолка. | Когда принимается решение о выдаче ip-адресов, это решение, эти циферки, которые будут выданы, берутся не с потолка. | ||
Существует центральная организация, которая их раздаёт, существуют всякие держатели больших пулов, которые раздают их дальше. | Существует центральная организация, которая их раздаёт, существуют всякие держатели больших пулов, которые раздают их дальше. | ||
- | |||
У нас есть руцентр. | У нас есть руцентр. | ||
То есть, если нужно подключить несколько десятков компьютеров, то выбирается организация, где цены лучше, и там их покупаешь. | То есть, если нужно подключить несколько десятков компьютеров, то выбирается организация, где цены лучше, и там их покупаешь. | ||
- | |||
У этой архитектуры есть три недостатка: | У этой архитектуры есть три недостатка: | ||
- | * IP адрес — такая штука, которую сложно запомнить. Один можно запомнить, а вот сотню адресов сложно. Эта задача решалась, и очень простым способом: есть | + | * 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, в котором прописано соответствие сервисам портов. |
Клиент подключается по указанному порту к серверу, за которым его ждут услуги. | Клиент подключается по указанному порту к серверу, за которым его ждут услуги. | ||
Строка 79: | Строка 62: | ||
Эта технология привязки службы к определённому порту является частью более общего механизма, который сужает понятие просто прикладного протокола до понятия клиент-серверного прикладного протокола. | Эта технология привязки службы к определённому порту является частью более общего механизма, который сужает понятие просто прикладного протокола до понятия клиент-серверного прикладного протокола. | ||
- | Когда говорится о взаимодействии по какому-то порту, говорится | + | Когда говорится о взаимодействии по какому-то порту, говорится имено о клиент-серверном взаимодействии. |
Это существенное ограничение по сравнению с симметричной схемой. | Это существенное ограничение по сравнению с симметричной схемой. | ||
Это к тому, почему эта штука называется services. | Это к тому, почему эта штука называется services. | ||
Строка 92: | Строка 75: | ||
Если его нет, то пользователь считает, что интернета нет. | Если его нет, то пользователь считает, что интернета нет. | ||
- | Есть | + | Есть /etc/resolv.conf, где указано, где находится DNS сервер. |
- | К слову о FQDN, полном имя домена: в | + | К слову о FQDN, полном имя домена: в /etc/resolv.conf указываются две вещи: какие компьютеры являются dns-серверами, и вторая инфомация --- список доменов, в которых будет производиться поиск, если вы указали не полное имя, а краткое. |
- | + | /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 — адреса. | |
- | + | NS — списки авторитетных адресов для данного домена. | |
- | + | MX — адрес/имя почтового сервера. | |
- | + | TXT — произвольный текст. | |
- | DNS-сервера | + | DNS-сервера исп для того, чтобы хранить информацию о спамерах. |
Оно устроено именно как dns-сервер. | Оно устроено именно как dns-сервер. | ||
Ему скармливается ip задом наперёд, и по ответу понятно, что это за ip. | Ему скармливается ip задом наперёд, и по ответу понятно, что это за ip. | ||
Строка 160: | Строка 140: | ||
* RPC | * RPC | ||
* p2p | * p2p | ||
+ | |||
= Конспект Kda = | = Конспект Kda = |