DNS bei DSL

free

Well-Known Member
Hi,

irgendwie habe ich keinen Bock mehr, 1x pro Monat meine forwarders zu aendern, weil die, die ich ganz oben stehen hab, nicht mehr erreichbar sind und timeouts verursachen...
Eigentlich schickt doch mein ISP bei jeder Einwahl die IP von einem funktionierenden DNS mit. Gibt es nicht eine elegante Loesung, diese in meinen lokalen DNS zu uebernehmen, ohne mit einem haesslichen Skript in der resolv.conf und named.conf rumzuschreiben? Wenn nicht, hat jemand schon so etwas geschrieben, was sich ueber laengere Zeit als fehlerfrei bewiesen hat?

Danke
 
Hi free,

free said:
Hi,

irgendwie habe ich keinen Bock mehr, 1x pro Monat meine forwarders zu aendern, weil die, die ich ganz oben stehen hab, nicht mehr erreichbar sind und timeouts verursachen...
Eigentlich schickt doch mein ISP bei jeder Einwahl die IP von einem funktionierenden DNS mit. Gibt es nicht eine elegante Loesung, diese in meinen lokalen DNS zu uebernehmen, ohne mit einem haesslichen Skript in der resolv.conf und named.conf rumzuschreiben? Wenn nicht, hat jemand schon so etwas geschrieben, was sich ueber laengere Zeit als fehlerfrei bewiesen hat?

Danke

Sowas habe ich als shell-Skript entwickelt und befindet sich zur Zeit in der Testphase.
Es wird ca. zwei Wochen dauern. Dieses Skript "patch"t die ipfw-Regeln und die DNS-Konfiguration. EInen anderen Weg habe ich (noch) nicht gefunden.

Das ist natürlich aber auch eine gefährliche Sache!

Eine andere Möglichkeit ist, dass Du den forward(er)-Eintrag löschst. Dann ist bind gezwungen den nächsten root-Server anzurufen und ihn um Namensauflösung zu ersuchen (sollte man eigentlich nicht machen).
Du kannst natürlich auch den DNS der Telekom oder eines anderen Providers eintragen.

Viele Grüße

Jürgen
 
Last edited by a moderator:
Keine forwarder nehmen ist doch auch nicht besser, da die root-server bestimmt nicht die schnellsten sind, oder?
Ist jetzt nur so ein ploetzlicher, nicht verifizierter Gedanke, aber kann man nicht was basteln, dass man bei jeder neuen Einwahl einfach den DNS neu startet und ihm quasi als Parameter den ISP-DNS uebergibt? Das waere dann nicht ganz so dirty wie in der config-Datei rumzuschreiben.
 
Hallo free,

free said:
Keine forwarder nehmen ist doch auch nicht besser, da die root-server bestimmt nicht die schnellsten sind, oder?
Ist jetzt nur so ein ploetzlicher, nicht verifizierter Gedanke, aber kann man nicht was basteln, dass man bei jeder neuen Einwahl einfach den DNS neu startet und ihm quasi als Parameter den ISP-DNS uebergibt? Das waere dann nicht ganz so dirty wie in der config-Datei rumzuschreiben.

das war ein Gedanke, dass Du erstmal das DNS-Problem im Griff hast.
Aber ich bastle an meiner Lösung. Der Punkt ist halt nur, dass Du dem named keine "forwarding-ip-addresses" mitgeben kannst. Sonst wäre das ja einfach :rolleyes:

Grüße

Jürgen
 
leider kann das nichtmal der rdnc(8), vielleicht sollte man dem die Fähigkeit verpassen, fände ich die sauberste Lösung, und dann aus ppp.linkup rdnc mit entsprechenden Parametern aufrufen.
 
@free:
Ich bin mir nicht ganz sicher, ob ich Dich richtig verstanden hab, aber ich glaub Du willst das so machen wie in diesem Howto. Die Option "add default HISADDR" ist dabei verantwortlich für das Übernehmen der Nameserver des Providers.

Gruß, matze
 
.mp: Deine Unsicherheit war berechtigt - du hast mich nicht richtig verstanden.

juedan: nee, es ist ja nichts akutes, nur hat's mich gestern so genervt, dass ich da einfach keinen Bock mehr drauf hab... klar kann man dem named nix mitgeben, deshalb habe ich auch gesagt, dass man was basteln koennte, weil das immer noch besser waere, als direkt in der config zu schreiben.

