https://github.com/fantasticmao/dnshooks
A simple DNS proxy, with support for some hooks (such as webhooks).
https://github.com/fantasticmao/dnshooks
disruptor dns java netty proxy
Last synced: 2 months ago
JSON representation
A simple DNS proxy, with support for some hooks (such as webhooks).
- Host: GitHub
- URL: https://github.com/fantasticmao/dnshooks
- Owner: fantasticmao
- License: gpl-3.0
- Created: 2020-03-11T17:58:53.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-27T05:49:39.000Z (about 6 years ago)
- Last Synced: 2025-10-26T20:56:10.317Z (8 months ago)
- Topics: disruptor, dns, java, netty, proxy
- Language: Java
- Homepage:
- Size: 154 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DNSHooks [](https://github.com/FantasticMao/dnshooks/actions) [](https://codecov.io/gh/FantasticMao/dnshooks) [](https://github.com/FantasticMao/dnshooks/blob/master/LICENSE)
A simple DNS proxy, with support for some hooks (such as webhooks).
## DNSHooks-Proxy
DNSHooks-Proxy's inbound/outbound channel handler pipeline in Netty:
```text
+--------+ +--------------------+
| | --> DatagramDnsQueryDecoder | +----------------+ |
| DNS | DnsProxyServerClientHandler --> | | DNSHooks Proxy | |
| Client | | | Server | |
| | DnsProxyServerDisruptorHandler <-- | +----------------+ |
| | <-- DatagramDnsResponseEncoder | | A | | +--------+
+--------+ | | | V | | |
| | +----------------+ | --> ProxyQueryEncoder --------------> | DNS |
| | | DNSHooks Proxy | | | Server |
V | | Client | | ProxyResponseDecoder <-- | |
+-------------+ | +----------------+ | <-- ObtainMessageChannelHandler | |
/ /| +--------------------+ +--------+
+-------------+ |
| Disruptor | |
| Ring Buffer |/
+-------------+
| | |
V V V
Hook Hook Hook
```
## DNS Related RFC
- RFC 1034 [Domain Names - Concepts And Facilities](https://tools.ietf.org/html/rfc1034)
- RFC 1035 [Domain Names - Implementation And Specification](https://tools.ietf.org/html/rfc1035)
- RFC 2136 [Dynamic Updates in the Domain Name System (DNS UPDATE)](https://tools.ietf.org/html/rfc2136)
- RFC 2181 [Clarifications to the DNS Specification](https://tools.ietf.org/html/rfc2181)
- RFC 2535 [Domain Name System Security Extensions](https://tools.ietf.org/html/rfc2535)
- RFC 2929 [Domain Name System (DNS) IANA Considerations](https://tools.ietf.org/html/rfc2929)
- RFC 7766 [DNS Transport over TCP - Implementation Requirements](https://tools.ietf.org/html/rfc7766)