Differences between revisions 5 and 6
Revision 5 as of 2008-07-13 17:31:22
Size: 10152
Comment:
Revision 6 as of 2008-07-13 20:53:04
Size: 9210
Editor: Allena
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Для начала следует напомнить, что из себя представляет служба DHCP. Предположим, что мы в процессе подготовки класса уже сделали маршрутизацию и трансляцию сетевых адресов. Теперь возникает необходимость настроить рабочие машины класса для работы в локальной сети и доступа в Интернет. Есть два пути: Для начала следует напомнить, что из себя представляет служба DHCP. Предположим, что в процессе подготовки класса уже сделаны маршрутизация и трансляция сетевых адресов. Теперь возникает необходимость настроить рабочие машины класса для работы в локальной сети и доступа в Интернет. Есть два пути:
Line 5: Line 5:
 1. Использовать службу DHCP  2. Использовать службу DHCP
Line 7: Line 7:
Работает эта служба на нескольких уровнях, и, вообще говоря, ее возможности шире чем просто выдача IP-адреса, адреса маршрутизатора по умолчанию и адресов DNS - например с помощью DHCP можно организовать загрузку бездискового клиента по сети или автоматическое определение параметров прокси-сервера клиентами. Работает эта служба на нескольких уровнях, и, вообще говоря, ее возможности шире чем просто выдача IP-адреса, адреса маршрутизатора по умолчанию и адресов DNS --- например с помощью DHCP можно организовать загрузку бездискового клиента по сети или автоматическое определение параметров прокси-сервера клиентами.
Line 14: Line 14:
Зайдём, отредактируем файл, который называется /etc/dhcp. В дебиане полиси, что после устаноки он запускается и работает, в альте не так. Поскольку dhcpd капризный демон, если он видит, что конфиг неправильный, то он перестаёт работать. По этой причине создаётся сэмпл и dhcp не запускается. Скопируем dhcpd.conf.sample в dhcpd.conf и отредактируем его. В результате, он должен выглядеть так:
Существует несколько вариантов поведения сервера DHCP. Далее рассмотрим два наиболее распространенных.

=== Динамическое распределение IP-адресов ===

Клиенту выдается адрес из указанного администратором диапазона. По истечении определенного времени -- срока аренды(leasing), клиент обязан снова запросить настройки у сервера, причем новые настройки могут не совпадать с предыдущими. Сервер считает свободными IP-адреса, для которых истек срок аренды. Алгоритм выбора сервером IP-адреса обычно следующий: по первому запросу выдается последний адрес диапазона, по второму -- предпоследний, и т. д. Клиенту, запрашивающему адрес не в первый раз, выдается, если возможно, тот же адрес, что у него был. У такого алгоритма есть хорошее свойство -- если появляется новый клиент, то ему, по возможности, выдается ранее не использовавшийся адрес.

Итак, рассмотрим настройку динамического распределения IP-адресов с помошью службы DHCP.

Скопируем файл /etc/dhcpd.conf.sample в /etc/dhcpd.conf и отредактируем его. Файл /etc/dhcpd.conf.sample в ALTLinux создается автоматически, если отсутствует правильный конфигурационный файл для DHCP.
В результате файл /etc/dhcpd.conf должен выглядеть так:
Line 34: Line 44:
Комментарии по повду того, как работает dhcp: оно работает двумя способами.

 * Первый способ: настройки выдаются клиенту не навсегда, а выдаются в leasing (аренда). Через какое-то время, когда срок аренды истекает, компьютер должен снова запустить процедуру обновления настроек, и может вполне ожидать, в котором выдадут настройки другие. После истечения максимального времени аренды адрес считается незанятым. Поэтому, когда раздаются адреса по dhcp, указывают диапазон адресов, из которого по непонятному алгоритму демон выбирает адрес, который он отдаё клиенту вместе со всеме настройками. Алгоритм обычно такой: первому выдаётся последний адрес из диапазона, второму предпоследний и так далее. Дополнительное свойство алгоритма следующее: если приходит новый клиент, то (по возможности) выдаётся не использованный ранее адрес. Если такого нет, выдаётся адресс, который не используется. Производится ли там упорядочивание - неизвестно, наверное, да - на всякий случай. Ежели приходит клиент, который в списке выдаваемых адресов наличествует, то ему выдаётся по возможности тот же адрес, который был у него в прошлый раз. Это не означает, что адрес привязан.

