
Debian 10 サーバーを Debian 11 にアップグレードするテストを行っています。サーバーは、多数のドメインのプライマリ権威 DNS として bind9 を実行しており、Debian 10 では 2 年間正常に動作しています (BIND v.9.11.5)。新しいテスト用 Debian 11 VPS (BIND 9.16.15) では、サイト固有の構成ファイルをコピーして (今のところ 1 つのテスト ドメインのみ)、クエリ (A、AAAA、MX) が IPv4 経由で送信されると bind9 は正常に動作しますが、IPv6 を使用すると応答がありません。
ポート 53 の着信パケットを許可する nftables ファイアウォールがあり、UDP dport 53 のファイアウォール ログをオンにすると、IPv6 および IPv4 クエリ パケットがすべて表示されます。bind9 が
起動すると、syslog で IPv6 アドレスでリッスンしていることが報告されます。ss
は、IPv6 でリッスンしているプロセスを示します。ログ ファイル
を使用して監視するとrndc querylog
、IPv4 クエリはログに記録されますが、IPv6 クエリはログに記録されません。
着信 UDP パケットがファイアウォールと bind9 の間で失われているかのようです。bind9
の実行を停止すると、ss は何もリストしないので、ポート 53 でリッスンしているプロセスは他にありません。
他のサービス (SSH など) は IPv6 で完全に動作します。
私のnamed.conf.options
場合は次のようになります。
options {
directory "/var/cache/bind";
allow-query-cache { none; };
allow-query { any; };
recursion no;
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
listen-on-v6 port 53 { any; };
};
では、この問題を解決するために他にどのようなテストを実行できるでしょうか?
(BIND には、おそらく無関係な 2 番目の問題があります。セカンダリ DNS へのゾーン転送中に「アクセス許可が拒否されました」というエラーが発生します。)
答え1
再起動で修正されました。
最近カーネルの自動アップグレードが行われた後に、これを実行すべきだった可能性があります。この動作は確かに意味をなさないものでした。
更新: 同様の問題に再び遭遇したので、私のシステムに以前に他のソフトウェアによって iptables がインストールされていたためにこの問題が発生したのではないかと疑っています。iptables がまだインストールされている場合、そのルールはカーネルのネットワーク構成に残り、nftables からは見えません。修正するには、iptables パッケージを削除し、カーネル内の iptables ルールをすべてクリアする必要がありました。後者は再起動時に実行されたはずです。