Hintergrund: der DNS-Cache meines Routers spinnt zeitweise mit der Folge, daß hostnames nicht korrekt aufgelöst werden.
Router ist ein Speedport W700V an T-Com DSL. Der erhält nach der nächtlichen Trennung jeweils eine neue IP und 2 DNS-Server dazu. Folgerichtig habe ich die Router-IP in der /etc/network/interfaces als DNS-Server eingetragen:
dns-nameservers 192.168.0.10
Dieser Eintrag landet dann auch nach jedem Reboot brav in der resolv.conf:
cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.0.10 search home
Jetzt möchte ich aber, daß DNS-Abfragen vom System direkt and die DNS-Server der T-Com gehen, d.h., daß die beiden T-Com DNS-Server vorrangig benutzt werden. Ich habe inzwischen ein Script, welches diese IP's direkt vom Router ausliest und ausgibt:
entweder so für die interfaces:
$ ./dns-get 217.237.148.22 217.237.150.51
oder so für die resolv.conf:
./dns-get nameserver 217.237.148.22 nameserver 217.237.150.51
Natürlich darf das Script erst laufen wenn das Netzwerk schon up ist, sonst kann ich ja den Router nicht kontaktieren und befragen.
Meine Fragen:
1. Ist die resolv.conf der richtige Ort? Sie wird zumindest bei jeden Reboot neu erstellt, kann also getrost editiert werden?
2. Ist Jemand fit in sed, der mir den Befehl fürs Einfügen vor der IP des Routers (192.168.0.10) nennen kann?
Viele Grüße,
Ingo
EDIT: resolv.conf ist ein SymLink, der nicht geändert wird:
ls -l /etc/resolv.conf lrwxrwxrwx 1 root root 31 29. Apr 2011 /etc/resolv.conf -> /etc/resolvconf/run/resolv.conf
und nur die Datei unter ../run/ wird beim Booten neu geschrieben. das ist im Wiki-Artikel nicht erwähnt.