Что такое dynamic dns update. DHCP пишут те же люди, что и BIND. Пишет internet service consorcium. У них тесное взаимодействие (между bind'ом и dhcp), по поводу автоматического обновления имени и ip-адреса в dns-зоне. Соответственно, имя машины автоматом прописывается в dns. Это и называется dynamic DNS update. И его обычно всегда стоит выключать, так как фича непонятная и в мелких случаях ненужная, хотя иногда и удобная. Понятно, что это связан с нарушениями безопасности, так что когда читаете man dhcpd, пропускайте большие куски про security, это не для простых смертных. Для простых смертных достаточно того, что здесь написано, за исключением одного: в dhcpd.conf бязаны быть перечислены все сети, которые видны на компьютере. В конце файла пишется отдельная строчка
  Кроме того, в dhcpd.conf необходимо перечислить все сети, в которые есть доступ с данного компьютера. В нашем случае достаточно добавить строку
Line 43: Line 50:
Запускаем:
Line 45: Line 51:
Осталось лишь запустить службу DHCP. Для этого на сервере необходимо выполнить:
Line 48: Line 55:
На клиенте говорим:
Line 50: Line 56:
На клиенте:
Line 53: Line 60:

==== Dynamic DNS update ====
Так как разработкой дхцп и бинд занимаются одни и те же люди, между этими этими проектами существует тесная связь. Например, поддерживается автоматическое обновление имени и ип-адреса в днс-зоне -- это и называется Dynamic DNS update. В отдельных случаях подобное может быть удобно, но обычно рекомендуется отключить это функцию.

=== Распределение IP-адресов по MAC-адресам ===

Настройка DHCP-сервера

Для начала следует напомнить, что из себя представляет служба DHCP. Предположим, что в процессе подготовки класса уже сделаны маршрутизация и трансляция сетевых адресов. Теперь возникает необходимость настроить рабочие машины класса для работы в локальной сети и доступа в Интернет. Есть два пути:

  1. Вручную прописывать все необходимые настройки (как минимум IP-адрес, маршрутизатор по умолчанию и DNS) на всех клиентских машинах
  2. Использовать службу DHCP

Работает эта служба на нескольких уровнях, и, вообще говоря, ее возможности шире чем просто выдача IP-адреса, адреса маршрутизатора по умолчанию и адресов DNS --- например с помощью DHCP можно организовать загрузку бездискового клиента по сети или автоматическое определение параметров прокси-сервера клиентами.

Установим dhcp-сервер

# apt-get install dhcp-server

Существует несколько вариантов поведения сервера DHCP. Далее рассмотрим два наиболее распространенных.

Динамическое распределение IP-адресов

Клиенту выдается адрес из указанного администратором диапазона. По истечении определенного времени -- срока аренды(leasing), клиент обязан снова запросить настройки у сервера, причем новые настройки могут не совпадать с предыдущими. Сервер считает свободными IP-адреса, для которых истек срок аренды. Алгоритм выбора сервером IP-адреса обычно следующий: по первому запросу выдается последний адрес диапазона, по второму -- предпоследний, и т. д. Клиенту, запрашивающему адрес не в первый раз, выдается, если возможно, тот же адрес, что у него был. У такого алгоритма есть хорошее свойство -- если появляется новый клиент, то ему, по возможности, выдается ранее не использовавшийся адрес.

Итак, рассмотрим настройку динамического распределения IP-адресов с помошью службы DHCP.

Скопируем файл /etc/dhcpd.conf.sample в /etc/dhcpd.conf и отредактируем его. Файл /etc/dhcpd.conf.sample в ALTLinux создается автоматически, если отсутствует правильный конфигурационный файл для DHCP. В результате файл /etc/dhcpd.conf должен выглядеть так:

# See dhcpd.conf(5) for further configuration

ddns-update-style none;

subnet 172.16.0.0 netmask 255.255.255.0 {
        option routers                  172.16.0.1;
        option subnet-mask              255.255.255.0;

        option domain-name              "demo.class.altlinux.ru";
        option domain-name-servers      10.0.2.3;

        range dynamic-bootp 172.16.0.10 172.16.0.90;
        default-lease-time 21600;
        max-lease-time 43200;

}

Кроме того, в dhcpd.conf необходимо перечислить все сети, в которые есть доступ с данного компьютера. В нашем случае достаточно добавить строку

subnet 10.0.0.0 netmask 255.0.0.0 {}

Осталось лишь запустить службу DHCP. Для этого на сервере необходимо выполнить:

# services dhcpd start

На клиенте:

# dhcpcd eth0

Dynamic DNS update

Так как разработкой дхцп и бинд занимаются одни и те же люди, между этими этими проектами существует тесная связь. Например, поддерживается автоматическое обновление имени и ип-адреса в днс-зоне -- это и называется Dynamic DNS update. В отдельных случаях подобное может быть удобно, но обычно рекомендуется отключить это функцию.

Распределение IP-адресов по MAC-адресам

  • [Второй способ:] Для успокоения совести освоим схему раздачи по MAC и успокоимся. Неудобно раздавать ip-адреса, не зная, кто какой адрес получит. Если мы устанавливаем класс вручную, мы можем в принципе прописать у каждой машины собственный host name, на сервере установить сервер, который будет организовывать внутренний dns, прописать в dhcp более правильный dynamic update, настроить dns, чтобы он dynamic update'ы принимал, и ситуацию с взаимнооднозначным соответствием машины и внутреннего доменного имени решим. IP адрес будет выдаваться по неизвестным соображениям, но машина будет запрашивать себе IP в обмен на то, что попросит зарегистрировать себя в DNS именно под таким именем, и это будет произведено. Лектор этим заниматься не будет, потому что это довольно сложная операция, можно сделать другое: раздавать ip по mac-ам, поскольку они всегда (кроме извращённых случаев) уникальные. Понятно, что в принципе изменить руками MAC адрес можно, и сделать вид, что вы-это не вы, а другая машина и получить вместо неё IP адрес. Однако, его ещё надо знать как поменять, поэтому это является некоторой степенью защиты от дурака и облегчением работы администратора.

Где-то в /var/lib/dhcp/dhcpd/state/dhcpd.leases записаны все маки, которым был выдан когда-то dhcp. То есть, вы либо ходите по всем компьютерам и везде смотрите мак-адреса, либо всё включаете и потом смотрите этот файл - там записаны leases

После этого пишется в dhcpd.conf:

host lite {
 fixed-address 172.16.0.98;
 hardware ethernet 08:00:27:b7:69:b9
}

При этом, этот адрес не должен входить в диапазон динамически выдаваемых адресов. После этого необходимо на клиентах в /etc/net/ifaces проделать следующие телодвижения:

# mkdir eth0
# cd eth0
# cat > options
DISABLED=no
BOOTPROTO=dhcp


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

20

1

1

1

1

ConstantinYershow, Allena, VsevolodKrishchenko


PspoClasses/080708/04Dhcpd (last edited 2008-10-04 10:56:13 by VsevolodKrishchenko)