Maledictus: wer oder was ist rdnc(8) (http://www.freebsd.org/cgi/man.cgi?...ath=FreeBSD+5.3-RELEASE+and+Ports&format=html)? klingt naemlich interessant...
 
Mist, erst lesen, dann posten... so boese, wie es da steht, war's gar nicht gemeint!

.mp: Ich habe einen DSL-Gateway, auf dem auch (fuer's interne Netz) ein DNS laeuft. Das was du beschreibst funktioniert ja nur lokal.
 
Hallo free,

hier mal das Skript - UNGETESTET!

Code:
#!/bin/sh
# Skript: update_dns.sh
#
#

# DNS-Konfiguration
# -----------------
file_named_conf_in="/etc/namedb/named.conf"
file_named_conf_out="./named.test"

# Steuerung der Namesaufloesung
# -----------------------------
file_resolv_conf_in="/etc/resolv.conf"
file_resolv_conf_out="./resolv.conf.test"

# Erstellen der neuen named.conf
# ------------------------------
schreibe_named_conf() 
{
	flag=0
	
	cat ${file_named_conf_in} | while read input; do
		if [ "$input" = "forwarders {" ]; then
			echo $input >> ${file_named_conf_out}
			echo $1";" >> ${file_named_conf_out}
			flag=1
		fi
		if [ "$input" = "};" ]; then
			flag=0
		fi
		if [ "$flag" = "0" ]; then
			echo $input >> ${file_named_conf_out}
		fi
	done
}

# Erstellen der neuen resolv.conf
# -------------------------------
schreibe_resolv_conf()
{
	echo "domain "${1} >> ${file_resolv_conf_out}
	echo "nameserver "${2} >> ${file_resolv_conf_out}
}

# Hauptprogramm
# -------------

if [ "$#" -ne "2" ]; then
	echo "So wird update_dns.sh benutzt:"
	echo "------------------------------"
	echo "update_dns.sh p1 p2"
	echo "  p1 = Name der LAN-Domain"
	echo "  p2 = IP-Adresse des LAN-DNS"
	exit 1
fi

cat /etc/resolv.conf | while read text ip; do
	if [ "$text" = "nameserver" ]; then
		if [ -f ${file_named_conf_out} ]; then
			rm ${file_named_conf_out}
		fi
		schreibe_named_conf $ip;
		# Kopieren der ${file_named_conf_out} nach ${file_named_conf_in}
		cp ${file_named_conf_out} ${file_named_conf_in}
		
		if [ -f ${file_resolv_conf_out} ]; then
			rm ${file_resolv_conf_out}
		fi
		schreibe_resolv_conf $1 $2;
		# Kopieren der ${file_resolv_conf_out} nach ${file_resolv_conf_in}
		cp ${file_resolv_conf_out} ${file_resolv_conf_in}
		rndc stop
		rndc start
	fi
done

exit 0;

In Deiner /etc/ppp/ppp.conf mußt Du natürlich den Eintrag "enable dns" setzen, damit die /etc/resolv.conf aktualisiert wird.

Das Skript muß in die /etc/ppp/ppp.linkup gestellt werden.

Für Fragen stehe gerne zur Verfügung, nur leider heute nicht mehr. Ich muß mich mal wieder um meine Feundin kümmern:D

Viele Grüße

Jürgen
 
Last edited by a moderator:
Mist, hatte mich verschrieben, ich meinte natürlich rndc(8). :rolleyes:

@juedan:
nicht schlecht, aber was mich stört:
in der resolv.conf des routers sollte 127.0.0.1 stehen, damit auch dieser den named mitbenutzt.
es geht sicherlich einfacher, wenn du in ppp.linkup sowas schreibst:
Code:
MYADDR:
 !bg update_named_conf.sh DNS0 DNS1
DNS0 und DNS1 werden durch die IPs der übermittelten Nameserver ersetzt.
in diesem skript muss man dann nur noch sowas wie deine schreibe_named_conf() ausführen.
und natürlich `rndc reconfig`.

somit kann man auch disable dns in die ppp.conf schreiben, damit nicht immer die resolv.conf "zerschossen" wird :)
 
Hallo Maledictus,

wenn an das Skript /etc/ppp/ppp.linkup die DNS-Adresse übermittelt wird, dann der Teil "schreibe_resolv_conf()" natürlich entfallen und /etc/ppp/ppp.conf muß dann auch nicht manipuliert werden.

Das Skript war halt der "Feldweg" nach Rom :D Die Autobahn entsteht noch in meinem Kopf:D

Grüße und schönen Abend

Jürgen
 
na toll, DNS0 und DNS1 in ppp.linkup werden auch nur mit dem ersetzt, was in /etc/resolv.conf steht. Somit fällt muss man also doch 'enable dns' in die ppp.conf schreiben...
 
Guten Morgen free,

was ist denn aus Deinem Problem mit den forwarders geworden?

Viele Grüße

Jürgen
 
Bis jetzt noch nix, weil ich aus irgendeinem Grund aufeinmal Latenzzeiten von 300ms bekommen habe. Da ich aber gerade fuer Diplompruefungen lernen muss, habe ich mich nicht weiter mit beschaeftigt, sondern einfach den alten Netgear-Router wieder drangehaengt (so ein schrottding, aber besser als nix...).
Deshalb halte ich im Moment die Baelle eher flach.
 
Mein Zauberwort heißt in diesem Zusammenhang dnsmasq. Der benutzt die resolv.conf und hat demzufolge überhaupt keine Probleme mit einem wechselnden DNS... Außerdem ist gleich ein schmucker, kleiner DHCP-Server dabei. Nicht für Produktionsumgebungen gedacht, aber wer hat da schon ne DSL Anbindung?
 
Last edited:
Back
Top