**Примечание.** Из-за взаимосвязи DNS почти всех служб в кластере интрасети DNS не может прерываться и должна быть настроена одновременно.主、备 2个 DNS
, в случае перерыва в обслуживании.
#используйте инструменты
- dnsmasq
- keepalived (необязательно, настройте виртуальный IP-адрес для запуска службы)
Подготовить
Если система:Ubuntu 18.04
, приходит сsystemd-resolve
, его нужно отключить, потому что он привязан к порту53
, что будет таким же, какDnsmasq
Портовый конфликт.
Выполните следующую команду, чтобы отключить разрешенную службу:sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
Установить
sudo apt-get install dnsmasq
Измените файл конфигурации /etc/dnsmasq.conf.
вdomain.com
Для настроенного доменного имени свободно меняйте в соответствии с фактическими потребностями
listen-address=0.0.0.0
#domain-needed This tells dnsmasq to never pass short names to the upstream DNS servers. If the name is not in the local /etc/hosts file then “not found” will be returned.
domain-needed
#bogus-priv All reverse IP (192.168.x.x) lookups that are not found in /etc/hosts will be returned as “no such domain” and not forwarded to the upstream servers.
bogus-priv
#no-resolv Do not read resolv.conf to find the servers where to lookup dns.
no-resolv
#Set the size of dnsmasq's cache. The default is 150 names. Setting the cache size to zero disables caching.
#cache-size=500
#no-poll Do not poll resolv.conf for changes
no-poll
server=/domain.com/192.168.1.114
#server=8.8.8.8 Set one or more DNS servers to use when addresses are not local. These are open DNS servers.
server=114.114.114.114
#local=/example.com/ Our local domain, queries in these domains are answered from /etc/hosts or the static-hosts files.
local=/domain.com/
#address=/doubleclick.net/127.0.0.1 Use this force an address for the specified domains. e.g to block adverts force doubleclck.net to localhost
#address=/chianyu.com/192.168.1.114
#no-hosts This options stops dnsmasq using the local /etc/hosts file as a source for lookups .
no-hosts
#addn-hosts=/etc/dnsmasq_static_hosts.conf Force dnsmasq to use this file for lookups. It is in the same format as /etc/hosts.
addn-hosts=/etc/dnsmasq_static_hosts.conf
#In the file /etc/dnsmasq_static_hosts.conf you can add a list of local machines with static IP addresses in the same format as the hosts file. It is also an easy way of creating aliases or CNAME records.
#192.168.0.8 mail mail.example.com
#192.168.0.9 smtp smtp.example.com
#expand_hosts So we can see our local hosts via our home domain without having to repeatedly specify the domain in our /etc/hosts file.
expand-hosts
#domain This is your local domain name. It will tell the DHCP server which host to give out IP addresses for.
domain=chianyu.com
dhcp-range=192.168.1.100,192.168.1.200,72h
dhcp-range=tftp,192.168.1.230,192.168.1.239
#dhcp服务的静态绑定
# Always set the name and ipaddr of the host with hardware address
# dhcp-host=00:0C:29:5E:F2:6F,192.168.1.201
# dhcp-host=00:0C:29:5E:F2:6F,192.168.1.201,infinite 无限租期
#dhcp-host=mylaptop,192.168.0.199,36h Any machine saying they are hostname = ‘mylaptop’ gets this IP address
# 忽略下面MAC地址的DHCP请求
# Never offer DHCP service to a machine whose ethernet
# address is 11:22:33:44:55:66
#dhcp-host=11:22:33:44:55:66,ignore
#dhcp-option=option:router,192.168.1.1 When a host is requesting an IP address via DHCP also tell it the gateway to use.
dhcp-option=option:router,192.168.1.1
#dhcp-option=option:ntp-server,192.168.1.4 When a host is requesting an IP address via DHCP also tell it the NTP to use.
#dhcp-option=option:ntp-server,192.168.1.1
dhcp-option=19,0 # ip-forwarding off
dhcp-option=44,192.168.1.114 # set netbios-over-TCP/IP aka WINS
dhcp-option=45,192.168.1.114 # netbios datagram distribution server
dhcp-option=46,8 # netbios node type
Измените файл конфигурации статического хоста.
Измените файл:sudo vim /etc/dnsmasq_static_hosts.conf
192.168.1.110 dns1.domain.com dns1
192.168.1.111 dns2.domain.com dns2
192.168.1.112 haproxy.domain.com haproxy
192.168.1.113 mysql.domain.com mysql
192.168.1.114 myapp.domain.com myapp
192.168.1.115 router.domain.com router
**Примечание: **Обязательно обратите внимание! ! ! Между записями не должно быть пустых строк, иначе это вызоветping
имя домена, перед ответом будет несколько секунд паузы, а может и не бытьping
проблема с пропуском. Конкретная причина неизвестна, возможно, dnsmasq недостаточно хорошо анализирует формат файла.
добавить автозапуск
Измените /etc/rc.local, чтобы добавитьservice dnsmasq restart