ネットワークでPi-holeなどのDNSサーバーを使う場合、複数のルーターを介した通信設定が重要です。この記事では、ルーター間でのDNSサーバー通信がうまくいかない場合の原因と、その解決方法について解説します。
ネットワーク構成と問題点の整理
質問者が抱える問題は、ルーターA(RTモード)、ルーターB(RTモード)、ルーターC(APモード)の間でDNSサーバー(192.168.11.50)への通信ができないというものです。ルーターBにはDNSサーバーが接続されており、Pi-holeなどのDNS機能を使おうとしているが、通信がうまくいかないという問題です。
まず、ネットワーク構成を整理すると、以下のような構成になります。
- ルーターA(IP: 192.168.0.1)
- ルーターB(IP: 192.168.11.1)と接続されているDNSサーバー(IP: 192.168.11.50)
- ルーターC(APモード)
これらの間でDNS通信ができない原因を探るために、次のポイントを見ていきます。
ルーター間でのDNS通信がうまくいかない原因
DNS通信がルーター間でうまくいかない場合、考えられる原因は以下の通りです。
- ネットワークセグメントの異なり:ルーターAとルーターBは異なるサブネット(192.168.0.0と192.168.11.0)にあるため、ルーター間で適切にルーティングが行われていない可能性があります。
- ファイアウォールやポート制限:Pi-holeサーバーが接続されているルーターBで、DNS通信を阻害するファイアウォール設定やポート制限がかかっている可能性があります。
- ルーターのゲートウェイ設定:ルーターA(またはC)からルーターBへのアクセスがゲートウェイ設定によって適切にルーティングされていないことがあります。
DNS通信を有効にする設定方法
ルーターAとCからルーターBのDNSサーバー(192.168.11.50)へ接続できるようにするために、以下の設定を確認・実施してください。
1. ルーター間のルーティング設定の確認
ルーターAとルーターBは異なるサブネットにあるため、適切なルーティング設定が必要です。ルーターAのゲートウェイ設定を確認し、192.168.11.0/24へのルートが正しく設定されているかをチェックします。これにより、ルーターAからルーターBへパケットが正しく送信されるようになります。
2. ルーターBのファイアウォール設定を確認
DNSサーバー(Pi-hole)が接続されているルーターBでは、DNS通信(通常はポート53)が正しく許可されているかを確認します。ファイアウォールがDNSパケットをブロックしていないか、またはDNSリクエストを正しく転送する設定が行われているかを確認しましょう。
特に、ルーターBがDNSサーバーとして動作している場合、そのポート(53)を開放することが必要です。また、ルーターAおよびCに対してDNSのリクエストが適切にルーティングされるように設定します。
3. Pi-holeの設定確認
Pi-holeが稼働しているサーバーの設定も確認しましょう。Pi-holeの「設定」画面から「DNS」セクションに進み、使用するDNSサーバーが正しく設定されていることを確認します。また、「すべての起源を許可する」設定が適切に行われているかを再確認します。
トラブルシューティングの手順
以下の手順で問題の切り分けを行い、解決策を見つけていきましょう。
- pingテスト:ルーターAおよびCからルーターB(またはPi-holeサーバー)へのpingテストを実行し、ネットワーク接続が正常かを確認します。
- telnetでの接続確認:ポート53への接続を確認するため、telnetコマンドを使用して、ルーターAからPi-holeサーバーへ接続できるかテストします。
- ログの確認:Pi-holeのログを確認し、DNSリクエストがPi-holeに届いているかどうか、エラーメッセージなどが出力されていないかを確認します。
まとめ
複数のルーター間でPi-holeなどのDNSサーバーを利用する場合、ルーター間のルーティング設定やファイアウォール設定が重要です。ルーターAとCからルーターBのDNSサーバーへ正しく通信ができるように、ネットワーク構成や各ルーターの設定を見直し、必要な設定を適切に行うことで、問題を解決できます。
問題が解決しない場合は、pingやtelnetなどのツールを使って接続を確認し、ログファイルでトラブルの詳細を確認すると良いでしょう。
コメント