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

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

  • IPv6でリッスンするのを無効にするのか
  • IPv6の名前解決を無効にする(フィルター)のか

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

 

環境・前提条件

  • CentOS Linux release 7.3.1611
  • bind 9.9.4-37

環境で説明します。

 

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

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

  • namedの起動オプションで”-4”引数
  • named.confでlisten-on-v6をnone設定

 

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

image

通常に

systemctl start named

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

image

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

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

  • /etc/sysconfig/named

ファイルに

OPTIONS=”-4”

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

image

 

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

image

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

  • /etc/named.conf

に上記のように、options部に

listen-on-v6 { none;};

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

 

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

image

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

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

image

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

 

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

ちなみに、

  • IPv4で定義されたレコードはAレコード(タイプA)で
  • IPv6で定義されたレコードはAAAAレコード(タイプAAAA)です

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

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

  • Aレコードで解決したいか、
  • AAAAレコードで解決したいか

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

  • Aレコード要求ならIPv4
  • AAAAレコードならIPv6

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

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です