LinuxForum.Fans
Тема

DHCP, как ip-адресам присвоить символьные имена?

Автор: pervu 39 сообщений 17281 просмотров
#20314

Здраввствуйте всем!
Понадобилось мне использовать dhcp, сервер поднял, все работает, НО
периодически мне надо работать с ПК-клиентами, раньше я знал ip каждого и проблем не было,
но теперь айпишники постоянно меняются :(
Конечно, сейчас компьютеров не очень много, и можно сделать для каждого ПК привязку по mac-адресу...
Но хотелось бы как то автоматизировать этот процесс.
Гугл мне ничего дельного на мой вопрос не дал, походу запрос криво составляю :)

#20315

ключевые слова: dhcp+ddns

#20316
Hrafn написал:
ключевые слова: dhcp+ddns

немного дополню.
в данном случае вам надо настроить связку двух сервисов:
1. сервис динамической настройки узлов - DHCP
2. сервис доменных имён - DNS
Существует штатная возможность настроить DHCP так чтобы при каждой выдаче адреса обновлялась запись в DNS (Dynamic DNS), тогда даже при смене IP имя сохранится.

Есть ещё способы сохранить адреса надолго:
- увеличить в настройках DHCP время выдачи адреса lease-time до месяца-двух;
- выдачу адресов DHCP привязать к MAC сетевой карты.

#20317

Существует штатная возможность настроить DHCP так чтобы при каждой выдаче адреса обновлялась запись в DNS (Dynamic DNS), тогда даже при смене IP имя сохранится.

а где про эту возможность почитать можно?

dhcp+ddns - направление было правильным :)
погуглил, и вяснил, что нужно использовать связку named+dhcp
вот мои конфиги:
named.conf

text
options {
    directory "/var/named";
    /*
     * If there is a firewall between you and nameservers you want
     * to talk to, you might need to uncomment the query-source
     * directive below.  Previous versions of BIND always asked
     * questions using port 53, but BIND 8.1 uses an unprivileged
     * port by default.
     */
    // query-source address * port 53;
};

// // a caching only nameserver config // zone "." IN { type hint; file "caching-example/named.root"; };

zone "localhost" IN { type master; file "caching-example/localhost.zone"; allow-update { none; }; };

zone "0.0.127.in-addr.arpa" IN { type master; file "caching-example/named.local"; allow-update { none; }; };

key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret mCzPGMAluZkO1LBIqEUQ4w==; }; logging { channel update_debug { file "/var/log/named-update.log"; severity debug 3; print-category yes; print-severity yes; print-time yes; }; channel security_info { file "/var/log/named-auth.log"; severity info; print-category yes; print-severity yes; print-time yes; }; category update { update_debug; }; category security { security_info; }; }; zone "0.168.192.in-addr.arpa" IN { type master; file "db.192.168.0"; allow-update { key DHCP_UPDATER; }; };

zone "test" { type master; file "db.test"; allow-update { key DHCP_UPDATER; }; notify no; };

dhcpd.conf

text
# dhcpd.conf
#
# Configuration file for ISC dhcpd (see 'man dhcpd.conf')
#
option domain-name "test";
option domain-name-servers server.test;
ddns-update-style interim;
ddns-update-style interim;
key DHCP_UPDATER {
    algorithm HMAC-MD5.SIG-ALG.REG.INT;
    secret mCzPGMAluZkO1LBIqEUQ4w==;  
    }
zone test. {
    primary 127.0.0.1;
    key DHCP_UPDATER;
    }
    
zone 0.168.192.IN-ADDR.ARPA. {
    primary 127.0.0.1;
    key DHCP_UPDATER;
    }

subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.25; option subnet-mask 255.255.255.0; range 192.168.0.1 192.168.0.18; default-lease-time 21600; max-lease-time 28800; host dhcp5 { hardware ethernet 00:1D:92:86:24:3D; fixed-address 192.168.0.6; } }

все у меня правильно в конфигах?

запустил named, dhcpd
посмотрел файл dhcpd.leases, там присутствовали машины из локалки
последней строчкой каждого блока указывалось имя ПК (например рс01)
я уже было обрадовался :)
но если делаю ping pc01, пишет unknown host
решил обнулить файл dhcpd.leases и тут меня ждал еще один сбрприз:
больше туда никакие данные не хотят заносится.
запустил еще раз named, dhcpd, но все равно dhcpd.leases пустой
и когда запускаю dhcpd, выдает вот что:

text
Internet Systems Consortium DHCP Server V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
WARNING: Host declarations are global.  They are not limited to the scope you declared them in.
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.

No subnet declaration for eth1 (192.168.1.26). ** Ignoring requests on eth1. If this is not what you want, please write a subnet declaration in your dhcpd.conf file for the network segment to which interface eth1 is attached. **

Listening on LPF/eth0/00:80:48:32:b5:cd/192.168.0/24 Sending on LPF/eth0/00:80:48:32:b5:cd/192.168.0/24 Sending on Socket/fallback/fallback-net bash-3.1# There's already a DHCP server running.

If you did not get this software from ftp.isc.org, please get the latest from ftp.isc.org and install that before requesting help.

If you did get this software from ftp.isc.org and have not yet read the README, please read it before requesting help. If you intend to request help from the dhcp-server@isc.org mailing list, please read the section on the README about submitting bug reports and requests for help.

Please do not under any circumstances send requests for help directly to the authors of this software - please send them to the appropriate mailing list as described in the README file.

exiting.

Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.

как видно он оттуда ничего не стирает, и ничего не записывает:(
почему так получается? что я делаю неправильно?

#22514

почему динамическая адресация? у вас нехватка ип адресов?
я использую привязку по мак и необходимости в дднс не вижу.

#22583

во первых трогать dhcp-leases нельзя, а тем более обнулять. как решение нужно взять какой нибудь из уцелевших и не тронутых и подсунуть ему
во вторых - в dhcp нужно раздачу адреса dns-сервера сделать
subnet 192.168.0.0 netmask 255.255.255.0 {
...
option domain-name-servers "ip_adress_your_dns"
...
}

#137776
pervu написал:
Здраввствуйте всем!
Понадобилось мне использовать dhcp, сервер поднял, все работает, НО
периодически мне надо работать с ПК-клиентами, раньше я знал ip каждого и проблем не было,
но теперь айпишники постоянно меняются :(
Конечно, сейчас компьютеров не очень много, и можно сделать для каждого ПК привязку по mac-адресу...
Но хотелось бы как то автоматизировать этот процесс.
Гугл мне ничего дельного на мой вопрос не дал, походу запрос криво составляю :)

ну как у тебя результат? связка начала работать? я вот тоже над этим сижу) конфиг идентичен твоему но у меня ошибка при старте может встречал как с этим бороться?

Показать
Internet Systems Consortium DHCP Server 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 leases to leases file.

No subnet declaration for start (no IPv4 addresses).
** Ignoring requests on start. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface start is attached. **


Not configured to listen on any interfaces!

у меня 3 интерфейса не знаю как на eth1 перевести, /etc/default/dhcp3-server нет такого файла а параметр INTERFACES="eth1" не знаю куда поставить
пробовал так /usr/sbin/dhcpd -d -f нет результата, если запускать /usr/sbin/dhcp eth1:

Показать
Internet Systems Consortium DHCP Server 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 leases to leases file.
Listening on LPF/eth1/00:1b:21:80:81:9b/192.168.2.0/24
Sending on LPF/eth1/00:1b:21:80:81:9b/192.168.2.0/24
Sending on Socket/fallback/fallback-net
There's already a DHCP server running.

/var/log/messages
Internet Systems Consortium DHCP Server 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 leases to leases file.
Listening on LPF/eth1/00:1b:21:80:81:9b/192.168.2.0/24
Sending on LPF/eth1/00:1b:21:80:81:9b/192.168.2.0/24
Sending on Socket/fallback/fallback-net
There's already a DHCP server running.
/var/log/syslog

Показать
Mar 9 21:09:16 mailserver dhcpd: Not configured to listen on any interfaces!
Mar 9 21:09:18 mailserver dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
Mar 9 21:09:18 mailserver dhcpd: Copyright 2004-2010 Internet Systems Consortium.
Mar 9 21:09:18 mailserver dhcpd: All rights reserved.
Mar 9 21:09:18 mailserver dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Mar 9 21:09:18 mailserver dhcpd: Wrote 0 leases to leases file.
Mar 9 21:09:18 mailserver dhcpd: Listening on LPF/eth1/00:1b:21:80:81:9b/192.168.2.0/24
Mar 9 21:09:18 mailserver dhcpd: Sending on LPF/eth1/00:1b:21:80:81:9b/192.168.2.0/24
Mar 9 21:09:18 mailserver dhcpd: Sending on Socket/fallback/fallback-net
Mar 9 21:09:18 mailserver dhcpd: There's already a DHCP server running.
Mar 9 21:10:04 mailserver kernel: [514985.544131] e1000: eth2 NIC Link is Down
Mar 9 21:10:04 mailserver NetworkManager[2223]: <info> (eth2): carrier now OFF (device state 3)
Mar 9 21:10:04 mailserver NetworkManager[2223]: <info> (eth2): device state change: 3 -> 2 (reason 40)
Mar 9 21:10:04 mailserver NetworkManager[2223]: <info> (eth2): deactivating device (reason: 40).
Mar 9 21:10:10 mailserver NetworkManager[2223]: <info> (eth1): carrier now ON (device state 1)
Mar 9 21:10:10 mailserver kernel: [514991.236774] e1000: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX
Mar 9 21:10:12 mailserver kernel: [514993.124161] e1000: eth1 NIC Link is Down
Mar 9 21:10:12 mailserver NetworkManager[2223]: <info> (eth1): carrier now OFF (device state 1)
Mar 9 21:10:14 mailserver NetworkManager[2223]: <info> (eth2): carrier now ON (device state 2)
Mar 9 21:10:14 mailserver NetworkManager[2223]: <info> (eth2): device state change: 2 -> 3 (reason 40)
Mar 9 21:10:14 mailserver kernel: [514995.252472] e1000: eth2 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX

#137879

может быть....написать

ДЯДЯ ГУГЛЬ!!!

почувствовать себя чуток умнее? :[

первая же ссылка

большими буквами:

text
Select Interface card

nano -w /etc/default/dhcp3-server

INTERFACES="wlan0 eth0"

Моцг, пробовали использовать по его прямому назначению?

#137885
r1sh написал:
может быть....написать

ДЯДЯ ГУГЛЬ!!!

почувствовать себя чуток умнее? :[

первая же ссылка

большими буквами:
text
Select Interface card

nano -w /etc/default/dhcp3-server

INTERFACES="wlan0 eth0"

Моцг, пробовали использовать по его прямому назначению?

А ещё проще bonding использовать

#137900

ты про обьединение сетевых интерфейсов в разных вариантах или про квинтэссенцию материнских чувств, с намеком что у него было хреновое детство ? :D

#137951
sagvir написал:
конфиг идентичен твоему но у меня ошибка при старте может встречал как с этим бороться?

эх...
[console]$ man dhcpd.conf[/console]
религия не позволила набрать?...

#138032
drBatty написал:
религия не позволила набрать?...

Зачем раскрыл секретную команду? Теперь он всё узнает...

#138048
Cruiser78 написал:
Зачем раскрыл секретную команду? Теперь он всё узнает...

мало вероятно - религия не даст. sagvir и без меня об этом узнал, если-бы ман осилил :(

#138084

У меня все работает. Могу поделиться конфигами. Машины с виндой получают имя после выданного им IP.

Показать
text

[root@master etc]# cat named.conf
options {
        listen-on port 53 {localhost; 192.168.1.150; };
        directory       "/var/named/";
        dump-file       "data/cache_dump.db";
        statistics-file "data/named_stats.txt";
        memstatistics-file "data/named_mem_stats.txt";
        allow-transfer {none; };
        allow-query     {trusted-networks; };
        allow-recursion {trusted-networks; };
        forwarders {192.168.1.1; };
};
logging {
        channel default_ch {
                file "data/named-base.log";
                severity info;
                print-time yes;
                print-category yes;
        };

channel security_ch { file "data/named-security.log"; severity info; print-time yes; print-category yes; }; category default { default_ch; }; category security { security_ch; };

};

acl "trusted-networks" {localhost; 192.168.1.0/24; };

zone "saikov.ru" IN { type master; file "saikov.ru"; allow-update { key rndckey; }; };

zone "168.192.in-addr.arpa" { type master; file "168.192.rev"; allow-update { key rndckey; }; };

include "/etc/named.rfc1912.zones"; include "/etc/rndc.key";

А вот dhcpd.conf

Показать
text

[root@master etc]# cat /etc/dhcpd.conf
include "/var/named/chroot/etc/rndc.key";

ddns-update-style interim; authoritative; option netbios-scope ""; zone saikov.ru. { primary 192.168.1.150; # key "rndckey"; }

zone 168.192.in-addr.arpa. { primary 192.168.1.150; # key "rndckey"; }

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.10 192.168.1.30;

ddns-updates on; ddns-domainname "saikov.ru"; ddns-rev-domainname "in-addr.arpa";

option routers 192.168.1.150; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option domain-name "saikov.ru"; option domain-name-servers 192.168.1.150; option netbios-name-servers 192.168.1.150; option netbios-node-type 8;

option ip-forwarding off;

default-lease-time 86400; max-lease-time 86400; use-host-decl-names true; }

А вот так он отрабатывает, когда добавляется машина в сеть.

Feb 4 17:39:30 master dhcpd: DHCPDISCOVER from 00:06:4f:09:86:73 via eth0
Feb 4 17:39:31 master dhcpd: DHCPOFFER on 192.168.1.30 to 00:06:4f:09:86:73 (boris) via eth0
Feb 4 17:39:31 master dhcpd: Forward map from boris.saikov.ru to 192.168.1.30 FAILED: timed out
Feb 4 17:39:31 master dhcpd: DHCPREQUEST for 192.168.1.30 (192.168.1.150) from 00:06:4f:09:86:73 (boris) via eth0
Feb 4 17:39:31 master dhcpd: DHCPACK on 192.168.1.30 to 00:06:4f:09:86:73 (boris) via eth0

[root@master named]# ping boris.saikov.ru
PING boris.saikov.ru (192.168.1.30) 56(84) bytes of data.
64 bytes from boris.saikov.ru (192.168.1.30): icmp_seq=1 ttl=128 time=0.731 ms
64 bytes from boris.saikov.ru (192.168.1.30): icmp_seq=2 ttl=128 time=0.754 ms

Ну и добавляются строчки в файл зоны и создаются так же файлы с расширением *.jnl

[root@master named]# cat saikov.ru
$ORIGIN .
$TTL 86400 ; 1 day
saikov.ru IN SOA ns1.saikov.ru. admin.saikov.ru. (
7 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.saikov.ru.
NS ns2.saikov.ru.
A 192.168.1.150
MX 10 mail.saikov.ru.
$ORIGIN saikov.ru.
$TTL 43200 ; 12 hours
boris A 192.168.1.30
TXT "314dd4676ad29ae13a9f67f52ff25b93ed"

$TTL 86400 ; 1 day
mail A 192.168.1.150
ns1 A 192.168.1.150
ns2 A 192.168.1.150
saikov-comp A 192.168.1.1
www A 192.168.1.150

-rw-r--r-- 1 named named 470 Фев 20 2011 168.192.rev
-rw-r--r-- 1 named named 758 Фев 20 2011 168.192.rev.jnl

-rw-r--r-- 1 named named 574 Фев 20 2011 saikov.ru
-rw-r--r-- 1 named named 779 Фев 20 2011 saikov.ru.jnl
#138086

XliN, спасибо конечно. я только отмечу, что и без bind'а всё отлично работает - можно использовать DNS сервера провайдера.

#138087
drBatty написал:
XliN, спасибо конечно. я только отмечу, что и без bind'а всё отлично работает - можно использовать DNS сервера провайдера.

Наверное. Для меня оказалось сделать так проще. Да и на контроле все :D
Мне вот интересно, куда прописать привязку к интерфейсу. На CentOS естественно нет файла /etc/default/dhcp3-server, куда бы влепить его? ))

#138090

Блин жестоко через bind так строить, мне кажеться проще поднять wins сервер и все имена компов будет спокойно видно.

#138094
Kettler написал:
Блин жестоко через bind так строить, мне кажеться проще поднять wins сервер и все имена компов будет спокойно видно.

Дык имена же в автомате записываются в файл зоны... я руками ничего не пишу.

#138095
XliN написал:
Для меня оказалось сделать так проще.

дык без bind'а вообще примитивно. просто прописываете DNS провайдера, и все дела.

XliN написал:
Мне вот интересно, куда прописать привязку к интерфейсу. На CentOS естественно нет файла /etc/default/dhcp3-server, куда бы влепить его? ))

почитайте /etc/init.d/network

#138101
XliN написал:
[quote=Kettler]Блин жестоко через bind так строить, мне кажеться проще поднять wins сервер и все имена компов будет спокойно видно.

Дык имена же в автомате записываются в файл зоны... я руками ничего не пишу.[/quote]
Да какая на фиг зона. Если у меня есть машина router

ping router

Обмен пакетами с router [172.16.0.1] с 32 байтами данных:
Ответ от 172.16.0.1: число байт=32 время<1мс TTL=64
Ответ от 172.16.0.1: число байт=32 время<1мс TTL=64

Войдите или зарегистрируйтесь, чтобы ответить.