avatar Ubuntu Настройка DHCP сервера на Ubuntu 10.04

Размышлений на тему необходимости DHCP сервера в локальной сети множество, некоторые, несознательные личности или начинающие системные администраторы, предпочитают все настраивать вручную, якобы так надежнее, данное мнение имеет свое право на жизнь, но при одном условии, что сеть небольшая и число компьютеров подключенных к ней является постоянной величиной. В случае если в сети количество подключенных ПК постепенно увеличивается, или могут появиться клиенты, которым нужен доступ в вашу сеть лишь периодически, то вам, как системному администратору, придется делать не нужную работу-все эти проблемы помогает решить DHCP сервер. Данный сервер настраивается за пару минут и снимет с вас, очень много, рутинной работы.
Немного теории: DHCP расшифровывается как Dynamic Host Configuration Protocol, что по русски означает — протокол динамической конфигурации узла. Для тех кому интересно более подробно -вам сюда.

Настраивать мы будим на сервере Ubuntu 10.04. Способ настройки сервера не изменился со времен Ubuntu 7.XX.

Установим необходимый пакет
sudo apt-get install dhcp3-server


После выполнения установки, сервер автоматически НЕ запускается-выдавая ошибку, это нормально!
Для примера рассмотрим сеть с диапазоном IP адресов, начиная с 192.168.0.3 по 192.168.0.254 и маской подсети 255.255.255.0.
Наш шлюз, для выхода в Интернет занимает IP 192.168.0.1
В сети есть DNS сервер находящийся по адресу 192.168.0.2
Выдача IP адресов осуществляется на основе MAC адресов сетевых карт.

Начнем настройку:
sudo nano /etc/dhcp3/dhcpd.conf


Имя сети, можно оставить как есть, но лучше закомментировать.

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;


Если данный DHPC сервер будет единственным в сети, то директиву лучше раскоментировать.

authoritative;


Далее находим диапазон настроек адресов:
Снимем комментарии со строчек, которые нам необходимы:

# A slightly different configuration for an internal subnet.
subnet 192.168.0.0 netmask 255.255.255.0 {   # подсеть и маска
range 192.168.0.5 192.168.0.254; # указываем диапазон IP адресов, которые будут выдаваться клиентам
option domain-name-servers 192.168.0.2; # IP DNS-сервера
option domain-name "internal.example.org"; # можно задать название своей сети
option routers 192.168.0.1;  # адрес шлюза или маршрутизатора через который мы выходим в Интернет.
  option broadcast-address 192.168.0.255;  #широковещательный адрес который находится последним в диапазоне IP данной подсети
 default-lease-time 600; # время аренды IP адреса в сек.
  max-lease-time 7200;  # максимальное время аренды IP адреса
}


Все, теперь запускаем наш сервер:

sudo /etc/init.d/dhcp3-server start

Если запуск прошел без ошибок, то если подключить клиентский компьютер в эту сеть, он получит IP адрес.

Рассмотрим вариант, немного сложнее.
Предположим, что в качестве маршрутизатора у нас выступает ПК с двумя сетевыми картами eth0-смотрит в локальную сеть, eth1-смотрит в Интернет.
Чтобы наш DHCP сервер выдавал IP адреса только клиентам нашей локальной сети, необходимо указать системе, на каком сетевом интерфейсе принимать запросы от клиентов, в нашем случае eth0

sudo nano /etc/default/dhcp3-server


В строке INTERFACES указываем сетевой интерфейс, который смотрит в нашу локальную сеть (eth0)

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"


Но и на этом не успокаиваемся.
Предположим, нам необходимо закрепить определенный IP адрес, за опеределенный сетевым устройством, например-сетевым принтером.
MAC адрес сетевого адаптера позволяет довольно легко идентифицировать нужное нам устройство внутри локальной сети.
И так определились-у нас есть принтер (хотя это может быть любое устройство, которое может подключаться к локальной сети) с MAC адресом: 00:00:72:6c:9m:2p, нам необходимо присвоить ему постоянный IP 192.168.0.100
Добавляем в самый конец dhcpd.conf

sudo nano /etc/dhcp3/dhcpd.conf


host network-printer {
  hardware ethernet 00:00:72:6c:9m:2p;
  fixed-address 192.168.0.100;
}


Где: hardware Ethernet-аппаратный адрес, он же MAC, fixed-address-IP который должен доставаться именно этому устройству.

После этого перезагружаем DHCP сервер чтобы изменения вступили в силу.
sudo /etc/init.d/dhcp3-server restart


В случае если необходимо просмотреть журнал DHCP сервера, идем в /var/log/messages
Настройка DHCP сервера, отнимет у вас не более пяти мин. жизни, но в последствии, сохранит вам-море времени.
Вот собственно и все.

13 комментариев

avatar
Спасибо, статья отличная, настроил быстро dhcp! п.с. — range 192.168.0.5 192.168.10.254; # указываем диапазон IP адресов, которые будут выдаваться клиентам
-=ИМХО — ошибка во втором IP, там нуль — 192.168.0.254
avatar
Спасибо, статья отличная, настроил быстро dhcp! п.с. — range 192.168.0.5 192.168.10.254; # указываем диапазон IP адресов, которые будут выдаваться клиентам
-=ИМХО — ошибка во втором IP, там нуль — 192.168.0.254, \\\\\+ днс указал свой который даёт мой провайдер.
avatar
Большое спасибо-поправил.
Тут уже дело хозяйское -чей DNS указывать, но мне приятнее иметь свой.;)
avatar
Огромное спасибо!!! Конец моим мучениям с DHCP. Все заработало.
avatar
Как поставить его в автозагрузку при старте системы??? Чтоб он начал работать, когда вышло окно авторизации (ну там введите лог и пас для входа в систему убунту)
avatar
После каждой перезагрузки выключается по ходу, необходимо каждый раз стартовать: /etc/init.d/dhcp3-server start
Как сделать чтобы он сам корректно запускался???
avatar
при установке он автоматически добавляется в автозапуск, самый простой способ добавить строку запуска в
rc.local
avatar
можно в пример весь файл???? Там все строчки начиная с bin закоментированны. Я в конце его, до exit 0 прописал

sleep 20S
/etc/init.d/dhcp3-server start
/etc/init.d/openfire start
exit 0

слип 20с-задержка как я понял 20 сек??? и всеравно само не запускается((( что делаю не так??
avatar
Смотреть логи, там должна быть причина ошибки, DHCP сервер должен запускаться автоматически при старте системы.
avatar
копировал из rd2.local (как то так) в rdS.local файлы dhcp и еще там пару на всякий случай_)))) Все вроде запускается))
avatar
Вы причину выяснили или просто, по наитию, скопировали и оно заработало? Выясните причину, вы устранили только следствие!
avatar
Мне кажется в статье не хватает следующего!
Как посмотреть список арендованных адресов и как удалить адрес из аренды.
avatar
Посмотреть!
cat /var/lib/dhcp3/dhcpd.leases | less

Удалить я так понимаю… просто отредактировать?
Есть что добавить? Регистрируйся и оставляй комментарии!