サイトアイコン puti se blog

bind(namd)のIPv6を無効にする方法

DNSのパッケージであるbind(named)でIPv6を無効にしたいといった場合、二つの意味合いがあります。

それぞれの方法について説明したいと思います。

 

環境・前提条件

環境で説明します。

 

namedがIPv6でリッスンするのを無効にする方法

bindパッケージのnamedプロセスがIPv6でリッスンさせない設定方法は次の二つの方法があります。
どちらかを設定することにより無効化できます。

 

方法1、namedの起動オプションで”-4”引数

通常に

systemctl start named

で起動してもnamedプロセスには引数に”-4”オプションはついていません。
その場合は、上記画像のようにtcp6のLISTENがあることがわかります。

上記のようにnamedプロセスに引数”-4”オプションを付けることによって、tcp6のLISTENが消えていることがわかります。

ちなみに、namedプロセスに引数”-4”オプションをつけて起動させるためには

ファイルに

OPTIONS="-4"

と記載しnamedサービスを再起動するだけです。

 

方法2、named.confでlisten-on-v6をnone設定

引数に“-4”オプションをつけなくてもIPv6へのリッスンを無効にする方法があります。

に上記のように、options部に

listen-on-v6 { none;};

と記載しnamedサービスを再起動します。(既存のlisten-on-v6設定をコメントアウトするだけでもIPv6リッスンが無効になりますが)

 

IPv6の名前解決を無効にする方法(フィルター)

結論から言いますと、残念ながらこちらは標準では設定不可です。

以下のようにnamedをコンパイル時にオプションをつけてコンパイルすることにより
IPv6の名前解決を無効(厳密にはフィルタリングする)オプション”filter-aaaa-on-v4”を使用できるようになります。

参考、キャッシュDNSサーバとフィルタリングの実例

 

IPv4のレコートタイプはA、IPv6のレコードタイプはAAAA

ちなみに、

IPv4なのかIPv6なのかはレコードタイプが分かれています。

つまり、DNSクライアントが名前解決したい時に、

をDNSサーバーに問い合わせた結果、DNSサーバーが

を応答しているわけです。

DNSクライアントがAレコードを指定して問い合わせしてくれば、DNSサーバーはAレコード(IPv4)しか応答を返しません。

モバイルバージョンを終了