TL; DR
YAMAHA 公式Docsは神
はじめに
- RTX830を使っている人の記事です。他機種の互換とかはYAMAHA公式docsに書いてるので参照してください。
- フレッツ光東 NGN環境のためflets-east.jpが出ていますが、設定内容の本質には影響ありません。事前設定としてIIJプロバイダに対して既にIPoE接続(設定例でdhcp lan2となっているもの)の設定をしています。
DNS設定をする際に最初に把握しておくべきこと
DNSサーバーはリカーシブサーバー機能のみで、ルーター自体がリゾルバとはならない。
DNSディレクティブには、問い合わせ先DNSサーバーを設定するコマンドに優先順位がある
クエリが来たら、下記コマンド順序で評価され、条件がマッチしたDNSサーバーに対して問い合わせが行われる。
dns server select
コマンドdns server
コマンドdns server pp
コマンドdns server dhcp
コマンドなんらかのDHCPで取得したDNSサーバー
dns ディレクティブはおおまかに2種類
selectを使わない3種類
主にコマンド優先順位だけを意識してどれかを設定する。 pp,dhcpは問い合わせるDNSサーバーの参照先を選択するだけだが、優先順位が設定されている。 pp,dhcpを同時に設定しても、ppが優先されすべてのクエリは処理されるためdhcpは使用されない。
dns server
コマンドdns server pp
コマンドdns server dhcp
コマンド
selectを使う3種類
<id> の若い順に評価される。pp, dhcp は問い合わせるDNSサーバーの参照先を選択しているだけの認識でよい
dns server select <id>
コマンドdns server select <id> pp
コマンドdns server select <id> dhcp
コマンド
使用例
デフォルトはDNSサーバーAを参照し、特定ドメイン(flets-east.jp)だけDNSサーバーBを参照する
select句を使い、特殊な処理を先に書き、デフォルトの処理は後ろにかく。もしくは dns server select
句の後ろの優先順位で設定する。
。
その他のドメイン ( .
が指定されているので、前段でマッチしなかったクエリすべて) は、 192.168.0.2
に問い合わせる。
# `.flets-east.jp` ドメインのみ `dhcp lan2` で教えられたDNSサーバー(NGN DNS Server)に問い合わせる dns server select 500000 dhcp lan2 any .flets-east.jp # 500000でマッチしなかったクエリはすべて500100の `any .` にマッチし処理される dns server select 500100 192.168.0.2 any .
dns server <IP>
句でデフォルトDNSサーバーを設定する例
dns server 192.168.0.2 dns server select 500000 dhcp lan2 any .flets-east.jp
PPPoE接続が行われているときだけ、ISPのDNSサーバーを使い、切断時はNGNのDNSサーバーを使う
dns server select
句に、 restrict pp <num>
が使用されると、対象のPP接続がactiveな時だけクエリの評価を行うようになる。
# pp1接続がactiveな時に、`any .` なDNSクエリを、pp1から受信したDNSサーバーに問い合わせる dns server select 500001 pp 1 any . restrict pp 1 # pp1接続がinactiveな時は500001でクエリが処理されないため、 500002で `any .` なDNSクエリを、dhcp lan2から受信したDNSサーバーに問い合わせる dns server select 500002 dhcp lan2 any .
参考にしたところ
https://changineer.info/network/yamaha_router_rtx/yamaha_router_rtx_dns_example.html
さいごに
コマンド体系を紐解いていくと、とても柔軟な設定ができることがわかった。
楽しい。