A DNS server has the IP address 192.168.0.1. Which TWO of the following need to be done on a client machine to use this DNS server?



A. Add nameserver 192.168.0.1 to /etc/resolv.conf
B. Run route add nameserver 192.168.0.1
C. Run ifconfig eth0 nameserver 192.168.0.1
D. Ensure that the dns service is listed in the hosts entry in the /etc/nsswitch.conf file
E. Run bind add nameserver 192.168.0.1

題解

GNU C語言的函式庫會根據「/etc/resolv.conf」設定檔所定義的網域名稱伺服器來查找網域名稱實際對應的IP位址。可以使用的關鍵字如下:

  • nameserver:要查詢的網域名稱伺服器。
  • domain:本地的網域名稱。
  • search:查詢主機名稱的時候所串接的網域名稱。
  • sortlist:排序gethostbyname函數的回傳結果。
  • options

部份GNU C語言的函式庫會根據本地端系統的設定不同而有不同的運作方式,像是getaliasent、gethostbyname、getnetent等等的函數。GNU C語言的函式庫會使用NSS(Name Service Switch)來讀取系統的資料庫,資料庫名稱列表如下:

  • aliases
  • ethers
  • group
  • hosts
  • initgroups
  • netgroup
  • networks
  • passwd
  • protocols
  • publickey
  • rpc
  • services
  • shadow

NSS的設定檔「/etc/nsswitch.conf」決定了該資料庫名稱的資料取得的來源和順序。如「files」表示來源為檔案(設定檔)、「db」表示來源為資料庫、「dns」表示來源為網域名稱伺服器,而「compat」則有點像是「files」但同時能使用檔案來過濾NIS來的資料。

所以答案是選項A和選項D。