.local címek feloldása

Sziasztok!

Valaki homályosítson már fel, hogy mi történik itt:
Egy Qt programot tesztelnék otthonról. Ehhez VPN-el rácsatlakoztam a munkahelyi hálózatra, és beállítottam az ottani Név szervert a /etc/resolv.conf -ba.
Ez után a helyi gépemen, ha a host parancsot hívom, akkor szépen feloldja a .local domain-ba tartozó neveket. Ugyanúgy, ahogy a munkahelyi gépem teszi. Eddig jó. Viszont a Qt-s programom nem tudja feloldani ezeket a neveket (a munkahelyi gépem szintén Ubuntu 11.04, ugyanezen programban, ugyanezen neveket feloldja) hanem csak vá egy kicsitr, mintha nem tudna kapcsolatba lépni a szerverrel. tcpdump-al megnéztem, nem kérdezi meg a DNS-t csak vár.
Utóbb kiderült, a böngészők sem tudják ezeket a neveket feloldani (konquerror, firefox), csak a host parancs képes erre.
Ha beírom a resolv.conf -ba a search opciónál a lokál domain-eket, akkor a domain név nálkül megadott neveket feloldja, de ha kiírom a .lokal domain-t is, akkor nem.
pl.: resolv.conf:

search xyz.local
domain xyz.local
nameserver 172.20.2.3

Ekkor: "host abc.xyz.local" visszaadja az ip címet. "host abc" szintén visszaadja a címet, de a programomból (és úgy tűnik a legtöbb programból) csak az abc név feloldható, az abc.xyz.local már nem, ez utóbbi esetben csak tökölés van, mintha kérdezne, pedig dehogy.

Valamilyen szabályról bizonyára én nem tudok.

Hozzászólások

A program indulásakor, vagy legkésőbb az első hostname lookupkor beolvassa a /etc/resolv.conf tartalmát, majd ezt többet nem teszi (nem számít senki arra, hogy az a fájl menet közben meg akarna változni).

Ha előbb indul a program, aztán jön létre a vpn, akkor simán lehet, hogy a program a korábbi dns szervert használja, amíg újra nem indítod - viszont a vpn miatt mondjuk a korábbi dns szervert esetleg el sem tudod érni...

Kétlem, hogy erről van szó. A program a resolf.conf átírása(i) után többször is újra lett indítva (nem számítottam rá, hogy segít, de a gépet is újraindítottam).
Halvány sejtésem, hogy a host.conf-ba kéne írni valami okosságot.
Míg el nem felejtem, a VPN-t a router-em csinálja, gyakorlatilag folyamatosan él. És most is a túloldali DNS-t használom (nem csak szerintem, de a tcpdump szerint is).

Ha valakit érdekel a megoldás.
Az mDNS ugatott bele. A host a DNS-t kérdezte, mindenki más a lokális kiszolgálót (mDNS), és ha az nem ismerte a nevet, márpedig az nem ismerte, akkor a DNS-től már nem kérdezett a .local neveknél.
A /etc/nsswitch.conf fájlban át kellett írni a
"hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4"
sort
"hosts: files dns"
-re.