Skip to content

v0.3.0 Alpha-0.3.0

Pre-release
Pre-release

Choose a tag to compare

@TochusC TochusC released this 31 Oct 10:55
· 57 commits to main since this release

Alpha测试版本0.3.0 ✨

基本框架完工,已可运行使用 ⚡

更新内容:

  1. 添加对DNSSEC相关记录的支持
  • DNSKEY
  • RRSIG
  • NSEC
  • DS
  1. 添加DNSSEC相关工具函数
  • GenerateDNSKEY
  • GenerateRRSIG
  • CalculateKeyTag
  • .....还有更多!
  1. 完善单元测试
  2. 修正代码错误❌

GoDNSServer设计完成

DNS服务器实现

  • server.go 顶层封装
    • sniffer.go 监听数据包
    • handler.go 处理数据包
      • parser.go 解析数据包
      • responser.go 生成DNS回复
      • sender.go 发送DNS回复

dns包设计完成

DNS消息编解码实现

// DNSMessage 表示 DNS协议 的消息结构。
type DNSMessage struct {
	// DNS消息 头部
	Header DNSHeader // DNS 头部(Header)
	// DNS消息的各个部分(Section)
	Question   DNSQuestionSection // DNS 查询部分(Questions Section)
	Answer     DNSResponseSection // DNS 回答部分(Answers Section)
	Authority  DNSResponseSection // DNS 权威部分(Authority Section)
	Additional DNSResponseSection // DNS 附加部分(Additional Section)
}

子包 xlayers

提供实现gopacket接口的DNS封装结构

现已支持未知类型(RRType)的资源记录编解码

目前支持的资源记录类型有:

  1. A 记录
  2. CNAME 记录
  3. NS 记录
  4. TXT 记录
  5. DNSKEY 记录
  6. RRSIG 记录
  7. NSEC记录
  8. DS记录
  9. 仍待更新...

进一步完善及测试进行中...

Full Changelog: v0.2.1...v0.3.0