* doc: filtering logic with a diagram
This commit is contained in:
parent
e8885dbf3e
commit
7c0b2d8ede
|
@ -61,7 +61,7 @@ Contents:
|
||||||
|
|
||||||
## Relations between subsystems
|
## Relations between subsystems
|
||||||
|
|
||||||
![](agh-arch.png)
|
![](doc/agh-arch.png)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1184,6 +1184,26 @@ Response:
|
||||||
|
|
||||||
## Filtering
|
## Filtering
|
||||||
|
|
||||||
|
![](doc/agh-filtering.png)
|
||||||
|
|
||||||
|
This is how DNS requests and responses are filtered by AGH:
|
||||||
|
|
||||||
|
* 'dnsproxy' module receives DNS request from client and passes control to AGH
|
||||||
|
* AGH applies filtering logic to the host name in DNS Question:
|
||||||
|
* process Rewrite rules
|
||||||
|
* match host name against filtering lists
|
||||||
|
* match host name against blocked services rules
|
||||||
|
* process SafeSearch rules
|
||||||
|
* request SafeBrowsing & ParentalControl services and process their response
|
||||||
|
* If the handlers above create a successful result that can be immediately sent to a client, it's passed back to 'dnsproxy' module
|
||||||
|
* Otherwise, AGH passes the DNS request to an upstream server via 'dnsproxy' module
|
||||||
|
* After 'dnsproxy' module has received a response from an upstream server, it passes control back to AGH
|
||||||
|
* If the filtering logic for DNS request returned a 'whitelist' flag, AGH passes the response to a client
|
||||||
|
* Otherwise, AGH applies filtering logic to each DNS record in response:
|
||||||
|
* For CNAME records, the target name is matched against filtering lists (ignoring 'whitelist' rules)
|
||||||
|
* For A and AAAA records, the IP address is matched against filtering lists (ignoring 'whitelist' rules)
|
||||||
|
|
||||||
|
|
||||||
### Filters update mechanism
|
### Filters update mechanism
|
||||||
|
|
||||||
Filters can be updated either manually by request from UI or automatically.
|
Filters can be updated either manually by request from UI or automatically.
|
||||||
|
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
Binary file not shown.
After Width: | Height: | Size: 67 KiB |
Loading…
Reference in New Issue