DNSSEC検証を標準搭載した、高速で軽量な検証型・再帰型・キャッシュ型DNSリゾルバー。
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
Go ツールでライブラリをインストールします
go get github.com/miekg/dns - 2
doc.go の冒頭にある API の概要を読むか、パッケージに対して godoc を実行します
使う前に知っておきたいこと
- 開発は codeberg.org/miekg/dns の DNS version 2 に移行しており、このリポジトリには特定の修正のみが反映されます。
- このリポジトリは、いずれアーカイブされる予定です。
トピック
よくある質問
- 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 の数値は毎日更新されます。
関連プロジェクト
Go製の柔軟なDNSサーバー。DNSの各機能を担うプラグインを連結して動作します。
保守性と高性能を重視したネットワークプロトコルのサーバーやクライアントを構築するための、非同期・イベント駆動型Javaフレームワークです。
Webコンソール、広告・マルウェアブロック、暗号化DNSに対応した、オープンソースの権威DNS・再帰DNSサーバー。
広告をブロックし、ローカル開発サービスに.numаドメイン名を付け、ODoHでクエリを秘匿できる、Rust製のポータブルDNSリゾルバー。
Pythonプログラム向けに、クライアントとサーバーの両方の機能を提供する、SSHv2プロトコルの純粋なPython実装です。