Распределенные службы имен

Содержание

Слайд 2

План Назначение служб имен Основные подходы к построению DNS – Система

План

Назначение служб имен
Основные подходы к построению
DNS – Система Интернет имен
NIS –

Система совместного использования файлов конфигурации
LDAP – Служба каталогов
NetBIOS – Система имен в локальных сетях
Jini – Система имен Интернет-служб
Переключатель служб имен
Авторизация и аутентификация
Слайд 3

Литература DNS RFCs http://www.dns.net/dnsrd/rfc/ http://www.tldp.org/HOWTO/NIS-HOWTO/ RFC1487 LDAP Directory software http://www.padl.com/ NETBIOS RFC http://www.faqs.org/rfcs/rfc1001.html

Литература

DNS RFCs http://www.dns.net/dnsrd/rfc/
http://www.tldp.org/HOWTO/NIS-HOWTO/
RFC1487 LDAP
Directory software http://www.padl.com/
NETBIOS RFC http://www.faqs.org/rfcs/rfc1001.html

Слайд 4

Назначение служб имен Нахождение объектов по некоторым их параметрам Нахождение всех

Назначение служб имен

Нахождение объектов по некоторым их параметрам
Нахождение всех параметров пользователя

по их псевдонимам (nick, login)
Нахождение IP адресов машин по их именам
Нахождение портов RPC служб по номеру RPC программы
Нахождение CORBA серверов по их IOR или именам интерфейсов
Слайд 5

Службы имен Служба имен – база данных информации, представленной в виде

Службы имен

Служба имен – база данных информации, представленной в виде соответствия

имя<->значение, которая позволят выполнять поиск значений, соответствующих заданному имени
В любой операционной системе присутствует множество баз данных разной информации
База данных пользователей (/etc/passwd)
База данных групп (/etc/group)
База данных служб (/etc/services)
Для создания распределенных приложений и систем необходима распределенные службы имен, те которые могут быть доступных из разных пространств адресов
Слайд 6

Распределенные службы имен Преимущества Централизация управления – вся информация добавляется и

Распределенные службы имен

Преимущества
Централизация управления – вся информация добавляется и изменяется

в одном месте
Обеспечение надежности – может существовать несколько копий системы
Слайд 7

Основные подходы к построению Клиент – серверная модель Создается специальный выделенный

Основные подходы к построению

Клиент – серверная модель
Создается специальный выделенный сервер, который

хранит базу данных и обслуживает запросы
К серверу подключаются клиенты, которые хотят выполнить поиск
Централизованная модель
Серверу административно выделяется фиксированный адрес и порт транспортного протокола
Эти же параметры конфигурируются на клиентах
Децентрализованная модель
Все клиенты и серверы являются равноправными
Одна из машин автоматически выбирается координатором (master)
Все остальные автоматически выполняют поиск координатора и пользуются его услугами
Сервера регистрируются на координаторе, а клиенты обращаются к координатору для поиска
Слайд 8

Служба доменных имен DNS Преобразование Интернет имен машин в IP адреса

Служба доменных имен DNS

Преобразование Интернет имен машин в IP адреса и

наоборот
Имя - > IP прямое преобразование
IP -> имя обратное преобразование
Для чего
Людям удобнее работать с именами, а не с IP адресами
Позволяет обеспечить дополнительную безопасность путем дополнительно жесткой привязки имени к IP адресу, чтобы не могли просто так поменять
Слайд 9

Интернет имена Имя (FQDN - Fully Qualified DNS Name) cluster.univ.kiev.ua Классификация Географическая информация Виды деятельности …

Интернет имена

Имя (FQDN - Fully Qualified DNS Name)
cluster.univ.kiev.ua
Классификация
Географическая информация
Виды деятельности

Слайд 10

Исторические сведения Во времена ARPAnet все имена присваивались InterNIC и содержались

Исторические сведения

Во времена ARPAnet все имена присваивались InterNIC и содержались в

файле hosts, который при добавлении новой машины высылался всем администраторам сети
Сейчас это файл есть на всех машинах
127.0.0.1 localhost.localdomain localhost
10.25.5.1 ss20-1.univ.kiev.ua s1 node1 ss20-1
10.25.5.2 ss20-2.univ.kiev.ua s2 node2 ss20-2
10.25.5.3 ss20-3.univ.kiev.ua s3 node3 ss20-3
10.25.5.4 ss20-4.univ.kiev.ua s4 node4 ss20-4
10.25.5.5 ss20-5.univ.kiev.ua s5 node5 ss20-5
10.25.5.6 ss20-6.univ.kiev.ua s6 node6 ss20-6
10.25.5.7 ss20-7.univ.kiev.ua s7 node7 ss20-7
10.25.5.8 ss20-8.univ.kiev.ua s8 node8 ss20-8
10.25.5.9 ss20-9.univ.kiev.ua s9 node9 ss20-9
Слайд 11

Недостатки старого метода Файл, который содержит все Интернет имена стал бы

Недостатки старого метода

Файл, который содержит все Интернет имена стал бы очень

большим
Отправка данных всем становится узким местом
Была разработана иерархическая система имен
Слайд 12

Иерархическая схема системы

Иерархическая схема системы

Слайд 13

Иерархическая схема имен Корневой сервер .UA Корень . Делегированный домен .KIEV.UA Делегированный домен UNIV.KIEV.UA FQDN CLUSTER.UNIV.KIEV.UA

Иерархическая схема имен

Корневой сервер
.UA

Корень
.

Делегированный домен
.KIEV.UA

Делегированный домен
UNIV.KIEV.UA

FQDN
CLUSTER.UNIV.KIEV.UA

Слайд 14

Обратный поиск Поиск имени по IP адресу Адрес 10.25.0.1 Ему соответствует

Обратный поиск

Поиск имени по IP адресу
Адрес 10.25.0.1
Ему соответствует имя обратного поиска
1.0.25.10.in-addr.arpa
Имя

строится по тому же иерархическому принципу: сетевой адрес – корень
Для локальных
Слайд 15

Типы запросов Рекурсивный запрос Сервер берет на себя всю работу по

Типы запросов

Рекурсивный запрос
Сервер берет на себя всю работу по определению адреса

по доменному имени
Обычно выполняется локальными серверами
Итеративный запрос
Сервер отвечает, что не знает этого имени и выдает адрес сервера, к которому нужно обратится
Обычно выполняются корневыми или промежуточными серверами
Слайд 16

Протокол запросов-ответов Транспортный протокол UDP, порт 53 Клиент отправляет сообщение серверу,

Протокол запросов-ответов

Транспортный протокол UDP, порт 53
Клиент отправляет сообщение серверу, заданному в

конфигурации клиента, как локальный
Сервер получает запрос, выполняет поиск, оправляет ответ
Нет гарантии, что сервер или клиент получит сообщение
В случае отсутствия ответа выполнятся повторный запрос
Если несколько раз не получили ответа, то считается, что сервер не найден
Слайд 17

Формат сообщения

Формат сообщения

Слайд 18

Основные компоненты клиентов и серверов Клиент Программа Библиотека resolver Сервер Сетевая

Основные компоненты клиентов и серверов

Клиент

Программа

Библиотека
resolver

Сервер

Сетевая подсистема

База данных
авторитетной
информации

Система
кэширования

Система
кэширования

UDP

Слайд 19

База данных имен Хранится в виде файлов или в реляционной базе

База данных имен

Хранится в виде файлов или в реляционной базе данных
Файл


$TTL 86400
@ IN SOA ss20-1.univ.kiev.ua. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ss20-1.univ.kiev.ua.
ss20-1 IN A 10.25.5.1
ss20-2 IN A 10.25.5.2
ss20-3 IN A 10.25.5.3
ss20-4 IN A 10.25.5.4
ss20-5 IN A 10.25.5.5
ss20-6 IN A 10.25.5.6
ss20-7 IN A 10.25.5.7
ss20-8 IN A 10.25.5.8
Слайд 20

Балансировка нагрузки Есть несколько серверов, которые выполняют одну функцию Для обеспечения

Балансировка нагрузки

Есть несколько серверов, которые выполняют одну функцию
Для обеспечения производительности
Разным

серверам ставится в соответствие одно имя, но разные IP
При обращении клиентов по имени они будут получать последовательно разные IP адреса и обращаться к разным серверам
Слайд 21

Пример: балансировка для WWW кластера

Пример: балансировка для WWW кластера

Слайд 22

Программное обеспечение Сервер BIND Клиент Resolver /etc/hosts.conf /etc/resolv.conf

Программное обеспечение

Сервер BIND
Клиент
Resolver
/etc/hosts.conf
/etc/resolv.conf

Слайд 23

Обеспечение надежности

Обеспечение надежности

Слайд 24

Network Information System (NIS) Совместное использование файлов конфигурации на разных машинах

Network Information System (NIS)

Совместное использование файлов конфигурации на разных машинах
Как сделать

так, чтобы на всех машинах организации (100 машин) были одинаковые имена пользователей?
Если нужно изменить или добавить пользователя, как это сделать быстро и без ошибок?
Как это же сделать с другими файлами конфигурации ?
Слайд 25

Исторические сведения Разработана фирмой SUN вначале 1980-х в рамках ONC Позже

Исторические сведения

Разработана фирмой SUN вначале 1980-х в рамках ONC
Позже появилась модификация

NIS+ с шифрованием
Сейчас используется в локальных сетях для создания распределенной базы данных конфигурационных файлов при не очень высоких требованиях к безопасности
Слайд 26

Структура системы YP домен – набор машин, которые совместно используют файлы

Структура системы

YP домен – набор машин, которые совместно используют файлы конфигурации
YP

master (server) – машина, которая содержит авторитетные файлы конфигурации и может раздавать их другим
YP slave (server) – машина, которая содержит копии файлов конфигурации и тоже может их раздавать другим
YP client (ypbind) – машина, которая использует копии файлов конфигурации
Слайд 27

YP домен Ypbind (client) устанавливается на все машины, которые должны использовать

YP домен

Ypbind (client) устанавливается на все машины, которые должны использовать разделяемые

файлы конфигурации
Ypserv (master) устанавливается только на одной машине домена и содержит авторитетные данные, которые при изменении отправляются всем вторичным серверам и клиентам
Ypserv (slave) устанавливается на всех серверах, которые используются для репликации авторитетной информации
Слайд 28

YP master Каждому совместно используемому файлу конфигурации соответствует NIS карта Карта

YP master

Каждому совместно используемому файлу конфигурации соответствует NIS карта
Карта – файл,

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

YP slave Вспомогательные сервера также могут отправлять карты клиентам На вспомогательных

YP slave

Вспомогательные сервера также могут отправлять карты клиентам
На вспомогательных серверах файлы

конфигурации изменять нельзя
Для приема всех карт используется вспомогательный сервер ypxfrd
Слайд 30

YP клиент Определяет сервер При обращении к некоторым данным из файлов

YP клиент

Определяет сервер
При обращении к некоторым данным из файлов конфигурации отправляет

запрос серверу
Если есть локальная копия карты, то используется эта карта
Слайд 31

Взаимодействие клиентов и серверов RPC ypserv 100004 ypbind 100007 ypxfrd 100069 yppasswd 100009

Взаимодействие клиентов и серверов

RPC
ypserv 100004
ypbind 100007
ypxfrd 100069
yppasswd 100009

Слайд 32

Карты passwd.byname passwd.byuid groups.byname groups.byuid hosts netgroup

Карты

passwd.byname
passwd.byuid
groups.byname
groups.byuid
hosts
netgroup

Слайд 33

Схема работы клиента приложение Получение имени пользователя Библиотечный вызов getpwent Обращение

Схема работы клиента

приложение

Получение имени пользователя

Библиотечный вызов
getpwent

Обращение к локальной копии карты
passwd.byname

Возвращаем если

есть

Ypbind
Периодически
Вызывает сервер

RPC сервера
Получить карту

Слайд 34

Недостатки NIS Рассчитан на широковещательные запросы и следовательно только на локальные

Недостатки NIS

Рассчитан на широковещательные запросы и следовательно только на локальные сети
Слабые

средства обеспечения безопасности
Пароли передаются по сети (в зашифрованном виде)
Слайд 35

Схема работы клиента приложение Получение имени пользователя Библиотечный вызов getpwent Обращение к серверу

Схема работы клиента

приложение

Получение имени пользователя

Библиотечный вызов
getpwent

Обращение к серверу

Слайд 36

Служба каталогов (directory service) Служба каталогов – иерархическая база данных информации,

Служба каталогов (directory service)

Служба каталогов – иерархическая база данных информации, организованная

в виде дерева с отношениями родитель-потомок, по аналогии с организацией файловой системы
С помощью службы каталогов можно выполнять поиск необходимых данных
Первоначально такие системы разрабатывалась для создания информационных систем масштабов Интернет в 1990-х годах
Для работы с распределенными каталогами был разработан протокол LDAP
Слайд 37

Пример Файловая система / /home /home/saa /home/saa/bin/hack Интернет-каталог /Ukraine /Ukraine/Kyiv /Ukraine/Kyiv/University /Ukraine/Kyiv/University/cluster

Пример

Файловая система
/
/home
/home/saa
/home/saa/bin/hack

Интернет-каталог
/Ukraine
/Ukraine/Kyiv
/Ukraine/Kyiv/University
/Ukraine/Kyiv/University/cluster

Слайд 38

Интернет каталог c=UA o=Kyiv University, c=UA ou=ICC,o=Kyiv University,c=UA ou=cluster,ou=ICC,o=Kyiv University,c=UA с

Интернет каталог

c=UA
o=Kyiv University, c=UA
ou=ICC,o=Kyiv University,c=UA
ou=cluster,ou=ICC,o=Kyiv University,c=UA
с – country
o – organization
ou –

organization unit
cn – common name
Полный путь к элементу каталога называется
Distinguished Name (DN)
/C=ch/O=AliEn/OU=ALICE/CN=alien.univ.kiev.ua/SE
Слайд 39

Объекты Каждый элемент каталога является объектом (аналог файла) Объекты бывают Контейнерными

Объекты

Каждый элемент каталога является объектом (аналог файла)
Объекты бывают
Контейнерными (аналог каталога файловой

системы)
«Листовыми» (аналог файла)
Каждый объект имеет набор атрибутов и набор значений этих атрибутов
Какие атрибуты и типы значений в каком объекте допустимы определяется схемой объекта
Слайд 40

Пример объекта каталога # saa, People, cluster, ICC, Kyiv University, UA

Пример объекта каталога

# saa, People, cluster, ICC, Kyiv University, UA
dn: uid=saa,ou=People,ou=cluster,ou=ICC,o=Kyiv

University,c=UA
uid: saa
cn: Olexandr O. Sudakov
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/saa
description: Olexandr O. Sudakov,Information & Computer Center National Taras
Shevchenko University of Kyiv, 266 05 30, saa@univ.kiev.ua
shadowLastChange: 12606
Слайд 41

Схема LDAP Схема определяет тип объекта какие атрибуты и какого типа

Схема LDAP

Схема определяет
тип объекта
какие атрибуты и какого типа могут

быть в объекте
Какие атрибуты обязательны, а какие – нет
Существуют стандартизированные схемы
Можно создавать свои схемы путем наследования существующих
Слайд 42

Пример LDAP каталога

Пример LDAP каталога

Слайд 43

LDAP сервер Функции Хранение Поиск Аутентификация Запись Шифрование/дешифрование Сетевой сервер База данных Сетевой запрос

LDAP сервер

Функции
Хранение
Поиск
Аутентификация
Запись
Шифрование/дешифрование

Сетевой сервер

База данных

Сетевой запрос

Слайд 44

Обеспечение надежности и балансировка LDAP – иерархическая система Для каждого элемента

Обеспечение надежности и балансировка

LDAP – иерархическая система
Для каждого элемента каталога может

