Настройка Raspberry Pi в качестве DHCP / локального DNS-сервера, Stretch vs Wheezy

757
Mark Olbert

Я использовал 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
Wheezy использует sysvinit, Stretch использует systemd, который автоматизирует некоторые сетевые задачи. Ipor Sircer 5 лет назад 0
Спасибо, @IporSircer; это еще одна кривая обучения, которую я пытаюсь спустить. Есть мысли о том, что я делаю не так в конфигурации? Mark Olbert 5 лет назад 0
Я думаю, что ваш конфиг в порядке, просто systemd и его сетевой менеджер считают, что они умнее вас. (Я не использую systemd, у меня были другие странные ошибки с ним.) Ipor Sircer 5 лет назад 0
Лол! Прямо сейчас я уверен, что это умнее меня. Mark Olbert 5 лет назад 0

0 ответов на вопрос