- 论坛徽章:
- 1
|
请问resolv.conf怎么起作用的?
man page 不是有提到 resolve(), gethostbyname() 等函式調用嗎?
你得看你的 application 用哪一種函式來查詢 hostname,
而 nsswitch 是系統 name service 的設定文件,
其中有一項是關於 hosts , 設定了不同的名稱解釋方法及順序.
順序是採 first match 原則, 也就一旦前面的方法找到了, 就不再找. 否則用下一個方法, 直到找到為止或全部方法都都用光.
當你用到 dns 的方法時,
application 會調用 resolve() 函式, 也就是所謂的 resolver.
這時, 就會參考 resolv.conf 的設定了.
這裡的設定很複雜, 也可很簡單, 有空多查 man page 或搜一下 dns 版 abel 兄的文章來看.
最簡單的設定是 nameserver 項目,
是告訴 resolver 查哪些 server 及查詢順序.
若沒特別指定, 這裡也是以 first match 原則.
但不是指有 answer 回來, 而是指連得上 name server .
一旦連上了, 就不再問下面的 server 了.
這個過程會有一個 time out 的計算方式.
我之前在 dns 版討論過, 你有空去 dns 精華搜一下吧. |
|