The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Конфигурирование DHCP (dhcp)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: dhcp,  (найти похожие документы)
From: Денис Колисниченко <dhsilabs@mail.ru.> Date: Wed, 14 Apr 2006 18:21:07 +0000 (UTC) Subject: Конфигурирование DHCP Оригинал: http://dkws.narod.ru/linux/servers/dhcp.html Впервые статья была опубликована в журнале "Системный администратор". Если вы хотите подробно ознакомиться с настройкой DHCP, рекомендую прочитать мою книгу "Linux-сервер своими руками" Для чего нужен протокол DHCP? DHCP (Dynamic Host Configuration Protocol) - это протокол настройки узла, который автоматически назначает IP-адреса компьютерам. Протокол DHCP - это дальнейшее развитие протокола BOOTP. Последний разрешает бездисковым клиентам запускать и автоматически конфигурировать протокол TCP/IP. Протокол DHCP централизовано назначает IP-адреса в вашей сети и автоматически конфигурирует рабочие станции. Возможно, вы подумали, что в одной сети должен быть только один сервер DHCP, потому что в противном случае между серверами возникнет конфликт, а пострадавшим опять окажется клиент, который зависнет при загрузке. А вот и не так - в одной сети может быть несколько серверов DHCP. И это не только не отразится на производительности сети, но даже повысит надежность сети, если, например, один из серверов выйдет из строя. Итак, установите пакет dhcp и включите поддержку динамических IP-адресов командой echo "1" > /proc/sys/net/ipv4/ip_dynaddr. Ясное дело, ничего не нужно делать, если поддержка динамических IP-адресов уже включена (в большинстве случаев это так). DHCP в Linux реализован в виде демона сервера (dhcpd) и демона клиента (dhcpcd). Демон сервера непосредственно отвечает за назначение IP-адресов клиентам, при входе и выходе их из сети. Клиетский демон, как явствует из названия, запускается на стороне клиента. Конфигурационным файлом для dhcpd является /etc/dhcp.conf. При запуске DHCP-сервера происходит выделение IP-адресов согласно содержащимся в файле /etc/dhcp.conf установкам. Выделенные адреса dhcpd регистрирует в файле dhcpd.leases, который обычно находится в каталоге /var/dhcpd. Сейчас давайте рассмотрим простейшую конфигурацию, которую будем постепенно наращивать (см. листинг 1). Обратите внимание на то что, чтобы внесенные вами в файл /etc/dhcp.conf изменения вступили в силу, демон dhcpd необходимо остановить и запустить снова. При этом используйте команду /etc/rc.d/init.d/dhcpd stop для останова демона, и команду /etc/rc.d/init.d/dhcpd start для его запуска. Листинг 1. Файл /etc/dhcpd.conf # описание сети, указывающее какая из подсетей будет # обслуживаться. Указывается сетевой адрес и маска сети subnet 192.168.0.0 netmask 255.255.255.0 { # маршрутизатор по умолчанию option routers 192.168.0.1; # маска подсети 255.255.255.0 option subnet-mask 255.255.255.0; # устанавка домена по умолчанию и сервера NIS, если таковой используется option nis-domain "domain.ru"; option domain-name "domain.ru"; # адрес DNS сервера, который будут использовать клиенты option domain-name-servers 192.168.0.1; # диапазон адресов для клиентов # 192.168.0.10-192.168.0.250 range 192.168.0.10 192.168.0.254; # сказать клиентам, чтобы отдали адрес через 21600 секунд (6 часов) # после получения адреса default-lease-time 21600; # забрать адрес самому через 28800 секунд (8 часов) max-lease-time 28800; } Теперь будем постепенно усложнять конфигурацию. Каждая сетевая карточка имеет уникальный собственный MAC-адрес. Допустим, вам нужно связать какой-то MAC-адрес с определенным IP-адресом. Для этого воспользуйтесь конструкцией host: host myhost { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.0.9; } Ее нужно вставить в ту конструкцию подсети subnet, которой принадлежит назначаемый IP-адрес. Данная конструкция означает, что компьютеру с аппаратным адресом xx:xx:xx:xx:xx:xx будет назначен IP-адрес 192.168.1.9. Например: subnet 192.168.0.0 netmask 255.255.255.0 { # прочие опции # ... # host myhost { hardware ethernet 00:40:C7:34:90:1E; fixed-address 192.168.0.9; } } Данный пример показывает, что аппаратному адресу 00:40:C7:34:90:1E будет сопоставлен IP-адрес 192.168.0.9. Обратите внимание, что IP-адрес хоста myhost 192.168.0.9 относится к подсети 192.168.0.0 и включен в инструкцию subnet подсети 192.168.0.0, а не какой-либо другой сети! Существует довольно удобная утилита для просмотра всех MAC-адресов сетевых адаптеров в вашей сети -- программа TCPNetView. Эта программа разработана Александром Горлачем и загрузить ее вы можете по адресу http://www.enet.ru/~gorlach/netview/ (если вы не можете скачать эту программу, обратитесь ко мне). Правда, есть одно "но": эта программа работает под Windows. В любом случае, если вы будете использовать эту программу, при настройке сервера вам не придется подходить к каждому компьютеру, чтобы узнать его MAC-адрес. Теперь, предположим, что вам необходимо обеспечить поддержку WINS, а на вашей машине установлен сервер Samba. В этом случае в конструкцию subnet нужно включить следующие директивы: option netbios-name-servers 192.168.0.1; option netbios-dd-server 192.168.0.1; option netbios-node-type 8; Примечание. Служба WINS (Windows Internet Name Service) используется для разрешения (перевода) имен NetBIOS в IP-адреса. Сервер WINS - это усовершенствованный сервер имен NetBIOS, разработан Microsoft для снижения широковещательного трафика. Пакет Samba предназначен для использования протокола SMB (Server Message Block), который также еще называется протоколом NetBIOS. С помощью пакета Samba ваша машина, работающая под управлением Linux, ничем не будет отличаться от рабочей станции или сервера сети Microsoft. Вот практически и все. Правда, еще можно добавить пару незначительных опций: # определяем широковещательный адрес option broadcast-address 192.168.2.255; # включаем IP-Forwarding option ip-forwarding on; # можно добавить глобальную опцию: server-identifier server.domain.ua; Как обычно, дополнительную информацию можно получить, введя команду man dhcpd.conf. При настройке клиентов Windows следует активизировать режим "Получить IP-адрес автоматически" в свойствах TCP/IP А при настройке Linux с помощью конфигуратора netconf - включить режим DHCP Протокол DHCP подробно описан в RFC 1533, 1534, 1541, 1542, а протокол BOOTP описан в RFC 1532. Окончательный вариант конфигурационного файла приведен в листинге 2. Листинг 2. Конфигурационный файл /etc/dhcpd.conf (окончательный вариант) # Подсеть 192.168.0.0, маска сети 255.255.255.0 subnet 192.168.0.0 netmask 255.255.255.0 { # маршрутизатор по умолчанию option routers 192.168.0.1; # маска подсети 255.255.255.0 option subnet-mask 255.255.255.0; # устанаввка домена по умолчанию и сервера NIS, если таковой используется option nis-domain "domain.ru"; option domain-name "domain.ru"; # задание широковещательного адреса option broadcast-address 192.168.0.255; # включение IP-Forwarding option ip-forwarding on; # глобальная опция server-identifier: server-identifier server.domain.ru; # адрес DNS сервера, который будут использовать клиенты option domain-name-servers 192.168.0.1; # диапазон адресов для клиентов # 192.168.0.10-192.168.0.254 range 192.168.0.10 192.168.0.254; # сказать клиентам, чтобы отдали адрес через 21600 секунд (6 часов) # после получения адреса default-lease-time 21600; # забрать адрес самому через 28800 секунд (8 часов) max-lease-time 28800; option netbios-name-servers 192.168.0.1; option netbios-dd-server 192.168.0.1; option netbios-node-type 8; #описание трех клиентов клиентов (dhcp50, dhcp51, dhcp52) и их аппаратных адресов host dhcp50 { hardware ethernet 00:40:C7:34:90:1E; # обратите внимание на то, что вы должны использовать IP-адрес из указанного # ранее диапазона адресов 192.168.0.10-254. fixed-address 192.168.0.50; } host dhcp51 { hardware ethernet 00:40:C7:34:90:1F; fixed-address 192.168.0.51; } host dhcp52 { hardware ethernet 00:40:C7:34:90:2A; fixed-address 192.168.0.52; } } Вот практически и все. Все ваши вопросы и комментарии буду рад выслушать по адресу dhsilabs@mail.ru.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Roman_Z (??), 17:23, 18/01/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Денис, в статье вы не написали какая версия DHCP (isc-dhcp3-server) на
    какой версии Unix проводилось тестирование.
    У меня FreeBSD 6.1  и DHCP (isc-dhcp3-server-3.0.3).
    Файл конфигураций почти один в один, при старте ругается на отсутствие
    параметра  "ddns-update-style" и не запускается, но если данный параметр
    внести "ddns-update-style ad-hoc;" , то ругается по другому:
    Jan 18 16:16:06 route dhcpd: if Secureti.myhost.ru IN A rrset doesn't exist add Secureti.myhost.ru 300 IN A 192.200.1.28: connection refused.
    Ругается, но работает.
    Скажите пожалуйста, чего ему не нравится?
     
     
  • 2.7, Heni (?), 14:32, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Денис, в статье вы не написали какая версия DHCP (isc-dhcp3-server) на
    >какой версии Unix проводилось тестирование.
    >У меня FreeBSD 6.1  и DHCP (isc-dhcp3-server-3.0.3).
    >Файл конфигураций почти один в один, при старте ругается на отсутствие
    >параметра  "ddns-update-style" и не запускается, но если данный параметр
    >внести "ddns-update-style ad-hoc;" , то ругается по другому:
    >Jan 18 16:16:06 route dhcpd: if Secureti.myhost.ru IN A rrset doesn't exist
    >add Secureti.myhost.ru 300 IN A 192.200.1.28: connection refused.
    >Ругается, но работает.
    >Скажите пожалуйста, чего ему не нравится?

      это значит, что у вас bind либо не поднят, либо не настроен соответствующим образом
    стоит просто изменить строчку в конфиге на "ddns-update-style none;"

     

  • 1.2, Сергей (??), 15:07, 15/02/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Дома у меня два ПК под ХP связаны в локальную сеть(нуль-хабным проводом). Подключаюсь в Интернет через ADSL-модем(USB). По-видимому драйвер модема запускает DHCP сервер, поскольку если подключение к Интернету есть, то на другой машине иконка подключения к интернету появляется автоматически. Если на другом ПК запустить Linux, то поймет ли Linux DHCP клиент - Windows DHCP сервер?
     
  • 1.3, spotip (?), 10:44, 06/07/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У меня стоит FreeBSD 6 ставлю
    копирую в /usr/ports/distfiles/ файл dhcp-3.0.5.tar.gz
    cd /usr/ports/net/isc-dhcp3-server
    make install
    установил.
    pkg_info стоит isc-dhcp3-server-3.0.3
    захожу в /usr/local/etc файла dhcpd.conf нет !
    я его создаю конфигурирую так как описано в этой статье но при запуске
    /etc/rc.d/init.d/dhcpd start
    выдаёт : /usr/local/etc/dhcpd.conf line 15: une xpected end of file  
    Configuration file errors encountred -- exiting
    у меня на машине стоит две сетевые карты rl0 и rl1 одна из них rl0 получает ip адрес от DHCP сервера  
    а вторую rl1 я хотел настроить чтобы она сама раздавала ip адреса гуру подскажите новичку в чём грех ?
     
  • 1.4, spotip (?), 10:50, 06/07/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    да и ещё в книге прочитал что набираеш dhcpconf должно высветится диалоговое меню по настройке dhcp набираю dhcpconf comand not found ?
     
  • 1.5, ratty (?), 11:12, 23/10/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    у меня сервант собран из порта. конфиг прописал по инструкции, запускается, но в процессах я его (сервера) не вижу... что это?
     
  • 1.6, Александр Д. (?), 23:05, 24/01/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Можно ли ограничить права IP адреса клиента в моей сети так, чтобы он не смог работать как прокси сервер? То есть я могу разрешить выход в интернет через мою сеть только для ОДНОГО компьютера клиента и не хочу, чтобы этим пользовались все клиенты его собственной офисной сети.
     
  • 1.8, маяк (?), 22:51, 22/12/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а если сетевых интерфейсов пять, то как узнать, в каком из них будет вещать dhcp-сервер? и как это контролировать?
     
  • 1.9, guest (??), 17:22, 23/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    cat /etc/default/dhcp3-server
    INTERFACES="eth0"

    Да хотелось бы дополнить статью.

     
  • 1.10, 4ep4ik (?), 22:37, 19/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше пользоваться файлом dhcpd.conf.sample, и прибегать к этой статье только в качестве переводчика
     
  • 1.11, Андрей (??), 20:52, 07/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Всем привет,
    а как указать что на интерфейсе eth0 будет подсеть 192.168.0.0
    а на интерфейсе eth1 будет подсеть
    192.168.1.0
    ?
    P.S. я описал наличие двух подсетей с помощью subnet 192.168.0.0 и subnet 192.168.1.0
    Но хосты подключенные в сеть 192.168.1.0 получают адреса подсети сеть 192.168.0.0
     
  • 1.12, Tucha Burelom (?), 23:18, 15/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для определения MAC-адресов сетевых карточек в сети я использую команду : arp -a
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру