Debian.pro

Блог для пользователей и администраторов Debian


Debian, dhcp сервер, dhcp server, dhcpd. Шлюз на основе Debian — часть 1.

Этой статьёй я начинаю цикл статей «Шлюз на основе Debian». Мы настроим dhcp сервер в самой простой конфигурации. dhcp сервер раздаёт сетевые настойки компам в сети, которые используют динамический IP адрес. Впрочем, чего объяснять. Если вы читаете эту статья — то вы уже знаете на кой черт оно надо.

Как обычно, fast way идеология.

Сразу определимся в условиях. eth0 — интерфейс внешний, через который сервер получает инет. eth1 — внутренний сетевой интерфейс.

Соответственно, у нас нет никакой необходимости в том, чтобы dhpcd работал на eth0.

root@debian-gateway:~# aptitude install dhcp3-server

Теперь нам нужно указать, какие сетевые интерфейсы стоит «прослушивать» dhcp-демону. В нашем случае — это eth1. Не указывайте интерфейсы, к которым подключена сеть, в которой есть другой dhcp сервер (а тем более — не ваш).

В файле /etc/default/dhcp3-server напишем следующее:
INTERFACES="eth1"
(По умолчанию там написано INTERFACES="", если dhcp должен прослушивать 2 интерфейса — то следует указать их через пробел — например, INTERFACES="eth1 eth2")

Теперь напишем простейший конфигурационный файл (пример конфига в текстовом виде):


# не забудьте изменить данное значение:
option domain-name "static.example.org dyn.example.org"; вы можеет использовать
# dns серверы для dhcp клиентов:
option domain-name-servers 192.168.0.1, 8.8.8.8, 8.8.4.4;
# основной шлюз (сервер, через который они смогут попасть в инет или другую сеть) для dhcp клиентов
option routers 192.168.0.1;
# broadcast адрес - не меняйте, если не знаете что это такое.
option broadcast-address 192.168.0.255;
# ntp серверы для dhcp клиентов.
option ntp-servers 192.168.0.1;
default-lease-time 86400;
max-lease-time 86400;
authoritative;
log-facility local7;

# указываем подсеть, из которой будут выдаваться IP адреса. Если не знаете на что менять - не меняйте.
subnet 192.168.0.0 netmask 255.255.255.0 {
# указываем диапазон ip адресов
range 192.168.0.100 192.168.0.200;
}

И перезагружаем dhcp server:
root@debian-gateway:~# /etc/init.d/dhcpd restart
или
root@debian-gateway:~# /etc/init.d/dhcp3-server
или
root@debian-gateway:~# /etc/init.d/dhcp-server

В общем, tab вам в помощь.

В общем то всё. Теперь сетевые устройства в вашей сети, настроенные на динамический ip адрес будут его получать.


Комментарии (31):

  1. Артем :

    Настроил. Все летает. Одна трабла — если подключать через свич (внутренюю сеть) то нет линка. Свич не видит сетевую карту.

  2. Кхм. Что подключать, куда подключать? )

  3. Артем :

    Сори за беспокойство ))) Коммутатор оказался глючный)))))))

  4. Vlad :

    Извините за глупый вопрос в какой директории создать конфиг файл для dhcp

  5. /etc/dhcp/dhcpd.conf
    или /etc/dhcp3/dhcp.conf
    Как-то так. В общем, он уже создан. В разных версиях dhcpd он на разных местах (есть isc, есть обычная).

  6. S10 :

    Ошибочка… Раздаются адреса из подсети 192.168.0.0/24, а широковещательный адрес из 192.168.1.0/24

  7. Спасибо, поправил.

  8. logins :

    Ребят чето он не запускается

    root@debian:/home/vlad# /etc/init.d/isc-dhcp-server start
    Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. … failed!
    failed!
    Делаю это но там нечего нет ((

    root@debian:/home/vlad# tail /var/log/messages
    Dec 9 14:56:57 debian dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
    Dec 9 14:56:57 debian dhcpd: Copyright 2004-2010 Internet Systems Consortium.
    Dec 9 14:56:57 debian dhcpd: All rights reserved.
    Dec 9 14:56:57 debian dhcpd: For info, please visit https://www.isc.org/software/dhcp/
    Dec 9 14:56:57 debian dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
    Dec 9 14:56:57 debian dhcpd: Copyright 2004-2010 Internet Systems Consortium.
    Dec 9 14:56:57 debian dhcpd: All rights reserved.
    Dec 9 14:56:57 debian dhcpd: For info, please visit https://www.isc.org/software/dhcp/
    Dec 9 14:56:57 debian dhcpd: Wrote 0 leases to leases file.
    Dec 9 14:56:57 debian dhcpd:
    root@debian:/home/vlad#

  9. Вы разницу между /var/log/messages и /var/log/syslog понимаете вообще? И какого черта вы используете tail без параметров? Вы думаете, что в последних 10 строках файла обязательно будет нужная вам информация?

  10. Leo :

    Здравствуйте!
    Спасибо за отличный цикл статей.
    Подскажите плиз, как мне правильно настроить такой роутинг.
    Есть комп — eth0 смотрит в мир (WAN);
    eth1 выдает подсеть 192.168.1.1/24 и смотрит внутрь (LAN);
    wlan0 выдает подсеть 192.168.10.1.24 и смотрит внутрь (LAN);
    Локальный ДНС работает форвардингом на ИПы провайдера и живет на 192.168.1.1 \ 192.168.1.10
    Я хочу поднять на роутере OpenVPN и настроить так, чтобы ноутбут с макадресом XX:XX:XX:XX:XX
    (И ТОЛЬКО ОН) коннектился по wlan0 и получал ИП из подсети 10.40.0.1 (GW и DNS — 10.40.0.1)
    То есть, весь траффик с ноута должен идти в ВПН-туннель, а остальное — наоборот, НЕ попадать в впн-туннель. Помошите плиз — матчать хромает. Спасибо!

  11. Leo :

    Да, и еще момент — уважаемый автор, поправьте плиз в тексте:
    в последних версиях убунты рестарт сервера выполняется как

    /etc/init.d/isc-dhcp-server restart

    Я намучался пока нашел, пусть другим будет в помощь. Спасибо!

  12. Эм. Если вы такое спрашиваете — значит не стоит этого делать. По крайней мере, сами точно не сделаете — вам нужно пошаговая инструкция. А писать её никто не станет.

  13. Читайте официальные примеры конфигов dhcpd — разберетесь со временем.

  14. Leo :

    Ну решать, очевидно, мне — мне стоить или не стоит делать. )
    Я не прошу пошаговую инструкцию. Я прошу проставить точки, куда копать.
    Роутер собрал вообще-то я сам, и PCI wifi карту в режим master свичнуть ума хватило.
    Так что не все так грустно. Расскажите, какими командами решается моя задача, плиз.
    Дальше я разберусь. Спасибо!

  15. Командами? editor чтототам =)
    Вы лучше расскажите, зачем вам это и почему ноутбук просто не может поднимать openvpn ?

  16. Leo :

    Ноутбук сейчас так и настроен — OpenVPN поднимается с помощью демона.
    При конекта к точке в resolv.conf выдается nameserver=192.168.1.10
    И мне приходится каждый раз руками менять на 10.40.0.1
    Заменить в конфигах DHCP — это значит, что ВСЕ гости, с ноутбуками и wifi,
    а также другие девайсы (телефоны, ebook, ресиверы DVB) в сети будут получать 10.40.0.1
    А мне этого НЕ НУЖНО — туда должен ходить ТОЛЬКО служебный ноут.
    Я слышал,что можно четко по MAC привязать устройство, и ему будет отдаваться строго определенные настройки. Вот и прошу толкнуть — куда копать и какими средствами это решается?
    iptables? roune? или есть доп. решенияю?
    Почему не могу юзать демона как и раньше на ноуте — не хочу.
    Я потому роутер из старого ПК сделал, чтобы он рулил кому куда и что отдавать и отправлять.
    Заодно научившись делать такие вещи, я больше познаю тайны маршрутизации и принципы функционирования сетей. Спасибо!

  17. Вы чушь придумываете.
    VPN как раз и нужен для того, чтобы в приватную сеть никто попасть не мог. А в вашем же случае в неё сможет попасть любое устройство в сети. Не придумывайте велосипеды.

    > И мне приходится каждый раз руками менять на 10.40.0.1
    push «dhcp-option DNS 10.40.0.1″
    в конфиге openvpn сервера вас спасет.

    А так — man dhcp на тему «adress pools». Для каждого пула можно раздавать свои DNS, свой default gw и так далее.

  18. Leo :

    Спасибо, именно эту точку я иискал.
    Очень хороший цикл статей, был бы признателен, если бы Вы продолжили в части безопасности,
    то есть как грамотно настроить ssh, закрыть все и разрешить только то, что надо,
    сканировать роутер на предмет вторжений извне.Информации много, но как Вы пишите, далеко не всему можно доверять. Спасибо!

  19. После диплома продолжу писать. Уже сотни 2 черновиков статей(

  20. BSD :

    >В нашем случае — это eth0. Не указывайте интерфейсы, к которым подключена сеть, в которой есть >другой dhcp сервер (а тем более — не ваш).
    Ошибочка, не eth0, а eth1. В вашем примере как раз eth1 смотрит внутрь.

  21. Спасибо, поправил. Конфигами мыслить проще.

  22. 1pp :

    ct 29 01:21:45 1pp dhcpd:
    Oct 29 01:21:45 1pp dhcpd: No subnet declaration for eth1 (no IPv4 addresses).
    Oct 29 01:21:45 1pp dhcpd: ** Ignoring requests on eth1. If this is not what
    Oct 29 01:21:45 1pp dhcpd: you want, please write a subnet declaration
    Oct 29 01:21:45 1pp dhcpd: in your dhcpd.conf file for the network segment
    Oct 29 01:21:45 1pp dhcpd: to which interface eth1 is attached. **
    Oct 29 01:21:45 1pp dhcpd:
    Oct 29 01:21:45 1pp dhcpd:
    Oct 29 01:21:45 1pp dhcpd: Not configured to listen on any interfaces!
    Oct 29 01:21:46 1pp dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
    Oct 29 01:21:46 1pp dhclient: DHCPOFFER from 10.7.243.50
    Oct 29 01:21:46 1pp dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67
    Oct 29 01:21:46 1pp dhclient: DHCPACK from 10.7.243.50

    Вот такая фигня в сислог.
    дхп не поднимается(
    Что делать? куда рыть?

  23. Внимательно прочитать мануал и выполнить всё по порядку. В особенности — /etc/default/dhcp3-server

  24. ИМХО, я бы добавил еще раздачу ДНСов. И статейку с настройкой днса под дебианом…

  25. RomaS :

    господа хорошие, поясните, пожалуйста, как правильно настроить раздачу…
    ПРобывал данным методом и не выходит…
    что сейчас: Кабель от провайдера идет к роутеру (wl500Pv2) а с него на 2 сервера, на одном видеозапись, на 2м(основном) работает сайт и несколько серверов…В основном сервере стоит 2 сетевые и debian 6…
    что хочу: интернет от провайдера подключался к основному серверу, тот брал на свои нужды и раздавал остаток на роутер, а тот в свою очереднь отдавал на 2й сервер и несколько компьютеров…
    интернет напрямую на основном сервере настроить удалось…подключение к 2й сетевой проверял с помощь роутера…пинговалось и заходило на ип открывая дефолтную статическую страничку вебинтерфейса с сайта осного сервера, но интернет не работает…скорее всего это из-за того, что на основном сервере поднят вебхостинг и 80 порт перекрыт…
    подскажите,пожалуйста, как быть. Просто роутер клеит ласты при большем количестве подключений…сначала перестает отдавать на wifi, потом страдает lan

  26. Серёга :

    Я возможно поднял тему.
    Но вопрос таков: у меня eth0- модем (мтс 4g zte 830ft если важно) но он же совсем как eth обозначается. Что мне прописать INTERFACES=»"? в конфигах править нечего не нужно?

  27. Влад :

    Сетевую карту, с которой вы собираетесь раздавать dhcp-адреса.

  28. Спасибо…

  29. Andrey :

    Добрый день. Пробую настроить офисную сеть на Vmware Workstation 10. итого:

    1. Debian + nat + dhcp — должна раздавать ip адреса и работать как шлюз в интернет.
    2. Windows 8 — динамически получает ip адрес от dhcp (Debian) и должна выходить в интернет.

    На данный момент DHCP работает отлично, сам Debian выходит в интернет и пинги проходят на ya.ru
    Но вот Windows 8 получает ip но не может выходить в интернет — настройки Debian такие:

    /etc/resolv.conf # DNS

    domain localdomain
    search localdomain
    nameserver 192.168.182.2
    nameserver 192.168.182.100
    nameserver 8.8.8.8

    /etc/rc.local # FIREWALL

    iptables -t nat -A POSTROUTING -0 eth0 -j MASQUERADE
    exit 0

    /etc/network/interfaces # ИНТЕРФЕСЫ: eth0 мир-инет, eth1 lan dhcp

    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address 192.168.182.100
    netmask 255.255.255.0
    network 192.168.182.0
    broadcast 192.168.182.255
    gateway 192.168.182.2

    auto eth1
    iface eth1 inet static
    address 192.168.109.7
    netmask 255.255.255.0
    network 192.168.109.0
    broadcast 192.168.109.255
    gateway 192.168.182.100

    /etc/dhcp/dhcpd.conf # DHCP

    authoritative;
    option domain-name «corp.globalmoney.ua»;
    option domain-name-servers 192.168.182.2, 192.168.182.100, 8.8.8.8;
    default-lease-time 259200;
    max-lease-time 518400;
    Server-identifier 192.168.109.7;
    ddns-update-style none;
    log-facility local7;

    subnet 127.0.0.1 netmask 255.255.255.255 {
    }

    subnet 192.168.100.0 netmask 255.255.255.0 {
    }

    subnet 192.168.109.0 netmask 255.255.255.0 {
    option routers 192.168.182.100; # Шлюз по умолчанию
    option broadcast-address 192.168.109.255; # Широковещательный адрес
    range 192.168.109.20 192.168.109.50;
    }

    Windows 8 получает такие настройки для своей сетевой:

    ip: 192.168.109.20
    mask: 255.255.255.0
    gw: 192.168.182.100

    dhcp: 192.168.109.7
    dns: 192.168.182.2 , 192.168.182.100, 8.8.8.8

    Прошу помощи в настройке, что я где не так сделал.
    Вроде бы всё как в этой статье — но инет на Windows 8
    не проходит, а это значит что в Debian шлюз не работает.

Написать комментарий