IP Library Granted Patent US 10,469,499
Granted Patent B2
US 10,469,499 · App. 15/198,781 · Granted Nov 5, 2019

Website filtering using bifurcated domain name system

Inventors: Henning Els (Penngrove, CA); Miguel A. Alonso Ferre (Petaluma, CA)
Assignee: Calix, Inc.
H04L63/101H04L61/1511H04L61/2514H04L63/0245H04L63/0254H04L63/0281H04L61/2007H04L63/1483H04L67/02H04L67/2814
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,469,499
App. No.
15/198,781
Granted
Nov 5, 2019
Kind
B2
Abstract

Systems and techniques for website filtering using bifurcated domain name system are described herein. A domain name system (DNS) request may be received. An internet address for a DNS service of an internet service provider (ISP) and an internet address for a DNS service provider external to the ISP may be determined. The ISP may provide external network services to the services gateway. The DNS service provider may maintain a website filtering list. The DNS request may be forwarded to the internet address for the DNS service of the ISP and the internet address of the DNS service provider external to the ISP. A first response and a second response to the DNS request may be received from the respective DNS services. A DNS request response may be transmitted to a client computing device connected to an internal network of the services gateway upon receipt of the first and second responses.

Claims (56)

1. A services gateway for website filtering using bifurcated domain name system (DNS), the services gateway comprising:

one or more processors; and

at least one memory including instructions that, when executed by the one or more processors, cause the one or more processors to perform operations to:

receive a DNS request, the DNS request including a hostname corresponding to a website;

determine an internal identifier for a computing device that initiated the DNS request, wherein the identifier is unique to the computing device on an internal network of the services gateway;

determine a first internet address for a DNS service of an internet service provider (ISP), the ISP providing external network services to the services gateway;

determine a second internet address for a DNS service provider external to the ISP, the DNS service provider maintaining a website filtering list;

forward the DNS request to both the first internet address for the DNS service of the ISP and the second internet address of the DNS service provider external to the ISP, wherein the DNS request forwarded to the DNS service provider external to the ISP includes the internal identifier;

receive a first response to the DNS request from the DNS service of the ISP;

receive a second response to the DNS request from the DNS service provider external to the ISP, the second response based on a filter applied to the results, the filter selected based on the internal identifier, wherein the filter is uniquely maintained for the computing device that corresponds to the internal identifier;

compare the first response to the DNS request and the second response to the DNS request; and

transmit a DNS request response to a client computing device, the client computing device connected to an internal network provided by the services gateway, wherein the DNS request response is based on the comparison.

2. The services gateway of claim 1 , wherein the instructions to transmit the DNS request response to the client computing device include instructions to forward the response to the DNS request received from the DNS service of the ISP.

3. The services gateway of claim 1 , wherein the second response to the DNS request includes a message that the website has been blocked by the DNS service provider external to the ISP.

4. The services gateway of claim 1 , wherein the instructions further cause the one or more processors to perform operations to:

determine an identifier of a sender of the DNS request;

forward the identifier of the sender to the DNS service provider external to the ISP along with the DNS request; and

wherein the second response received from the DNS service external to the ISP includes the identifier of the sender, and wherein the client computing device corresponds to the identifier of the sender.

5. The services gateway of claim 4 , wherein the identifier is an internal internet protocol (IP) address of the sender of the DNS request, the IP address being issued by the services gateway.

6. The services gateway of claim 1 , wherein the DNS request is received from a computing device connected to an internal network provided by the services gateway.

7. At least one machine readable medium including instructions for website filtering using bifurcated domain name system (DNS) that, when executed by a machine, cause the machine to perform operations to:

receive a DNS request, the DNS request including a hostname corresponding to a website;

determine an internal identifier for a computing device that initiated the DNS request, wherein the identifier is unique to the computing device on an internal network of a services gateway;

determine a first internet address for a DNS service of an internee service provider (ISP), the ISP providing external network services to the services gateway;

determine a second internet address for a DNS service provider external to the ISP, the DNS service provider maintaining a website filtering list;

forward the DNS request to both the first Internet address for the DNS service of the ISP and the second internet address of the DNS service provider external to the ISP, wherein the DNS request forwarded to the DNS service provider external to the ISP includes the internal identifier;

receive a first response to the DNS request from the DNS service of the ISP;

receive a second response to the DNS request from the DNS service provider external to the ISP, the second response based on a filter applied to the results, the filter selected based on the internal identifier, wherein the filter is uniquely maintained for the computing device that corresponds to the internal identifier;

compare the first response to the DNS request and the second response to the DNS request; and

transmit a DNS request response to a client computing device, the client computing device connected to an internal network provided by the services gateway, wherein the DNS request response is based on the comparison.

8. The at least one machine readable medium of claim 7 , wherein the instructions to transmit the DNS request response to the client computing device include instructions to forward the response to the DNS request received from the DNS service of the ISP.

9. The at least one machine readable medium of claim 7 , wherein the second response to the DNS request includes a message that the website has been blocked by the DNS service provider external to the ISP.

10. The at least one machine readable medium of claim 7 , wherein the instructions further cause the one or more processors to perform operations to:

determine an identifier of a sender of the DNS request;

forward the identifier of the sender to the DNS service provider external to the ISP along with the DNS request; and

wherein the second response received from the DNS service external to the ISP includes the identifier of the sender, and wherein the client computing device corresponds to the identifier of the sender.

11. The at least one machine readable medium of claim 10 , wherein the identifier is an internal internet protocol (IP) address of the sender of the DNS request, the IP address being issued by the services gateway.

12. The at least one machine readable medium of claim 7 , wherein the DNS request is received from a computing device connected to an internal network provided by the services gateway.

13. A method for website filtering using bifurcated domain name system (DNS), the method comprising:

receiving, by a services gateway, a DNS request, the DNS request including a hostname corresponding to a website;

determining an internal identifier for a computing device that initiated the DNS request, wherein the identifier is unique to the computing device on an internal network of the services gateway;

determining a first internet address for a DNS service of an internet service provider (ISP), the ISP providing external network services to the services gateway;

determining a second internet address for a DNS service provider external to the ISP, the DNS service provider maintaining a website filtering list;

forwarding the DNS request to both the first internet address for the DNS service of the ISP and the second internet address of the DNS service provider external to the ISP, wherein the DNS request forwarded to the DNS service provider external to the ISP includes the internal identifier;

receiving a first response to the DNS request from the DNS service of the ISP;

receiving a second response to the DNS request from the DNS service provider external to the ISP, the second response based on a filter applied to the results, the filter selected based on the internal identifier, wherein the filter is uniquely maintained for the computing device corresponding to the internal identifier;

comparing the first response to the DNS request and the second response to the DNS request; and

transmitting a DNS request response to a client computing device, the client computing device connected to an internal network provided by the services gateway, wherein the DNS request response is based on the comparison.

14. The method of claim 13 , wherein transmitting the DNS request response to the client computing device includes forwarding the response to the DNS request received from the DNS service of the ISP.

15. The method of claim 13 , wherein receiving the second response to the DNS request includes receiving a message that the website has been blocked by the DNS service provider external to the ISP.

16. The method of claim 13 , further comprising:

determining an identifier of a sender of the DNS request;

forwarding the identifier of the sender to the DNS service provider external to the ISP along with the DNS request; and

wherein receiving the second response from the DNS service external to the ISP includes receiving the identifier of the sender, and wherein the client computing device corresponds to the identifier of the sender.

17. The method of claim 16 , wherein determining the identifier of the sender includes determining an internal internet protocol (IP) address of the sender of the DNS request, the IP address being issued by the services gateway.

18. The method of claim 13 , wherein receiving the DNS request includes receiving the DNS request from a computing device connected to an internal network provided by the services gateway.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 11, 2022
From: BANK OF AMERICA, N.A.
To: CALIX, INC.
Reel/Frame 059929/0453 →
RELEASE OF SECURITY INTEREST Recorded Apr 18, 2022
From: BANK OF AMERICA, N.A.
To: CALIX, INC.
Reel/Frame 059802/0579 →
SECURITY INTEREST Recorded Jan 28, 2020
From: CALIX, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 051719/0348 →
RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Jan 27, 2020
From: SILICON VALLEY BANK
To: CALIX, INC.
Reel/Frame 051714/0883 →
SECURITY INTEREST Recorded Aug 9, 2017
From: CALIX, INC.
To: SILICON VALLEY BANK
Reel/Frame 043495/0424 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2016
From: ELS, HENNING; ALONSO FERRE, MIGUEL A.
To: CALIX, INC.
Reel/Frame 039191/0479 →
Continuity (1)
Related Publication 20180007054A1 · Jan 4, 2018