The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
Like reference numerals are used to designate like parts in the accompanying drawings.
The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
Unsecure updates allow clients to create a new registration or modify an existing registration. Unsecure updates for existing data are not restricted to the original owner. System 100, as shown in
For example, assume that zone 110 stores records for the domain “corp.contoso.com.” The zone 110 has an address (A) record for “lab-comp.corp.contoso.com” that was created by a registration received from client device 104. Client device 104 has the host name “lab-comp” that was joined to the “corp.contoso.com” domain.
In a first scenario, suppose that client device 104 sends a dynamic update for “lab-comp.corp.contoso.com” to refresh its A record. When the authoritative DNS server 102 is found, it checks for any existing data for the A record for “lab-comp” in the “corp.contoso.com” zone. The A record for “lab-comp” already exists. Therefore, the DNS server checks to see if the source address of the original registrant and the source address of the client device sending the update is the same. The source addresses are the same. Therefore, the DNS server 102 accepts the update. The update is processed and the success of the update is returned to the client device 104.
In a second scenario, suppose that client device 105 sends a dynamic update for “lab-comp.corp.contoso.com” in an attempt to register its IP address. When the authoritative DNS server 102 is found, it checks for any existing A record for “lab-comp” in the “corp.contoso.com” zone. The A record for “lab-comp” already exists. Therefore, the DNS server checks to see if the source address of the original registrant and the source address of the client device sending the update is the same. The original registrant is client device 104, and client device 105 is sending the update, so their source IP addresses are not the same. DNS server 102 may reject the update. DNS server 102 may send a DNS query to client device 104. If an acknowledgement is received from client device 104 in response to the DNS query, then the DNS server 102 rejects the update. If no response to the DNS query is received from the client device 104, then the DNS server 102 may accept the update.
At 402, an update for a name is received at a DNS server from a first client device. The update includes a host name. At 404, a determination is made as to whether the DNS server hosts an authoritative zone for the update. If so, then the process proceeds at 408. If not, then at 406, the update is rejected. When the DNS server that hosts the authoritative zone for the update is found, then at 408, the zone is checked to determine whether there is already a record for the host name. In determining whether there is already a record for the host name, one or more records of one or more record types may be checked. Example record types that may be checked include but are not limited to address (A) records, IPv6 address records, and Canonical Name (CNAME) records.
If no record for the host name is found, then at 430, the update is accepted. If there is already a record for the host name, then at 412, the source IP address associated with the host record is determined. At 414, the source IP address associated with the host record is compared to the source IP address of the first client device. If the IP addresses match, then at 420, the update is accepted. If the IP addresses do not match, then at 416, a DNS query is sent to a second client device having the IP address associated with the host record and at 418, a determination is made as to whether there is a response from the second client device. If an acknowledgement is received from the second client device in response to the DNS query, then at 422, the update is rejected. If no response to the DNS query is received from the second client device, then at 422, the update may be accepted. If the update is accepted and one or more other DNS servers have copies of the zone, then the update may be replicated to the one or more other DNS servers.
The technologies described herein may be operational with numerous other general purpose or special purpose computing environments or configurations. Examples of well known computing environments and/or configurations that may be suitable for use with the technologies described herein include, but are not limited to, personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
With reference to
Processing unit 512 may include one or more general or special purpose processors, ASICs, or programmable logic chips. Depending on the configuration and type of computing device, memory 514 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. Computing device 510 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in
Computing device 510 may also contain communication connection(s) 522 that allow the computing device 510 to communicate with other devices, such as with other computing devices through network 530. Communications connection(s) 522 is an example of communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term ‘modulated data signal’ means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency, infrared, and other wireless media. The term computer readable media as used herein includes storage media.
Computing device 510 may also have input device(s) 518 such as a keyboard, a mouse, a pen, a voice input device, a touch input device, and/or any other input device. Output device(s) 520 such as one or more displays, speakers, printers, and/or any other output device may also be included.
While the invention has been described in terms of several exemplary implementations, those of ordinary skill in the art will recognize that the invention is not limited to the implementations described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.