Я использовал dnsmasq в качестве DHCP-сервера / распознавателя на старой Raspberry Pi, работающей под управлением wheezy, в течение многих лет без каких-либо проблем. Я решил модернизировать, чтобы растянуть и, в то же время, до Raspberry Pi 3B+.

К сожалению, я пытаюсь настроить новый Pi для предоставления тех же служб DHCP и DNS, что и для старого Pi. Я использую dnsmasq для обеих служб. Я могу настроить новый Pi для правильной работы, когда он также не предоставляет службы DHCP/DNS, а вместо этого получает те из старого Pi. Но когда я пытаюсь получить эти услуги, я теряю связь с Интернетом. Такое ощущение, что я испортил настройку шлюза, хотя я не знаю как, и диагностика, которую я знаю, как запустить, похоже, не показывает проблемы со шлюзом.

На старом Pi, запущенном wheezy, я настроил интерфейс Ethernet в /etc /network /interfaces следующим образом:

iface eth0 inet static
address 10.0.0.4
netmask 255.255.255.0
gateway 10.0.0.2

На новом Pi, работающем в режиме stretch, я настраиваю интерфейс Ethernet в dhcpcd.conf (обратите внимание, что здесь я использую другой статический IP-адрес, поэтому два устройства не сталкиваются, пока я пытаюсь осуществить переход к новое устройство):

interface eth0
static ip_address=10.0.0.5/24
static routers=10.0.0.2

Если я запускаю новый автономный Pi, я комментирую эти три строки, с тех пор новый Pi получает свой IP-адрес от старого Pi.

При растяжении процесс загрузки, похоже, включает в себя resolvconf и dhcpcd, переписывающий /etc/resolv.conf. Кроме того, resolvconf создает отдельный файл resolv.conf в /run/dnsmasq/resolv.conf..., и они не совпадают. Я также не понимаю, почему существуют два отдельных файла и какую роль играет каждый из них.

Вот /etc/resolv.conf после загрузки:

# Generated by resolvconf
nameserver 127.0.0.1
# external nameservers
nameserver 8.8.8.8
nameserver 8.8.4.4

Вот /run/dnsmasq/resolv.conf:

# Generated by resolvconf

Вот resolvconf.conf:

# Configuration for resolvconf(8)
# See resolvconf.conf(5) for details

resolv_conf=/etc/resolv.conf
# If you run a local name server, you should uncomment the below line and
# configure your subscribers configuration files below.
name_servers=127.0.0.1, 8.8.8.8, 8.8.4.4

# Mirror the Debian package defaults for the below resolvers
# so that resolvconf integrates seemlessly.
dnsmasq_resolv=/var/run/dnsmasq/resolv.conf
pdnsd_conf=/etc/pdnsd.conf
unbound_conf=/var/cache/unbound/resolvconf_resolvers.conf

resolv.conf.tail:

# external nameservers
nameserver 8.8.8.8
nameserver 8.8.4.4

и dhcpcd.conf:

# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.

# Allow users of this group to interact with dhcpcd via the control socket.
#controlgroup wheel

# Inform the DHCP server of our hostname for DDNS.
hostname

# Use the hardware address of the interface for the Client ID.
clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
# Some non-RFC compliant DHCP servers do not reply with this set.
# In this case, comment out duid and enable clientid above.
#duid

# Persist interface configuration when dhcpcd exits.
persistent

# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Most distributions have NTP support.
option ntp_servers
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu

# A ServerID is required by RFC2131.
require dhcp_server_identifier

# Generate Stable Private IPv6 Addresses instead of hardware based ones
slaac private

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Most distributions have NTP support.
option ntp_servers
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu

# A ServerID is required by RFC2131.
require dhcp_server_identifier

# Generate Stable Private IPv6 Addresses instead of hardware based ones
slaac private

# This section needs to be live if mycroft is serving as
# the DHCP server for the LAN. Conversely, if it isn't
# serving in that role, it needs to be commented out.
interface eth0
static ip_address=10.0.0.5/24
static routers=10.0.0.2
#static domain_name_servers=127.0.0.1,8.8.8.8,8.8.4.4

# not using ip6!
#static ip6_address=fd51:42f8:caae:d92e::ff/64

# domain name servers specified in resolv.conf.tail
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

# fallback to static profile on eth0
#interface eth0
#fallback static_eth0

Предложения?

0