Differences between revisions 3 and 4
Revision 3 as of 2008-07-10 11:37:19
Size: 10026
Comment:
Revision 4 as of 2008-07-10 18:43:50
Size: 10131
Comment:
Deletions are marked like this. Additions are marked like this.
Line 65: Line 65:
При этом, этот адрес не должен входить в диапазон динамически выдаваемых адресов. После этого необходимо на клиентах установить: При этом, этот адрес не должен входить в диапазон динамически выдаваемых адресов. После этого необходимо на клиентах в /etc/net/ifaces проделать следующие телодвижения:
Line 68: Line 68:
# mkdir eth0
# cd eth0
# cat > options
Line 71: Line 74:

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

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

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

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

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

# apt-get install dhcp-server

Зайдём, отредактируем файл, который называется /etc/dhcp. В дебиане полиси, что после устаноки он запускается и работает, в альте не так. Поскольку dhcpd капризный демон, если он видит, что конфиг неправильный, то он перестаёт работать. По этой причине создаётся сэмпл и dhcp не запускается. Скопируем dhcpd.conf.sample в 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;

}

Комментарии по повду того, как работает dhcp: оно работает двумя способами.

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

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

subnet 10.0.0.0 netmask 255.0.0.0 {}

Запускаем:

# services dhcpd start

На клиенте говорим:

# dhcpcd eth0
  • [Второй способ:] Для успокоения совести освоим схему раздачи по 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


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