Thank you for reading this post, don't forget to subscribe!
Dnsmasq - это легкий и быстроконфигурируемый DNS, DHCP и TFTP сервер, предназначенный для обеспечения доменными именами и связанными с ними сервисами небольшие сети. Может обеспечивать именами локальные машины, которые не имеют глобальных DNS-записей. DHCP сервер интегрирован с DNS сервером.
Настройку будем проводить на сервере с операционной системой CentOS7
Установка пакета dnsmasq
sudo yum install dnsmasq
Настройка DHCP-сервера
Настройка производится в конфигурационному файле /etc/dnsmasq.conf
cat /etc/dnsmasq.conf
[codesyntax lang="php" blockstate="collapsed"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# Указываем пользователя и группу с правами которых будет запущен демон user=nobody group=nobody # Указываем интерфейсы на которых будут приниматься запросы interface=eth0 interface=eth1 # Или интерфейсы на которых не будут приниматься запросы except-interface="интерфейс" # Или ip-адреса listen-address= "ip-адрес" #Если вы хотите что бы интерфейс принимал только DNS запросы no-dhcp-interface= "интерфейс" # Указываем диапозон адресов и время аренды dhcp-range=192.168.0.50,192.168.0.150,10h # Для статической привязки адресов указываем MAC-адрес хоста и #адрес, который будем ему выдавать dhcp-host=11:22:33:44:55:66,192.168.0.51 # или ip-адрес и имя хоста dhcp-host=11:22:33:44:56:77,mail-server,192.168.0.55,60m # Можем выдать один ip-адрес одному из хостов кто первый успеет dhcp-host=12:21:33:43:88:11,22:11:55:44:88:81,192.168.0.59 # Указание опций DHCP # Шлюз по умолчанию dhcp-option,3,192.168.0.1 # DNS сервер dhcp-option,6,192.168.0.1 # Лимит на аренду ip-адреса в секундах (по-умолчанию 150) dhcp-lease-max=3600 # Указание файла для хранения информации об аренде адресов dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases # Указание, что DHCP сервер работает в режиме authritative dhcp-authoritative |
[/codesyntax]
Возможных настроек намного больше, но мы рассмотрели самые часто используемые, для полного перечня обращайтесь к документации
Перечень всех опций DHCP можно найти по сслыке IANA (Internet Assigned Numbers Authority).
Настройка DNS
Настройка DNS сервера производится в том же конфигурационном файле /etc/dnsmasq.conf
cat /etc/dnsmasq.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# Указание интерфейсов и ip-адрес мы рассмотрели в секции DHCP # Указываем доменое имя domain=test.un # можно указать отдельное доменое имя, для отдельной сети domain=wifi.test.un,192.168.100.0/24 #Или для определенного диапозона адресов domain=range.test.un,192.168.100.100,192.168.100.200 # Указание серверов для форвардинга запросов server=8.8.8.8 # Указание адресов доменных серверов для перенаправления запроса к определенным зонам server=/office.un/192.168.50.10 # Аналогично можно указать для обратной зоны server=/50.168.192.in-addr.arpa/192.168.50.10 #По умолчанию dnsmasq использует файл /etc/hosts для сопоставления имен #хостов IP-адресам, но это тоже можно изменить. Если вы не хотите #использовать /etc/hosts, вы можете указать это при помощи опции no-hosts # Если вы хотите использовать для этих целей другой файл addn-hosts= "путь к файлу" #Записи зоны #Запись типа А address=/mail-server.test.un/192.168.0.55 address=/ldap.test.un/192.168.0.210 #Запись CNAME cname=mail-server,mail # алиасом для mail-server будет имя mail #Запист типа SRV srv-host=_ldap._tcp.test.un,ldap.test.un,389 #Алиасы или подмена ip-адресов #Кроме задания собственных записей DNS можно изменять информацию, #получаемую от внешних DNS-серверов путем подмены полученного IP-адреса. #Для замены одного адреса alias=10.10.1.1,172.20.1.1 # если при запросе от внешнего DNS сервера мы получили адрес #10.10.1.1 то мы подменим его на 172.20.1.1 #Или можно заменять целую сеть alias=10.10.1.0,172.20.1.0,255,255,255,0 #Dnsmasq читает файл /etc/resolv.conf для определения перечня DNS серверов #для форвардинга, если вы хотите поменять это и указать другой файл для этих целей resolv-file= "путь к файлу" |
Для того, чтобы обращения к DNS шли именно на dnsmasq на том же сервере, где он сам работает, необходимо указать первой записью в /etc/resolv.conf следующую строку
1 |
nameserver 127.0.0.1 |