# US 2017/0289101 A1 · Nat aware dns

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0289101 A1
- Document ID: US20170289101A1
- Status: Published application
- Kind: A1
- Application number: 15/084,357
- Filed: 2016-03-29
- Published: 2017-10-05
- Earliest claimed: 2016-03-29
- Assignees: T-Mobile USA, Inc.
- Applicants: T-Mobile USA, Inc.
- Inventors: Paul S. Farag
- Web page: https://patentgrep.com/patent/US20170289101A1

## CPC

- H04L 61/4511: using domain name system [DNS]
- H04L 61/5046: Resolving address allocation conflicts; Testing of addresses (testing when self-assigning an address H04L61/5092)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods are provided for resolving conflicting network addresses by utilizing a DNS server to configure an edge computing device. The DNS server may receive, from a client computing device, a request to resolve a hostname of a recipient computing device. The DNS server may determine a resolved network address corresponding to the hostname and may determine that the resolved network address conflicts with another network address. The DNS server may determine a substitute network address, provide the edge computing device with information for translating the substitute network address into the resolved network address, and provide the substitute network address to the client computing device. The edge computing device may receive the substitute network address from the client computing device, translate the substitute network address into the resolved network address of the recipient computing device, and send network data from the client computing device to the recipient computing device.

## Claims

### Claim 1

A system comprising:
a domain-name-system (DNS) server comprising a first processor configured with processor-executable instructions to perform operations comprising:
receiving, from a client computing device, a request to resolve a hostname;
obtaining a resolved network address associated with the hostname;
determining that the resolved network address conflicts with another network address;
determining a substitute network address associated with the resolved network address;
providing an edge computing device with translation information for translating the substitute network address into the resolved network address; and
providing the substitute network address to the client computing device.

### Claim 2 (depends on 1)

The system of claim 1, wherein:
the system further comprises the edge computing device; and
the edge computing device comprises a second processor configured with processor-executable instructions to perform operations comprising:
receiving, from the DNS server, the translation information for translating the substitute network address into the resolved network address;
receiving, from the client computing device, the substitute network address and network data;
determining the resolved network address from the substitute network address and the translation information; and
providing the network data to a computing device at the resolved network address.

### Claim 3 (depends on 1)

The system of claim 1, wherein the edge computing device comprises one of an edge router device, a firewall device, or a network-address-translation device.

### Claim 4 (depends on 1)

The system of claim 1, wherein providing an edge computing device with translation information comprises:
generating instructions for updating a routing table with the translation information; and
providing the instructions to the edge computing device.

### Claim 5 (depends on 4)

The system of claim 4, wherein providing the instructions to the edge computing device comprises providing the instructions to the edge computing device via one of an application program interface of the edge computing device, a tool-command-language script, or a Simple Network Management Protocol message.

### Claim 6 (depends on 1)

The system of claim 1, wherein the first processor is configured with processor-executable instructions to perform operations further comprising receiving a set of conflicting network addresses, wherein each network address of the set of conflicting network addresses conflicts with another network address.

### Claim 7 (depends on 6)

The system of claim 6, wherein determining that the resolved network address conflicts with another network address comprises determining that the resolved network address is included in the set of conflicting network addresses.

### Claim 8 (depends on 7)

The system of claim 7, wherein the resolved network address is a network address in a local network of the client computing device.

### Claim 9

A computer-implemented method comprising:
obtaining a resolved network address associated with a hostname;
determining that the resolved network address conflicts with another network address;
determining a substitute network address associated with the resolved network address;
providing an edge computing device with translation information for translating the substitute network address into the resolved network address; and
providing the substitute network address to a client computing device.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9 further comprising:
generating time-to-live information related to the substitute network address; and
storing the time-to-live information.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10 further comprising:
determining that the time-to-live information has expired; and
causing the edge computing device to discard the translation information for translating the substitute network address into the resolved network address.

### Claim 12 (depends on 9)

The computer-implemented method of claim 9 further comprising:
determining a domain associated with the resolved network address;
determining a routing rule associated with the domain; and
determining alternative translation information from the routing rule.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12 further comprising:
determining a network address of an intermediate computing device based on the alternative translation information; and
generating the translation information, wherein the translation information comprises information for translating the substitute address into the network address of the intermediate network.

### Claim 14 (depends on 12)

The computer-implemented method of claim 12, wherein the routing rule comprises at least one of information regarding a set of whitelisted domains or information regarding a set of blacklisted domains.

### Claim 15 (depends on 12)

The computer-implemented method of claim 12, wherein the intermediate computing device comprises one of a proxy server or an application-aware firewall device.

### Claim 16

A non-transitory, computer-readable medium having stored thereon server-executable software instructions configured to cause a domain-name-system (DNS) server to perform operations comprising:
obtaining a resolved network address associated with a hostname;
determining that the resolved network address conflicts with another network address;
determining a substitute network address associated with the resolved network address;
providing an edge computing device with translation information for translating the substitute network address into the resolved network address; and
providing the substitute network address to a client computing device.

### Claim 17 (depends on 16)

The non-transitory, computer-readable medium of claim 16, wherein providing the edge computing device with translation information comprises:
generating instructions for updating a routing table with the translation information; and
providing the instructions to the edge computing device.

### Claim 18 (depends on 16)

The non-transitory, computer-readable medium of claim 16, wherein the first processor is configured with processor-executable instructions to perform operations further comprising receiving a set of conflicting network addresses, wherein each network address of the set of conflicting network addresses conflicts with a network address located in one of a local network or an external network.

### Claim 19 (depends on 18)

The non-transitory, computer-readable medium of claim 18, wherein determining that the resolved network address conflicts with another network address comprises determining that the resolved network address is included in the set of conflicting network addresses.

### Claim 20 (depends on 16)

The non-transitory, computer-readable medium of claim 16 further comprising:
generating time-to-live information related to the substitute network address;
storing the time-to-live information;
determining that the time-to-live information that was stored has expired; and
causing the edge computing device to discard the translation information for translating the substitute network address into the resolved network address.
