Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Приемы работы в Ubuntu.
Глава 10: Сервер малого офиса / домашнего офиса

Оригинал: "Ubuntu Hacks: Chapter 10 - Small Office/Home Office Server"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: ноябрь 2010 г.

Совет # 99: Создаем сервер DHCP

Используйте сервер DHCP для автоматического конфигурирования сетевых настроек всех компьютеров, имеющихся в вашей сети.

Сервер DHCP (Dynamic Host Configuration Protocol) значительно упрощает подключение новых компьютеров к сети. При правильной настройке сервера DHCP каждому новому компьютеру, который вы подключите, автоматически будет присвоен адрес IP, адрес вашего маршрутизатора и адреса серверов доменных имен. И, чтобы действительно облегчить себе жизнь, вы можете подключить ваш сервер DHCP к серверу BIND9 DNS [Совет # 100] и обеспечить, чтобы новым компьютерам автоматически присваивалось имя хоста, которое будет правильно отображаться в их динамически назначаемые адреса IP.

Устанавливаем демон DHCP

Во-первых, убедитесь, что у вас в сети еще нет работающего сервера DHCP; два сервера, предоставляющих противоречивую информацию, могут быть причиной возникновения в сети непонятных проблем! Установите сервер Internet Software Consortium (ISC) DHCP:

$ sudo apt-get install dhcp3-server

Базовая конфигурация

Откройте конфигурационный файл /etc/dhcp3/dhcpd.conf, в котором вы можете увидеть различные конфигурационные настройки, применяемые как к глобальной, так к конкретной подсетям. Большая часть примеров использования параметров, приведенных в файле, вполне понятны сами по себе, так что задайте глобальные настройки, а затем сделайте запись, описывающую вашу сеть:

subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.20 192.168.0.50;
        option routers 192.168.0.1;
}

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

Назначение адресов конкретным хостам

Иногда может быть полезно принудительно назначать определенным хостам конкретные адреса IP, например, для принтеров. Когда хост подключается к серверу DHCP, он предоставляет свой адрес сетевого интерфейса MAC (Media Access Control) и сервер DHCP может затем его использовать, чтобы ассоциировать этот хост с конкретной конфигурацией.

Если вы не знаете адрес МАС вашего компьютера, вы сможете узнать его, т.к. для большинства карт Ethernet он печатается на этикетке карты; на сетевых принтерах он часто указывается поблизости с разъемом Ethernet. В Linux вы можете получить его с помощью команды ifconfig:

$ /sbin/ifconfig eth0 | grep HWaddr

Вернитесь к серверу DHCP, откройте файл /etc/dhcp3/dhcpd.conf и добавьте к концу файла для каждого хоста запись, аналогичную следующей:

host workstation51 {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 192.168.0.51;
}

Убедитесь, что фиксированные адреса (задаваемые в параметре fixed-address) не попадают в диапазон, который был указан для динамического выбора.

Наконец, перезагрузите сервер DHCP с тем, чтобы ваши настройки вступили в силу:

$ sudo /etc/init.d/dhcp3-server restart       

Совет по поводу совета

Сервер DNS предоставляет сервис для разрешения зависимости между именем хоста и адресом IP, так что вам не нужно беспокоиться о том, какой фактический адрес IP был присвоен компьютеру, однако сервер DHCP назначает адреса IP на ваши машины почти случайным образом, что затрудняет сохранение правильных записей DNS. Но если вы для создания сервера доменных имен используете BIND9 [Совет # 100], вы можете связать его с вашим сервером DHCP и каждый раз, когда компьютер подключается к сети или от нее отключается, записи DNS будут автоматически обновляться.

Во-первых, добейтесь, чтобы сервера DNS и DHCP каждый сам по себе функционировали правильно. После того, как вы этого добьетесь, откройте конфигурационный файл BIND9 (/etc/bind/named.conf.options) и добавьте в конце файла следующую запись:

controls {
        inet 127.0.0.1 allow {localhost; } keys { "rndc-key"; };
};

Параметр localhost определяет, что подключаться разрешено только локальным процессам, а rndc-key является именем секретного ключа, который будет использоваться для проверки подлинности соединений. Действительный ключ хранится в файле /etc/bind/rndc.key, в который при установке пакета bind9 было предварительно записано случайное ключевое значение. Если ваши сервера DNS и DHCP находятся на одной физической машине, то для них эти настройки подойдут, но если сервера находятся на разных машинах, вам нужно сообщить BIND о разрешении на подключения от вашего хоста DHCP и добавить в каждый из серверов ключ другого сервера. Откройте файл /etc/bind/named.conf.local, добавьте в него прямую и обратную записи зон вашей локальной сети, а также укажите, что эти зоны могут обновляться клиентами, которые знают секретный ключ:

zone "example.com" {
        type master;
        file "/etc/bind/zones/example.com.hosts";
        allow-update { key "rndc-key"; };
        notify yes;
};

zone "0.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/zones/192.168.0.hosts";
        allow-update { key "rndc-key"; };
        notify yes;
};

Настройте файлы зоны для example.com.hosts и 192.168.0.hosts обычным образом, в том числе укажите все статически назначаемые значения имен хостов.

Вы также должны сообщить BIND, что нужно загрузить файл ключей, так что после записи zone добавьте строку include:

include "/etc/bind/rndc.key";

После того, как вы перезагрузите BIND, он будет готов принимать динамические обновления зоны:

$ sudo /etc/init.d/bind9 restart

Теперь нужно сказать вашему серверу DHCP, чтобы он отправлял уведомления об обновлениях на ваш сервер DNS. Откройте файл /etc/dhcp3/dhcpd.conf и добавьте в начало файла следующие записи:

server-identifier           server;
ddns-updates                on;
ddns-update-style           interim;
ddns-domainname             "example.com.";
ddns-rev-domainname         "in-addr.arpa.";
ignore                      client-updates;
include                     "/etc/bind/rndc.key";

zone example.com. {
    primary 127.0.0.1;
    key rndc-key;
}

Возможно, вам придется закомментировать уже существующие настройки, если они будут конфликтовать, например, параметр ddns-update-style none;, который в Ubuntu по умолчанию добавляется в конфигурационный файл DHCP.

Перезагрузите DHCP, чтобы применить ваши изменения:

$ sudo /etc/init.d/dhcp3-server restart

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


Назад Оглавление Вперед