Brauche Hilfe mit Bind-Chroot
Wir verwenden die folgende Version von Bind und Bind-Chroot
bind-9.11.2-lp151.10.1.x86_64
bind-chrootenv-9.11.2-lp151.10.1.x86_64
Unser Automatisierungscode wird ausgeführt, um Zonendateien nur zu /var/lib/named/etc/named.conf und nicht zu /etc/named.conf hinzuzufügen.
Um also die in /var/lib/named/etc/named.conf erstellten Zonendateien in /etc/named.conf widerzuspiegeln, habe ich in /etc einen symbolischen Link als „ln -s /var/lib/named/etc/named.conf named.conf“ erstellt, um Folgendes widerzuspiegeln: lrwxrwxrwx 1 root root 29. Dez. 9 11:03 named.conf -> /var/lib/named/etc/named.conf
Wenn ich nun Änderungen an der Datei in /var/lib/named/etc/named.conf vornehme und einen „service named restart“ ausführe, wird die Datei in /etc/named.conf nicht geladen.
Fehlermeldungen in /var/log/messages wie unten
2021-12-09T11:04:46.684677+05:30 lavasadns1 systemd[1]: Stopped Berkeley Internet Name Domain (DNS). 2021-12-09T11:04:46.685049+05:30 lavasadns1 systemd[1]: Starting Berkeley Internet Name Domain (DNS)... 2021-12-09T11:04:46.735359+05:30 lavasadns1 named.init[2509]: Starting name server BIND cp: cannot stat '/etc/named.conf': No such file or directory 2021-12-09T11:04:46.844546+05:30 lavasadns1 named.init[2509]: open: /etc/named.conf: file not found 2021-12-09T11:04:46.847806+05:30 lavasadns1 systemd[1]: named.service: Control process exited, code=exited status=6 2021-12-09T11:04:46.848137+05:30 lavasadns1 systemd[1]: Failed to start Berkeley Internet Name Domain (DNS). 2021-12-09T11:04:46.848475+05:30 lavasadns1 systemd[1]: named.service: Unit entered failed state. 2021-12-09T11:04:46.848772+05:30 lavasadns1 systemd[1]: named.service: Failed with result 'exit-code'. 2021-12-09T11:05:31.657460+05:30 lavasadns1 systemd[1]: Starting Berkeley Internet Name Domain (DNS)... 2021-12-09T11:05:31.666976+05:30 lavasadns1 named.init[2573]: Name server configuration file /etc/named.conf does not exist.
und der symbolische Link ändert seine Farbe auf Rot. Warum passiert das? Und wie kann dieser Fehler vermieden werden?
Antwort1
Startet bind
/ named
läuft /usr/sbin/named.init
.
Darin befindet sich eine Funktion namens checkAndCopyConfigFiles
.
Da ist die Zeilerm -f ${CHROOT_PREFIX}/${configfile}
Sie haben einen symbolischen Link von /etc/named.conf
nach erstellt /var/lib/named/etc/named.conf
. Wenn das Skript jetzt ausgeführt wird, wird es gelöscht /var/lib/named/etc/named.conf
.
Daher hat das Skript gelöscht /var/lib/named/etc/named.conf
und versucht, den Endpunkt des symbolischen Links zu kopieren, /etc/named.conf
der nicht mehr existiert, da er bereits gelöscht wurde.
Dies führt zu einer hängenden symbolischen Link-Referenz und wird daher umgekehrt red
.
Ihr Handwerk named.conf
existiert nicht mehr.
Wenn Sie es zurückbekommen können, haben Sie drei Möglichkeiten.
- Lassen Sie Ihren Code die
/etc/named.conf
und alle anderen Dateien innerhalb/etc/
und nicht innerhalb ändern/var/lib/named/etc
. - Bearbeiten
/usr/sbin/named.init
und erstellen Sie Ihr eigenes Tool, das mit einer solchen Situation zurechtkommt. - Entfernen Sie es
bind-chrootenv
und erstellen Sie Ihr eigenes Startskript.