名稱解析和域名系統(tǒng)DNS
時(shí)間:2023-02-06 07:32:01 | 來(lái)源:建站知識(shí)
時(shí)間:2023-02-06 07:32:01 來(lái)源:建站知識(shí)
- 為了使用如TCP和IP等協(xié)議, 主機(jī)名稱通過(guò)稱為名稱解析(name reso山ion)的過(guò)程轉(zhuǎn)換成IP地址。在互聯(lián)網(wǎng)中存在不同形式的名稱解析, 但是最普遍、最重要的一種是采用分布式數(shù)據(jù)庫(kù)系統(tǒng), 即人們熟知的域名系統(tǒng)(DNS) ,DNS作為互聯(lián)網(wǎng)上的應(yīng)用程序運(yùn)行, 它使用IPv4或IPv6。
- 訪問DNS是通過(guò)一個(gè)稱為地址解析器(resoIver)的應(yīng)用程序庫(kù)來(lái)完成的。通常, 在請(qǐng)求TCP打開一個(gè)連接或使用UDP發(fā)送一個(gè)單播數(shù)據(jù)報(bào)之前, 應(yīng)用程序必須將主機(jī)名稱轉(zhuǎn)換為IPv4與/或IPv6地址。
DNS名稱空間
- DNS中使用的所有的名稱集合構(gòu)成了DNS名稱空間(name space)。這個(gè)名稱空間都是劃分為層次且大小寫不敏感的。當(dāng)前的DNS名稱空間是一棵域名樹, 位于頂部的樹根未命名。樹的最高層是所謂的頂級(jí)域名(TLD), 包括:通用項(xiàng)級(jí)域名(gTLD)、國(guó)家代碼項(xiàng)級(jí)域名(ccTLD)、國(guó)際化國(guó)家代碼項(xiàng)級(jí)域名(IDN ccTLD), 以及由于歷史原因而存在的一類特殊的稱為ARPA的基礎(chǔ)設(shè)施項(xiàng)級(jí)域名( infrastructure TLD)。
DNS命名語(yǔ)法
- 名稱示例被稱為完全限定域名(FQDN)。它們有時(shí)更正式地書寫為帶有后隨點(diǎn)的形式(如mit.edu.)。后隨點(diǎn)表示該名稱是完整的, 當(dāng)進(jìn)行名稱解析時(shí), 沒有額外的信息添加到該名稱。與FQDN形成對(duì)照, 與系統(tǒng)配置中的默認(rèn)域名或域名搜索列表集結(jié)合使用的非限定域名( unqualified domain name), 會(huì)有一個(gè)或多個(gè)字符串添加到尾部。
- 一個(gè)域名包含一系列的由點(diǎn)分開的標(biāo)簽(label)。名稱代表名稱層級(jí)中的一個(gè)位置, 句點(diǎn)是層次結(jié)構(gòu)分隔符, 并且按名稱中自右至左的順序沿樹下降。
名稱服務(wù)器和區(qū)域
- 負(fù)責(zé)管理部分有效DNS名稱空間(一個(gè)或多個(gè)域)的個(gè)人應(yīng)該至少安置兩臺(tái)名稱服務(wù)器(name server)或是DNS服務(wù)器(DNS server)來(lái)存儲(chǔ)名稱空間的相關(guān)信息。
- 管理授權(quán)的單位稱為區(qū)域(zone),一臺(tái)DNS服務(wù)器可以包含多個(gè)區(qū)域的信息。
- 在服務(wù)器之間, 一臺(tái)主服務(wù)器( primary server)在磁盤文件中包含區(qū)域數(shù)據(jù)庫(kù), 一個(gè)或多個(gè)輔助服務(wù)器( secondary server)使用稱為區(qū)域傳輸( zone transfer)的進(jìn)程, 從主服務(wù)器完整地獲取該數(shù)據(jù)庫(kù)的副本。
緩存
- 大部分的名稱服務(wù)器(除了一些根服務(wù)器和TLD服務(wù)器)也緩存(cache)它們學(xué)習(xí)的區(qū)域信息, 直到稱為生存時(shí)間(TTL)的時(shí)間限制為止。
DNS協(xié)議
- DNS協(xié)議由兩個(gè)主要部分組成:用于執(zhí)行對(duì)DNS特定名稱查詢的查詢/響應(yīng)協(xié)議和名稱服務(wù)器用于交換數(shù)據(jù)庫(kù)記錄的協(xié)議(區(qū)域傳輸)。
- A.HOME查詢http://EXAMPLE.COM 的典型遞歸DNS查詢過(guò)程涉及多達(dá)10條消息。本地遞歸服務(wù)器(此處為GW.HOME)使用由ISP提供的DNS服務(wù)器。該服務(wù)器依次使用互聯(lián)網(wǎng)根域名服務(wù)器和gTLD服務(wù)器(用于COM和NET TLD)來(lái)查找http://EXAMPLE.COM域名的名稱服務(wù)器。該名稱服務(wù)器(此處為http://A.IANA-SERVERS.NET)提供主機(jī)http://EXAMPLE.COM對(duì)應(yīng)的IP地址。所有的遞歸服務(wù)器緩存學(xué)習(xí)到的任何信息供以后使用。
DNS消息格式
- DNS消息格式有一個(gè)固定的12字節(jié)頭部。整個(gè)消息通常在UDP/IPv4數(shù)據(jù)報(bào)中運(yùn)載, 并且限于512字節(jié)。
- 除了第一個(gè)區(qū)段, 其他都包含一個(gè)或多個(gè)資源記錄(Resource Record, RR)。
- 事務(wù)ID (TransactionID)字段由客戶端設(shè)置, 由服務(wù)器返回??蛻舳耸褂盟鼇?lái)匹配響應(yīng)和查詢。TC是1位的字段, 表示“可截?cái)嗟?/b>(truncated)” 。使用UDP時(shí), 它表示當(dāng)應(yīng)答的總長(zhǎng)度超過(guò)512字節(jié)時(shí), 只返回前512個(gè)字節(jié),RD是1位字段, 表示“期望遞歸”(recursiondesired)” 。該字段可以在一個(gè)查詢中設(shè)置, 并在響應(yīng)中返回。它告訴服務(wù)器執(zhí)行遞歸查詢。如果該字段沒有設(shè)置, 且被請(qǐng)求的名稱服務(wù)器沒有授權(quán)回答, 則被請(qǐng)求的名稱服務(wù)器就返回一個(gè)可以聯(lián)系獲取回答的其他名稱服務(wù)器的列表。此時(shí), 全部的查詢可能通過(guò)聯(lián)系其他名稱服務(wù)器來(lái)繼續(xù)。這被稱為迭代查詢(iterative query), RA是1位字段, 表示“遞歸可用(recursion available)” 。如果服務(wù)器支持遞歸查詢, 則在響應(yīng)中設(shè)置該字段。根服務(wù)器一般不支持遞歸, 因此強(qiáng)制客戶端執(zhí)行迭代查詢來(lái)完成名稱解析。
名稱和標(biāo)簽
- DNS消息末尾的可變長(zhǎng)度區(qū)段包含問題、回答、授權(quán)信息(包含某些數(shù)據(jù)授權(quán)信息的名稱服務(wù)器的名稱)和可能減少必要查詢次數(shù)的額外信息。每一個(gè)問題和RR以它所涉及的名稱(稱為域名或是擁有名稱)開始。每個(gè)名稱由一系列的標(biāo)簽(1abel)組成。標(biāo)簽類型有兩種: 數(shù)據(jù)標(biāo)簽( data label)和壓縮標(biāo)簽( compression label)。數(shù)據(jù)標(biāo)簽包含構(gòu)成一個(gè)標(biāo)簽的字符; 壓縮標(biāo)簽充當(dāng)指向其他標(biāo)簽的指針。當(dāng)相同字符串的多個(gè)副本在多個(gè)標(biāo)簽中出現(xiàn)時(shí), 壓縮標(biāo)簽有助于節(jié)省DNS信息的空間。
數(shù)據(jù)標(biāo)簽
- 每個(gè)數(shù)據(jù)標(biāo)簽以1字節(jié)的計(jì)數(shù)開始, 該計(jì)數(shù)指定了緊隨其后的字節(jié)數(shù)目。名稱以值為0的字節(jié)結(jié)束, 0也是一個(gè)標(biāo)簽, 其長(zhǎng)度值為0 (根標(biāo)簽)。例如:
- 將名稱 http://www.pearson.com編碼, 共有4個(gè)標(biāo)簽。名稱的最后通過(guò)未命名根的長(zhǎng)度值為0的標(biāo)簽標(biāo)示。
壓縮標(biāo)簽
- 在許多情況下, DNS響應(yīng)消息在回答、授權(quán)以及與相同域名相關(guān)的額外信息區(qū)段中攜帶信息。如果使用了數(shù)據(jù)標(biāo)簽, 當(dāng)涉及相同的名稱時(shí), DNS消息中的相同字符就會(huì)重復(fù)。為了避免這種冗余和節(jié)省空間, 使用了一種壓縮機(jī)制。
- http://usc.edu和http://ucla.edu 共享edu標(biāo)簽,標(biāo)簽edu可以復(fù)用http://usc.edu的編碼。這可以通過(guò)將標(biāo)簽類型(共8位)字節(jié)的2個(gè)高位置1以及在剩余的14位中編碼edu的偏移量來(lái)完成。因?yàn)閑du第一次出現(xiàn)在偏移量為4的位置, 我們只需要設(shè)置第一個(gè)字節(jié)為192 (11000000), 隨后字節(jié)為4。
UDP或TCP
- 對(duì)于TCP和UDP來(lái)說(shuō), DNS的知名端口號(hào)都是53。
- DNS消息通常封裝在UDP/IPv4數(shù)據(jù)報(bào)中, 并且其長(zhǎng)度限制為512字節(jié), 除非不使用TCP和/或DNS擴(kuò)展格式(EDNSO)。每一個(gè)區(qū)段(除了問題區(qū)段)包含一組資源記錄。
- 當(dāng)解析器發(fā)出一個(gè)查詢消息, 而返回的響應(yīng)消息中TC位字段被設(shè)置( “被截?cái)唷?時(shí), 真實(shí)的響應(yīng)消息的長(zhǎng)度超過(guò)512字節(jié), 因此服務(wù)器只返回前面的512個(gè)字節(jié)。該解析器可能會(huì)使用TCP再次發(fā)出請(qǐng)求消息。這樣就允許返回超名稱解析和域名系統(tǒng)超過(guò)512字節(jié)的消息, 因?yàn)門CP將更大的消息分割成多個(gè)報(bào)文段。
問題(查詢)和區(qū)域區(qū)段格式
- 查詢名稱(QueryName)是要被查詢的域名, 使用我們之前描述的標(biāo)簽的編碼。每個(gè)問題都有查詢類型(QueryType)和查詢類(QueryClass)。類的值是1、 254或255, 分別表示互聯(lián)網(wǎng)類、沒有類,所有類。查詢類型字段包含一個(gè)值, 該值使用表中的值指明正在執(zhí)行的查詢類型。最常見的查詢類型是A (如果啟用IPv6的DNS解析,則是AAAA), 這意味著需要一個(gè)與查詢名稱對(duì)應(yīng)的IP地址。
回答、授權(quán)和額外信息區(qū)段格式
- 名稱(Name)字段(有時(shí)也被稱為“自已的名稱”、“擁有者”或“記錄擁有者名稱”)是隨后的資源數(shù)據(jù)對(duì)應(yīng)的域名。對(duì)于互聯(lián)網(wǎng)數(shù)據(jù)來(lái)說(shuō), 類(Class)字段是1, TTL字段是RR可以被緩存的秒數(shù)。資源數(shù)據(jù)長(zhǎng)度(RDLENGTH)字段指定了資源數(shù)據(jù)(RDATA)字段中包含的字節(jié)數(shù)。
資源記錄類型
- 資源記錄用于多種用途, 但可以分為三大類: 數(shù)據(jù)類型、查詢類型和元類型。數(shù)據(jù)類型用于傳達(dá)在DNS中存儲(chǔ)的信息, 如IP地址和授權(quán)名稱服務(wù)器的名稱。查詢類型使用和數(shù)據(jù)名稱解析和域名系統(tǒng)類型相同的值, 增加了幾個(gè)額外的值(如, AXFR、 IXFR和*)。它們可以在我們前面描述的問題區(qū)段中使用。元類型指定了與一個(gè)特定單一DNS消息相關(guān)聯(lián)的臨時(shí)數(shù)據(jù)。
NS記錄用于將DNS名稱空間和
執(zhí)行解析的服務(wù)器聯(lián)系起來(lái), 它們包含了一個(gè)區(qū)域授權(quán)名稱服務(wù)器的名稱。
A和AAAA記錄分別用于提供給定
特定名稱的IPv4或IPv6地址。 CNAME記錄提供了一種獲得另一個(gè)
域名的別名的方法。
SRV和
NAPTR記錄幫助應(yīng)用程序發(fā)現(xiàn)支持特定服務(wù)的
服務(wù)器的位置, 并使用替代的命名方案(不是DNS)來(lái)訪問這些服務(wù)。
地址(A, AAAA)和名稱服務(wù)器記錄
- DNS中最重要的記錄是地址(A, AAAA)和名稱服務(wù)器(NS)記錄。A記錄包含32位的IPv4地址, AAAA (稱為“四A”)記錄包含IPv6地址。NS記錄包含授權(quán)DNS服務(wù)器的名稱, 該服務(wù)器包含一個(gè)特定區(qū)域的信息。因?yàn)閱为?dú)的DNS服務(wù)器的名稱不足以執(zhí)行一個(gè)查詢, 所以這些服務(wù)器的IP地址通常也作為DNS響應(yīng)中額外信息區(qū)段中所謂的膠紀(jì)錄(glue record)。
- 工具dig, 我們可以看到A、 AAAA和NS記錄的結(jié)構(gòu)。
- Windows和Linux/基于UNIX的系統(tǒng)中都可以使用的nsIookup程序提供了一種基本的方式來(lái)為特定數(shù)據(jù)查詢DNS。
規(guī)范名稱(CNAME)記錄
- CNAME記錄代表規(guī)范名稱( canonical name)的記錄, 并用于將單一域名的別名引入到DNS命名系統(tǒng)中?,F(xiàn)在普遍的做法是使用CNAME記錄來(lái)建立公共服務(wù)的別名。在一個(gè)CNAME RR中, RDATA區(qū)段包含與該域名相關(guān)的“規(guī)范名稱” (別名)。
逆向DNS查詢: PTR (指針)記錄
- PTR RR類型用于響應(yīng)逆向DNS查詢, 當(dāng)將一個(gè)IP地址轉(zhuǎn)換為其名稱時(shí), 它通常是很必要的。它以一種特殊的方式使用了特殊的in-addr.arpa ( IPv6中為ip6.axpa)域。
- 通過(guò)逆轉(zhuǎn)點(diǎn)分十進(jìn)制IPv4地址, 將其看作是一個(gè)DNS名稱, 我們可以使用DNS來(lái)執(zhí)行從IP地址到名稱的映射。因此名稱81.131.229.169實(shí)際上是IPv4地址169.229.131.81的逆轉(zhuǎn)。對(duì)于IPv6來(lái)說(shuō), 方案是相似的, 但是任何不顯示的0被展開, 每個(gè)十六進(jìn)制數(shù)字變成一個(gè)字符。例如, 2001:503:a83e::2:30的逆轉(zhuǎn)是:0.3.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.3.8.a.3.0.5.1.0.0.2。
- 特殊的 .in-addr.arpa域(適用于IPv4)和 .ip6.arpa (適用于IPv6)用于將支持這些類型名稱和逆向DNS查找的PTR ( “指針” ) RR連接起來(lái):81.131.229.169.in-addr.arpa.
權(quán)威(SOA)記錄
- 在DNS中, 每個(gè)區(qū)域有一個(gè)授權(quán)記錄, 使用稱為授權(quán)啟動(dòng)(SOA)的RR類型。這些記錄提供部分DNS名稱空間和服務(wù)器之間的授權(quán)聯(lián)系, 該服務(wù)器允許對(duì)地址和其他信息進(jìn)行查詢以提供區(qū)域信息。SOA RR用于識(shí)別主機(jī)的名稱, 提供官方永久性數(shù)據(jù)庫(kù)、負(fù)責(zé)方的e-mail地址( “.”用來(lái)代替@)、區(qū)域更新參數(shù)和默認(rèn)TTL。
- 區(qū)域更新參數(shù)包括一個(gè)序列號(hào)、更新時(shí)間、重試時(shí)間和終止時(shí)間。每當(dāng)要改變區(qū)域內(nèi)容時(shí), 序列號(hào)Serial通常由網(wǎng)絡(luò)管理員增加(至少1 )。輔助服務(wù)器使用它來(lái)確定是否應(yīng)該啟動(dòng)區(qū)域傳輸(當(dāng)它們沒有序列號(hào)最大的區(qū)域內(nèi)容的副本時(shí))。更新時(shí)間refresh告訴輔助服務(wù)器, 在從主服務(wù)器檢查SOA記錄之前需要等待的時(shí)間以及它的版本號(hào), 以確定是否需要區(qū)域傳輸。重試時(shí)間和終止時(shí)間是在區(qū)域傳輸失敗的情況下使用的。重試時(shí)間retry值給出輔助服務(wù)器重試前需要等待的時(shí)間(秒)。終止時(shí)間expire是輔助服務(wù)器在放棄之前保持重試區(qū)域傳輸?shù)纳舷?秒)。
郵件交換(MX)記錄
- MX記錄提供了郵件交換器(mail exchanger)的名稱, 郵件交換器為在簡(jiǎn)單郵件傳輸協(xié)議(SMTP) 中愿意代表與域名相關(guān)的用戶接收傳入電子郵件的主機(jī)。
- 即使真實(shí)目的地不可用, 也允許發(fā)送方主機(jī)將電子郵件交付給中介( “中繼服務(wù)器”)。現(xiàn)在MX記錄仍然在使用, 郵件代理更愿意將電子郵件交付給MC記錄中列出的與特定域名相關(guān)的主機(jī)。MX記錄包括優(yōu)先級(jí)(preference)值, 因此對(duì)于一個(gè)特定的域名, 多個(gè)MX記錄可以同時(shí)出現(xiàn)。優(yōu)先級(jí)值允許發(fā)送代理按優(yōu)先順序(較小的是更可取的)排序主機(jī), 以決定哪個(gè)主機(jī)用作電子郵件的目的地。例如, 我們可以再次使用host命令查詢DNS中與域名http://cs.ucla.edu相關(guān)的MX記錄:host -t MX http://cs.ucla.edu http://ns3.dns.ucla.edu
打擊垃坡郵件: 發(fā)送方策略框架(SPF)和文本(TXT)記錄
選項(xiàng)(OPT)偽記錄
- 同EDNSO也定義了特殊的OPT偽RR。就某種意義而言, 它是“假的”, 它僅適用于單一DNS消息的內(nèi)容, 而且不是常見的DNS RR數(shù)據(jù)。因此, OPT RR不被緩存、轉(zhuǎn)發(fā)或持續(xù)存儲(chǔ), 它們可能在DNS消息中只出現(xiàn)一次(或不出現(xiàn))。
動(dòng)態(tài)更新(DNS UPDATE)
- 動(dòng)態(tài)更新一個(gè)區(qū)域是可能的, 這被稱為DNS UPDATE, 它支持指定先決條件(prerequisite)和更新請(qǐng)求。先決條件在服務(wù)器中評(píng)估; 如果它們不為真, 更新不執(zhí)行, 并返回一個(gè)錯(cuò)誤消息。
- 通過(guò)向一個(gè)區(qū)域的授權(quán)DNS服務(wù)器發(fā)送動(dòng)態(tài)更新的DNS消息, DNS UPDATE就可以完成。此類消息的結(jié)構(gòu)和傳統(tǒng)的DNS信息是一樣的, 只不過(guò)頭部字段和區(qū)段有不同的名稱。區(qū)段說(shuō)明了正在更新的區(qū)域、需要不同的RR存在(或不存在)以便讓更新發(fā)揮作用的先決條件, 以及更新信息。
- 頭部字段ZOCOUNT、 PRCOUNT、 UPCOUNT和ADCOUNT包含以下計(jì)數(shù):要被更新的區(qū)域(值將為1 ), 要考慮的先決條件, 要做出的更新和額外的信息記錄。
- 更新消息的區(qū)域區(qū)段說(shuō)明了該區(qū)域的名稱、類型和類。類型值是6, 表明SOA記錄的存在, 用于識(shí)別該區(qū)域。類值是1 (互聯(lián)網(wǎng)), 表明我們關(guān)心的任意更新消息。正被更新的所有記錄必須在相同的區(qū)域中。
- 更新消息的先決條件區(qū)段包含一個(gè)或多個(gè)先決條件, 它使用我們先前RR的格式來(lái)描述。
- 先決條件區(qū)段的后面是Update區(qū)段, 它包含要從區(qū)域區(qū)段中指定的區(qū)域中添加或刪除的RR
- 更新區(qū)段包含被處理的RR的集合, 假如沒有遇到由于先決條件或服務(wù)器問題造成的錯(cuò)誤。每個(gè)RR編碼增加或刪除操作。修改可以通過(guò)先刪除隨后添加來(lái)執(zhí)行。
區(qū)域傳輸和DNS通知
- 區(qū)域傳輸用于從一個(gè)服務(wù)器到另一個(gè)服務(wù)器復(fù)制一個(gè)區(qū)域的一組RR (通常是從主服務(wù)器向從服務(wù)器)。這樣做的目的是保持多臺(tái)服務(wù)器的區(qū)域內(nèi)容同步。
- 區(qū)域傳輸在輪詢(polling)后開啟, 在輪詢中, 從服務(wù)器周期性地聯(lián)系主服務(wù)器, 通過(guò)比較區(qū)域的版本號(hào)以查看區(qū)域傳輸是否為必要的。如果需要開啟區(qū)域傳輸, 當(dāng)區(qū)域內(nèi)容改變時(shí)使用異步更新機(jī)制。這被稱為DNS NOTIFY。 一旦啟動(dòng)區(qū)域傳輸, 或是傳輸整個(gè)區(qū)域(使用DNS AXFR 消息) , 或是選擇使用增量區(qū)域傳輸( incremental zone transfer) (使用DNS IXFR的消息) 。一般方案根據(jù)圖所示進(jìn)行:
完整區(qū)域傳輸(AXFR消息)
- 完整區(qū)域傳輸由區(qū)域的SOA記錄中的區(qū)域傳輸參數(shù)控制: 主名稱服務(wù)器, 序列號(hào), 刷新間隔, 重試間隔和到期間隔。當(dāng)配置后, 從服務(wù)器嘗試聯(lián)系主服務(wù)器以查看區(qū)域傳輸是否是必要的。根據(jù)刷新間隔, 周期性地嘗試聯(lián)系。
- 一個(gè)全區(qū)域傳送(AXFR) DNS信息(在問題區(qū)段包含AXFR類型的標(biāo)準(zhǔn)查詢)使用TCP請(qǐng)求一個(gè)完整的區(qū)域傳輸。
增量區(qū)域傳輸(IXFR消息)
- 為了執(zhí)行增量區(qū)域傳輸, 客戶端(例如,從服務(wù)器)必須提供它在該區(qū)域的當(dāng)前序列號(hào)。在下面的例子中, 我們可以通過(guò)提供序列號(hào)和dig程序來(lái)模擬請(qǐng)求服務(wù)器:
Linux% dig +short @10.0.0.1 -t ixfr=1997022700 home. - 命令行中指出, 命令的輸出應(yīng)該是簡(jiǎn)短的, 10.0.0.1是要使用的DNS服務(wù)器的地址, 以序列號(hào)1997022700開始的增量區(qū)域傳輸應(yīng)該被執(zhí)行。
DNS NOTIFY
- 輪詢通常用于確定區(qū)域傳輸?shù)谋匾? 也就是說(shuō), 從服務(wù)器會(huì)定期(刷新間隔)檢查主服務(wù)器, 查看區(qū)域是否已經(jīng)更新(通過(guò)不同的序列號(hào)說(shuō)明), 在哪種情況下區(qū)域傳輸將啟動(dòng)。這個(gè)過(guò)程有點(diǎn)浪費(fèi), 因?yàn)樵S多無(wú)用的輪詢?cè)趨^(qū)域更新前可能發(fā)生。為了改善這種情況, DNS設(shè)計(jì)了DNS NOTIFY機(jī)制。
- DNS NOTIFY允許修改區(qū)域內(nèi)容的服務(wù)器通知從服務(wù)器更新已經(jīng)發(fā)生, 區(qū)域傳輸應(yīng)該啟動(dòng)。更具體地說(shuō), 如果啟用, 當(dāng)區(qū)域SOA RR改變(例如,如果序列號(hào)增加)時(shí), 通知消息被發(fā)送到一組感興趣的服務(wù)器。這使得區(qū)域傳輸在需要時(shí)開啟。
排序列表、循環(huán)和分離DNS
- 圖所示。有一個(gè)私有網(wǎng)絡(luò)和一個(gè)包括DNS服務(wù)器的公共網(wǎng)絡(luò)。此外, 在DMZ上有一對(duì)主機(jī)(A和B), 在內(nèi)部網(wǎng)絡(luò)上有一個(gè)(C), 在互聯(lián)網(wǎng)上有一個(gè)(R)。多宿主主機(jī)(M)跨越DMZ和內(nèi)部網(wǎng)絡(luò)。因此, M有來(lái)源于兩個(gè)不同網(wǎng)絡(luò)前綴的IP地址。
- 一臺(tái)希望聯(lián)系M的主機(jī)執(zhí)行DNS查找, 返回兩個(gè)地址, 一個(gè)與內(nèi)部網(wǎng)絡(luò)相關(guān), 一個(gè)與DMZ相關(guān)。當(dāng)然, 如果A、B和R通過(guò)DMZ到達(dá)M, C通過(guò)內(nèi)部網(wǎng)絡(luò)到達(dá)M, 這將更高效。
- 一種普遍會(huì)發(fā)生的情況是, DNS服務(wù)器基于請(qǐng)求的源IP地址排序它返回的地址。 (也可以使用目的IP地址, 尤其是如果M在相同的網(wǎng)絡(luò)接口上使用來(lái)自不同子網(wǎng)的多個(gè)IP地址。)如果請(qǐng)求系統(tǒng)使用和返回地址記錄的源具有相同的網(wǎng)絡(luò)前綴的源IP地址, DNS服務(wù)器在返回的消息中早一些放置這樣的匹配記錄的集合。這種行為鼓勵(lì)客戶端找到它正嘗試聯(lián)系的特定的服務(wù)器的“最近的” IP地址, 因?yàn)榇蟛糠趾?jiǎn)單的應(yīng)用程序嘗試聯(lián)系返回地址記錄中發(fā)現(xiàn)的第一個(gè)地址。這種精確的行為可以通過(guò)使用所謂的sortlist或是rrset-order指令來(lái)控制(解析器和服務(wù)器的配置文件中使用的選項(xiàng))。
- DNS可以配置返回為依賴于請(qǐng)求IP地址的不同的地址,當(dāng)多臺(tái)服務(wù)器提供一種服務(wù)時(shí), 傳入的連接就會(huì)是負(fù)載均衡的。
從IPv4向IPv6轉(zhuǎn)換DNS
- DNS64將A記錄轉(zhuǎn)換為AAAA記錄,并和IPv4/IPv6轉(zhuǎn)換器一起工作,以允許只有IPv6的客戶端訪問IPv4網(wǎng)絡(luò)中的服務(wù)。
- 如圖所示,DNS64和IPv4/IPv6轉(zhuǎn)換器結(jié)合使用,每個(gè)設(shè)備配置一個(gè)或多個(gè)通用IPv6前綴,這些前綴是在創(chuàng)建嵌入式IPv4地址中使用的,每個(gè)前綴可能是一個(gè)網(wǎng)絡(luò)特定的前綴(例如:由運(yùn)營(yíng)商擁有)或是知名前綴(64:ff9b::/96) 。DNS64設(shè)備作為一個(gè)緩存DNS服務(wù)器。只有IPv6客廣端使用它作為主DNS服務(wù)器,并可以請(qǐng)求域名的AAAA記錄。DNS64將這樣的請(qǐng)求轉(zhuǎn)換為IPv4端的A和AAAA記錄的請(qǐng)求,如果沒有返回AAAA記錄,基于配置的前綴和它檢索的每個(gè)A正錄的內(nèi)容,DNS64通過(guò)形成嵌入式IPv4地址來(lái)提供合成( synthetic) AAAA記錄一DNS64也響應(yīng)它用于合咸AAAA RR的任意IPv6地址的PTR查詢。
LLMNR和mDNS
- 在DNS服務(wù)器不可用的情況下,可以使用一個(gè)特殊的DNS本地版本,稱為本地鍵路組播名稱解析( Link-Local Multicast Name Resolution. LLMNR) ,在本地環(huán)境中使用以幫助發(fā)現(xiàn)局域網(wǎng)上的設(shè)備,如打印機(jī)和文件服務(wù)器。對(duì)于IPv4組播地址224.0.0.252和IPv6地址ff02::1:3,它使用UDP端口5355。如果來(lái)自它們響應(yīng)的任何單播IP地址,服務(wù)器也可以使用TCP端口5355。
- 組播DNS (multicast DNS. mDNS) 是另一種形式的本地類DNS功能。DNS使用通過(guò)本地組播地址攜帶的DNS消息,使用UDP端口5353,規(guī)定特殊的TLD.local用特殊的語(yǔ)義處理。.localTLD在本地鏈路范圍,在該TLD中的域名的任何DNS查詢被發(fā)送到mDNS IPv4地此224.0.0.251,或IPv6地址ff02::fb。
資源記錄用來(lái)保存大部分的DNS信息, 這樣的類型有許多: 地址, 郵件交換站, 名稱的指針等。在互聯(lián)網(wǎng)上, 大多數(shù)DNS消息使用UDP/IPv4傳輸, 并且被限制為512個(gè)字節(jié)的長(zhǎng)度。