Сервер DHCP на LINUX/UNIX

В данной статье затронута организация DHCP сервера на Linux системах.

DHCP (от англ. Dynamic Host Configuration Protocol — протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в локальной сети. Для этого компьютер обращается к специальному серверу, называемому сервером DHCP.

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

Итак приступим к настройке:

Начнем с того, что нужно скачать и установить DHCP пакет. Для систем REd Hat пакет доступен в RPM формате.

Я скачал для своего сервера пакет: dhcp-3.0.1rc14-1.i386.rpm.

Начнем редактирование файла /etc/dhcpd.conf:

Для систем Fedora, файл будет на месте, для остальных, скопируем файл


[root@node01]# cp  /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf

Доведем до ума:


[root@node01]# cat  /etc/dhcpd.conf

# 67 - слушает dhcp  сервер

# 68 - слушает dhcp  клиент

# Задаём имя dhcp  сервера. Имя используется, что бы

# сообщить клиенту  имя сервера который его обслуживает.

#        server-name  nagg.local;          ddns-update-style interim;         ignore  client-updates;

# MS routes: adds  extras to supplement routers option

option  classless-route code 249 = string;

subnet 10.10.10.0  netmask 255.255.255.0 {  # --- default gateway         option routers                   10.10.10.1;         option subnet-mask               255.255.255.0;

option  broadcast-address        10.10.10.255;

option  classless-route  18:c0:a8:00:0a:0a:0a:03:0c:ac:10:0a:0a:0a:03:18:0a:0a:0a:0a:0a:0a:01:08:0a:0a:0a:0a:03;

# Don't forward DHCP  requests from this # NIC interface to any other NIC

# interfaces           option

ip-forwarding off;

option nis-domain                "nagg.local";

option domain-name               "nagg.local";

option  domain-name-servers      10.10.10.1;

#option  static-routes 10.0.0.0 10.10.10.3;

#option  static-routes 172.16.0.0 10.10.10.3;

#option  static-routes 192.168.0.0 10.10.10.3;

#option  static-routes 16, 172,16, 10,10,10,3, 24, 10,10,10,0, 10,10,10,1

option time-offset               -18000;

# Eastern Standard  Time         option ntp-servers              10.10.10.1;

#       option  netbios-name-servers     192.168.1.1;

# --- Selects  point-to-point node (default is hybrid). Don't change this unless

# -- you understand  Netbios very well

#       option  netbios-node-type 2;

range dynamic-bootp  10.10.10.9 10.10.10.31;

default-lease-time  86400;

max-lease-time  86400;

# MS routes: adds  extras to supplement routers option

# option  ms-classless-static-routes code 249 = array of unsigned integer 8;

# # RFC3442 routes:  overrides routers option

# option rfc3442-classless-static-routes  code 121 = array of unsigned integer 8;

#         # option  ms-classless-static-routes 23, 10,7, 10,10,10,3;

# we want the  nameserver to appear at a fixed address

# host ns {         #        next-server marvin.redhat.com;

#       hardware  ethernet 12:34:56:78:AB:CD;

#        fixed-address 207.175.42.254;         # } }

Оставляем слушать сервер на интерфейсе eth1:


[root@node01]# cat  /etc/sysconfig/dhcpd

# Command line options here DHCPDARGS=eth1

Теперь, когда все изменения внесены, запустим сервис dhcp.

Обновим  клиентов и проверим, получили ли те IP адреса:

1

[root@node01]# cat  /var/lib/dhcpd/dhcpd.leases

lease 10.10.10.30 {    starts 6 2009/09/26 08:21:29;

ends 0 2009/09/27  08:21:29;

tstp 0 2009/09/27  08:21:29;

binding state  active;

next binding state  free;

hardware ethernet  00:15:e9:2d:5f:d7;

uid  "\001\000\025\351-_\327";

client-hostname  "home"; }

Отлично. Клиенты получили адреса и вроде бы дело сделано, но как же передать маршруты через dhcp? Тут нам пригодится скрип, написанный на Perl (dhcp.pl), его исходники лежат в разделе СКРИПТЫ. Суть его работы проста, пишем маршруты своей сети (меняем следующие строки файла):


.. # Sample usage print  make_classless_option({   "10.0.0.0/8" => "10.10.10.3",    "10.10.10.0/24" => "10.10.10.1",   "172.16.0.0/12" =>  "10.10.10.3",   "192.168.0.0/24" => "10.10.10.3"                                           }); ..

Далее, запускаем скрипт dhcp.pl (предварительно поставив тому разрешение на запуск ‘chmod +x dhcp.pl’) и получаем classles static routes:


18:c0:a8:00:0a:0a:0a:03:0c:ac:10:0a:0a:0a:03:18:0a:0a:0a:0a:0a:0a:01:08:0a:0a:0a:0a:03

Записываем нужнуй код в конфигурационный файл DHCP сервера (/etc/dhcp.conf) и перезагружаем сервис.

Следующим шагом будет обновление клиентов  нашей сети. И проверяем, что те получили маршруты:

Активные маршруты:  Сетевой адрес  Маска  сети  Адрес шлюза  Интерфейс  Метрика


0.0.0.0          0.0.0.0       10.10.10.1     10.10.10.31       20

<strong>10.0.0.0        255.0.0.0       10.10.10.3     10.10.10.31        1</strong>

<strong>172.16.0.0      255.240.0.0       10.10.10.3     10.10.10.31        1</strong>

<strong>192.168.0.0    255.255.255.0       10.10.10.3     10.10.10.31        1</strong> 2

Основной шлюз:          10.10.10.1

Related posts:

  1. НАШИ СКРИПТЫ: DHCP LINUX Скрипт dhcp.pl используется для передачи опции DHCP ‘classless static routes’...
You can leave a response, or trackback from your own site.

Оставить комментарий

*