существовать свой сервер
LDAP – поддерживает вспомогательные сервера, которые хранят ту же информацию, что и главные
Вспомогательные сервера можно использовать для балансировки нагрузки
Слайд 45

Использование LDAP Служба имен для очень больших организаций GRID системы Службы

Использование LDAP

Служба имен для очень больших организаций
GRID системы
Службы имен для

распределенных систем с сильно географически распределенными компонентами
В локальных сетях, как замена NIS
Слайд 46

Переключатель служб имен

Переключатель служб имен

Слайд 47

Nsswsitch (NSS) Middleware Виртуализация служб имен Быстрое подключение новой службы имен

Nsswsitch (NSS)

Middleware
Виртуализация служб имен
Быстрое подключение новой службы имен
Впервые появилось

в ОС Solaris
Сейчас есть в каждой современной операционной системе
Слайд 48

Linux NSS Включено в библиотеку glibc В конфигурационном файле администратор может

Linux NSS

Включено в библиотеку glibc
В конфигурационном файле администратор может установить необходимые

параметры
passwd: files ldap
shadow: files ldap
group: files ldap
#hosts: db files nisplus nis dns
hosts: files dns ldap
Слайд 49

Пример работы клиента Приложение ls –l /home Какой пользователь имеет uid

Пример работы клиента

Приложение
ls –l /home

Какой пользователь имеет
uid =1000 ?

Библиотечный вызов
getpw_by_uid

Обращение

к nss

Модуль file:
Файл passwd?
Uid отсутствует

Модуль ldap:
Uid найден

Обращение к
серверу

Возвращается
Пользователь saa

Слайд 50

Кэширование nss Обращение каждый раз к удаленным серверам приводит к большим

Кэширование nss

Обращение каждый раз к удаленным серверам приводит к большим затратам

времени и перегруженности сети
В nss существует специальная система кэширования всех известных данных
nscd
Слайд 51

AAA (Authentication, Authorization, Accounting) Аутентификация Кто такой? Авторизация Что можно делать

AAA (Authentication, Authorization, Accounting)

Аутентификация
Кто такой?
Авторизация
Что можно делать
Учет ресурсов
Что делалось в

процессе работы
Слайд 52

PAM – pluggable authentication modules По аналогии с nss использование нескольких

PAM – pluggable authentication modules

По аналогии с nss использование нескольких систем

авторизации, аутентификации, учета
Данные из локальных файлов
LDAP
NIS
RADIUS
Реализована в виде модулей, из которых последовательно вызываются необходимые функции
Слайд 53

Пример работы PAM Пользователь ввел имя и пароль Программа login Модуль

Пример работы PAM

Пользователь
ввел имя и пароль

Программа
login

Модуль UNIX
Вызов функции auth()
Авторизация через

файл
/etc/passwd
Неудачно

Модуль LDAP
Вызов функции auth()
Авторизация через LDAP
Удачно

Пользователю
Разрешается
Вход в систему

Обращение
к серверу

Слайд 54

Пример общего конфигурационного файла # This file is auto-generated. # User

Пример общего конфигурационного файла

# This file is auto-generated.
# User changes will

be destroyed the next time authconfig is run.
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so
account sufficient /lib/security/$ISA/pam_succeed_if.so uid < 100
#account required /lib/security/$ISA/pam_listfile.so item=user sense
=deny file=/etc/security/nologin_users onerr=succeed
#account [default=bad success=ok user_unknown=ignore service_err=ignore s
ystem_err=ignore] /lib/security/$ISA/pam_ldap.so
account required /lib/security/$ISA/pam_access.so
account sufficient /lib/security/$ISA/pam_unix.so
account [default=bad success=ok user_unknown=ignore service_err=ignore sy
stem_err=ignore] /lib/security/$ISA/pam_ldap.so
password required /lib/security/$ISA/pam_cracklib.so retry=3 type=
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok m
d5 shadow
password sufficient /lib/security/$ISA/pam_ldap.so use_authtok
password required /lib/security/$ISA/pam_deny.so