執行順序
所有的解析請求由linux的resolver library(指的是一些c標準庫的函式,主要是
gethostbyname和gethostbyaddr
)完成,它涉及/etc/host.conf和/etc/nsswitch.conf,後者優先。它會查詢2個東西,乙個是domain name server,具體地說,就是dns/bind(
/etc/resolv.conf相關),乙個是本地的/ets/hosts。這2個的先後順序可以配置,在
/etc/host.conf裡有一句
order hosts
,bind # hosts,bind or nis
這樣的話,會先查詢/etc/hosts,找不到才執行bind的dns查詢。
/etc/host.conf預設是先執行
dns查詢,而不是/etc/hosts。
但/etc/nsswitch.conf可以覆蓋它:
hosts: files dns
就表示優先查詢/etc/hosts。如果/etc/nsswitch.conf沒有註明,或者沒有這個檔案,才去找/etc/host.conf的設定。
涉及的檔案
示例說明
/etc/hosts
127.0.0.1 localhost
192.168.1.10 foo.mydomain.org foo
192.168.1.13 bar.mydomain.org bar
ip_address canonical_hostname [aliases...]
#注釋
/etc/resolv.conf
domain foo.com
search foo.com
nameserver 210.34.0.14
nameserver 210.34.0.2
(nameserver按順序來,最多支援3個。如果不指定,就認為nameserver在本地)
執行查詢的物件,必=必須有domain,形式必須是***.domain
domain 宣告主機的網域名稱。很多程式用到它,如郵件系統;當為沒有網域名稱的主機進行dns查詢時,也要用到。如果沒有網域名稱,主機名將被使用,刪除所有在第乙個點( .)前面的內容。
如果你ping abc,那麼他會搜尋abc.foo.com
search 它的多個引數指明網域名稱查詢順序。當要查詢沒有網域名稱的主機,主機將在由search宣告的域中分別查詢。domain和search不能共存;如果同時存在,後面出現的將會被使用。
如果你ping abc,他會先找abc,找不到再找abc.foo.com
sortlist 允許將得到網域名稱結果進行特定的排序。它的引數為網路/掩碼對,允許任意的排列順序
/etc/nsswitch.conf
hosts: files dns
/etc/host.conf
multi on/off 表示查詢/etc/hosts時,是否支援多ip位址,只對/etc/hosts有效
nospoof on 對ip位址欺騙攻擊加強防範
alert on 檢測到ip位址欺騙時記日誌
order bind hosts
/etc/resolv.conf中domain和search的規則:
查詢順序
domain a.com
search a.com b.com
未設定domian和search,
hostname形式為***
未設定domian和search,
hostname形式為***.yyy
ping abc
abc.a.com
abc.a.com -> abc.b.com
abc
abc.yyy
ping abc.xyz
abc.xyz -> abc.xyz.a.com
abc.xyz -> abc.xyz.a.com -> abc.xyz.b.com
abc.xyz
abc.xyz -> abc.xyz.yyy
ping abc.xyz.
ping abc.
全都不會在結尾新增額外的東西
即: 1.形式為abc.xyz,則直接解析,成功則結束,如果失敗則到2;如果形式為abc,也到2
2.嘗試在末尾新增domain。
if /etc/resolv.conf有domain或search欄位
則新增上去再解析。(其中search可以指定多個)。
else
if `hostname` 形式為***.yyy
新增.yyy,再解析
else
沒辦法,直接解析
endend
網域名稱解析與IP位址的關係
1 網域名稱解析dns 2 網域名稱伺服器上執行著乙個資料庫系統 3 資料庫中儲存著網域名稱位址與ip位址。4 使用者主機需要把網域名稱位址轉化為ip位址時向網域名稱伺服器提出查詢請求 5 網域名稱伺服器根據使用者請求進行查詢並把結果返回給使用者主機。2 ip位址與網域名稱的對應關係 1 一對一 i...
訪問ip 改為網域名稱 Asio DNS網域名稱解析
網際網路應用是通過ip標識通訊雙方的主機位址的。常用的ipv4是32位的整數,而這個數字不好記憶,所以引入了更加適合人類閱讀和記憶的點分十進位制表示法,如環回位址對應 127.0.0.1 即使這樣,本質上還是數字,仍然不利於溝通和記憶,試想以下,每次訪問 都要輸入這樣的位址,我們要記憶一大推這樣的無...
網域名稱解析過程 網域名稱解析過程
0x01相關資訊 閘道器 閘道器實質上是乙個網路通向其他網路的ip位址。要實現兩個網路之間的通訊,則必須通過閘道器。如果網路a中的主機發現資料報的目的主機不在本地網路中,就把資料報 給它自己的閘道器,自己的閘道器通過尋找路由指向,再由閘道器 給網路b的閘道器,網路b的閘道器再 給網路b的某個主機。i...