wks是已知服務(wù)的dns記錄,屬于RR資源的一種,相對(duì)于A記錄和AAAA,并不常見(jiàn)
RFC1010是dns中關(guān)于wks響應(yīng)數(shù)據(jù)的文檔。這個(gè)文檔主要有Protocol Numbers(協(xié)議號(hào))和Port Assignments(端口分配表)組成。
在dns的客戶(hù)端查詢(xún)類(lèi)型是wks的時(shí)候,在dns服務(wù)器的answer段,其中的protocol就是RFC1010中的Assigned Internet Protocol Numbers對(duì)應(yīng)的數(shù)值;bits段就是端口號(hào)。
關(guān)于端口,這里指的是提供網(wǎng)絡(luò)服務(wù)的端口,這個(gè)網(wǎng)絡(luò)服務(wù)的網(wǎng)絡(luò)協(xié)議就是Protocol numbers列表中的協(xié)議。
在RFC1035中,關(guān)于wks的RDATA格式是這樣規(guī)定的:
WKS RDATA format
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ADDRESS
| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| PROTOCOL |
| +--+--+--+--+--+--+--+--+ |
| |
/ <BIT MAP> /
/ /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
where:
ADDRESS An 32 bit Internet address
PROTOCOL An 8 bit IP protocol number
<BIT MAP> A variable length bit map. The bit map must be a multiple of 8 bits long.
The WKS record is used to describe the well known services supported by a particular protocol on a particular internet address. The PROTOCOL field specifies an IP protocol number, and the bit map has one bit per port of the specified protocol. The first bit corresponds to port 0, the second to port 1, etc. If the bit map does not include a bit for a protocol of interest, that bit is assumed zero. The appropriate values and mnemonics for ports and protocols are specified in [RFC-1010].
For example, if PROTOCOL=TCP (6), the 26th bit corresponds to TCP port 25 (SMTP). If this bit is set, a SMTP server should be listening on TCP port 25; if zero, SMTP service is not supported on the specified address.
The purpose of WKS RRs is to provide availability information for servers for TCP and UDP. If a server supports both TCP and UDP, or has multiple Internet addresses, then multiple WKS RRs are used.
WKS RRs cause no additional section processing.
In master files, both ports and protocols are expressed using mnemonics or decimal numbers.
BITMAP是多個(gè)8 bits;它的數(shù)值來(lái)源就是RFC1010中的端口分配表,例如st對(duì)應(yīng)的端口是5,則表名,第五位是1,udp是11,表示第十一位是1,以此類(lèi)推。端口分配表從0-255,也就是說(shuō)最多有256位,32個(gè)8字節(jié)的char數(shù)組,第五位是1,則思0x01;udp則是第十一位是1,即0x00 0x20.