вівторок, 9 вересня 2008 р.

host lookup problems and hacky solutions

I got this really weird problem today: x apps couldn't connect XMing host saying "cannot connect to X server".
After some trials & errors - I defined that linux box can't resolve "localhost" host and its own local hostname "ninja"...
/etc/nsswitch.conf shows:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
(files go first)
/etc/hosts is all right too...

nslookup shows that it tries to resolve localhost and ninja using dsl isp nameservers
ping shows "unknown host 'localhost'" or something like that - why doesn't it use hosts file? I still don't know... after some time on linux community forums I've decided to fix it my way and here is how I did it:

1) first of all, I turned off some pppoe up and down scripts that rewrite /etc/resolv.conf:
# these must be chmoded to non-executables
# ip-up script uses run-parts that runs all the executable files
sudo chmod -x /etc/ppp/ip-up.d/0000usepeerdns
sudo chmod -x /etc/ppp/ip-up.d/0dns-up
sudo chmod -x /etc/ppp/ip-up.d/dns-totd
# I think these can be left executable, but just to be sure...
sudo chmod -x /etc/ppp/ip-down.d/0000usepeerdns
sudo chmod -x /etc/ppp/ip-down.d/0dns-up
sudo chmod -x /etc/ppp/ip-down.d/dns-totd
# after poff and pon dsl-provider resolv conf remains the same (see 2) so it worked

2) /etc/resolv.conf was looking this way before:
nameserver 195.5.46.12
nameserver 195.5.46.10
search local.lan
these values were set automatically on dsl link up
I changed it to this:
nameserver 192.168.1.2
#nameserver 195.5.46.12
#nameserver 195.5.46.10
#search local.lan
I have to mention that I have bind9 up and running successfully as a local dns server for a few months (so I won't be describing bind9 setup here)

3) bind9 has a "localhost" zone already configured so at this point I could already ping localhost alright. I needed to be able to ping "ninja" hostname, so here's what I did:
- opened bind config file in editor
sudo nano /etc/bind/named.conf
- added "ninja" zone to it
zone "ninja" {
type master;
file "/etc/bind/db.ninja";
};
- added zone definition file /etc/bind/db.ninja mentioned above

sudo nano /etc/bind/db.ninja
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ninja. root.ninja. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ninja.
@ IN A 192.168.1.2


and it pings.

P.S. XMing is alive again
Дописати коментар