Repolode
miekg

miekg/dns

DNSSECを含むすべてのリソースレコード型に対応し、DNSクライアントやサーバーを構築できるGoライブラリ。

スター
8,804
フォーク
1,220
未解決の Issue
3
最終コミット
3 日前

これは何?

miekg/dnsは、DNSをプロトコルレベルで扱う必要があるプログラマー向けのGo製DNSライブラリです。DNSSECの各種レコードを含むすべてのリソースレコード型に対応し、サーバーとリゾルバーの両方を構築できます。APIは意図的に小さく設計されており、多数の便利な関数ではなく、必要な機能を組み立てるための基本要素を提供します。

IPv4とIPv6でのUDPおよびTCPクエリ、ゾーンファイルの解析、net/httpパッケージを手本にしたサーバー側のプログラミングに対応しています。セキュリティ機能として、DNSSECの署名と検証、DSA、RSA、ECDSA、Ed25519の鍵生成に加え、TSIG、SIG(0)、DNS over TLSを扱えます。また、AXFR/IXFRゾーン転送や、NSID、Cookies、Client SubnetなどのEDNS0オプションも実装しています。

後継プロジェクトのDNS version 2はCodebergで公開されており、このリポジトリにはアーカイブ前に限定的な修正のみを加える予定だと、プロジェクトは告知しています。

主な機能

  • 01DNSSECのレコードを含む、すべてのDNSリソースレコード型に対応
  • 02DNSサーバーとクライアント側のリゾルバーの両方を構築可能
  • 03複数のアルゴリズムによるDNSSECの署名、検証、鍵生成
  • 04$INCLUDE、$ORIGIN、$TTL、$GENERATEに対応したゾーンファイル解析
  • 05AXFR/IXFRゾーン転送とTSIG/SIG(0)認証
  • 06DNS over TLSと、NSIDやCookiesなどのEDNS0オプション

ユースケース

  • Goで独自の権威DNSサーバーを作成する
  • クエリを細かく制御できるDNSリゾルバーやフォワーダーを構築する
  • GoアプリケーションにDNSSECの署名や検証を実装する
  • 生のDNSクエリを送信し、応答を調べる診断ツールを作成する

クイックスタート

  1. 1

    Go ツールでライブラリをインストールします

    go get github.com/miekg/dns
  2. 2

    doc.go の冒頭にある API の概要を読むか、パッケージに対して godoc を実行します

使う前に知っておきたいこと

  • 開発は codeberg.org/miekg/dns の DNS version 2 に移行しており、このリポジトリには特定の修正のみが反映されます。
  • このリポジトリは、いずれアーカイブされる予定です。

トピック

#dns#go#dnssec#dns-library#networking#protocol

よくある質問

dns とは?
DNSSECを含むすべてのリソースレコード型に対応し、DNSクライアントやサーバーを構築できるGoライブラリ。 miekg/dnsは、DNSをプロトコルレベルで扱う必要があるプログラマー向けのGo製DNSライブラリです。DNSSECの各種レコードを含むすべてのリソースレコード型に対応し、サーバーとリゾルバーの両方を構築できます。APIは意図的に小さく設計されており、多数の便利な関数ではなく、必要な機能を組み立てるための基本要素を提供します。
dns は無料で使えますか?ライセンスは?
dns は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
dns は今もメンテナンスされていますか?
活発にメンテナンス中。dns の最終コミットは 2026年11月3日 です。
dns は何に使えますか?
Goで独自の権威DNSサーバーを作成する クエリを細かく制御できるDNSリゾルバーやフォワーダーを構築する GoアプリケーションにDNSSECの署名や検証を実装する 生のDNSクエリを送信し、応答を調べる診断ツールを作成する
dns のインストール方法は?
Go ツールでライブラリをインストールします: go get github.com/miekg/dns doc.go の冒頭にある API の概要を読むか、パッケージに対して godoc を実行します
dns はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/miekg/dns

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト