A DNS Message Format Contains 5 Sections
A DNS Message Format Contains 5 Sections
+---------------------+ | Header | +---------------------+ | Question | +---------------------+ | Answer | +---------------------+ | Authority | +---------------------+ | Additional | +---------------------+
the question for the name server RRs answering the question RRs pointing toward an authority RRs holding additional information
1. Header - Includes: 1. Bits 0-15 are the query identifier 2. Bit 16 - QR bit, The message is a query if the value is 0. The message is a response if the value is 1/ 3. Bits 17-20 - Opcode values - Identifies the query type. The message is a standard query if 0, The message is an inverse query if 1, The message is a server status request if 2. 4. Bit 21 - AA - Authoritative answer - If set, it indicates the responding name server is an aurhority for the domain name in question. 5. Bit 22 - TC - Indicates the message was truncated. 6. Bit 23 - RD - Recursion Desired - Set in a query and indicates the query should be persued recursively. 7. Bit 24 - RA - Recursion Available - A bit that is set or cleared in a response indicating that recursion is available. 8. Bit 25-27 - Z - Future use, required to always be 0 9. Bit 28-31 - RCODE - Response code - No error if 0, Format error if 1, Server failure if 2 10. Word 3 - QDCOUNT - Indicates the number of DNS querise (entries in the question section) 11. Word 4 - ANCOUNT - Indicates the number of answers (Resource records in the answer section) 12. Word 5 - NSCOUNT - The number of name server records in the authority records section. 13. Word 6 - ARCOUNT - The number of resource records in the additional records section. 2. Question - Includes: 1. QNAME - Domain name strings with a length byte followed by a string of the designated length. 2. QTYPE - Two bytes indicating the query type 3. QCLASS - Two bytes indicating the class field such as IN for internet. 3. Answer - Resource Records (RRs) answering the question 1. NAME - domain name 2. TYPE - Two bytes with resource record type.
3. CLASS - Two bytes indicating the class of the data 4. TTL - A 32 bit unsigned integer indicating the time interval in seconds that the may be stored on the DNS server. 5. RDLENGTH - 16 bits indicating the length of the RDATA field in bytes. 6. RDATA - This may be the IP address for a domain name but the information varies depending on the type and class of the resource record. 4. Authority - Resource Records (RRs) pointing to an authority - The format is the same as the Answer section. 5. Additional - Resource Records (RRs) holding additional information - The format is the same as the Answer section.
Figure 5: Control path operations for intranet deployment Figure 5 shows how this scheme works. Under this scheme, reusable-IP networks will use a common domain name suffix, say aves.cmu.edu, for easy identification. In our example, the reusable-IP network has a domain name home1.aves.cmu.edu. are upgraded AVESaware local DNS servers. The control path operations are as follows. Initiator 's DNS query for is directly sent to one of the AVES-aware local DNS servers, (step 1). is by configuration aware of the IP address of the AVES-aware NAT gateway and the reusable-IP address of . Upon receiving the DNS query, selects at random a waypoint among a set it (step 2). The SETUP message
, and
receives the SETUP message, it examines its data path translation table to see if it on more compactly by , NAT gateway
can accept the request. Let us denote a translation table entry . Then, , and responder if and only if,
That is, if
a REJECT message because cannot be used to relay a particular initiator to more than one responder. On receiving a REJECT message, for simplicity, the AVES-aware DNS server will simply do nothing and let the initiator perform the DNS name lookup again to retry. In our example, the admission control criterion is satisfied, so accepts the request, creates the corresponding translation table entry, and sends back an ACCEPT message (step 3). Finally, when receives the ACCEPT message, it responds to 's DNS query for with the IP address
of the selected waypoint, , with the time-to-live field set to zero (step 4). Note that the messages between waypoints and the AVES-aware DNS servers are authenticated to prevent unknown sources from gaining control of the system. Also, the messages can be lost in the network. Waypoint failure and packet loss are simply handled by initiator 's DNS query timeout/retry mechanism. Limitations of this scheme are discussed in Section 6.
and
can no
longer perform the admission control test stated in Section 3.3.1. However,
whatever information it has and decide whether to accept the request (in the simplest case, always accepts the request). If accepts the request, it replies with an ACCEPT message, and , and executes the algorithm
immediately enters a wait state for a short period of time, shown in Figure 6. During this time, requests are serialized.
Figure 6: Waypoint wait state algorithm for general deployment In summary, during this wait state, when a new connection from some initiator (indicated by a TCP SYN packet or any non-TCP packet), arrives is
waiting for. Thus, checks to see if violates the admission control criterion (note that in Figure 6 denotes a waypoint translation table entry as defined in Section 3.3.1). If so, the packet must be rejected, and is recorded in the set of violators. If later a new connection from
initiator arrives, and does not violate the admission control criterion, and has no existing translation table entry for , then a new translation table entry is created for and bound to responder . Upon exiting the wait state, connections from initiators in must be rejected for a should not
time period to force these initiators to retry their connections. Note that be too large or it may negatively affect future requests from the same initiator.
We have fully implemented delayed binding in our prototype system and it works well (see Section 5 for details). Since this technique is independent of organizational boundaries, it is
actually feasible for our prototype system to provide service to reusable-IP networks outside of CMU. One disadvantage of delayed binding is that connections need to be retried whenever an admission control violation is committed. Fortunately, when the number of waypoints is greater than the average number of simultaneous sessions opened by an initiator, the chance of this can be kept small. Another disadvantage is that the peak rate at which the whole system can accept new sessions is limited to sessions per second, where is the number of IP addresses
assigned to waypoints. Our prototype system, with 50 IP addresses and a of 2 seconds, can accept 25 sessions per second. While this is quite reasonable for CMU's DSL users, we do not advocate the use of our system to serve a popular web server.