![Ubuntu Server 20.04 で内部ネットワークと外部ネットワークの両方の Bind DNS 構成を修正する](https://rvso.com/image/762124/Ubuntu%20Server%2020.04%20%E3%81%A7%E5%86%85%E9%83%A8%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A8%E5%A4%96%E9%83%A8%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%AE%20Bind%20DNS%20%E6%A7%8B%E6%88%90%E3%82%92%E4%BF%AE%E6%AD%A3%E3%81%99%E3%82%8B.png)
私は初等教育のオフィスで働いており、内部および外部使用の両方のために Ubuntu Server 20.04 でローカル サーバーを設定しています。すべての学校とオフィスは、全国ネットワーク '.sch.gr' に属しています。ネットワークは私たちのオフィスにドメイン dipe****.sch.gr を割り当てており、外部 IP は 81.186.21.** です。外部からはすべて正常に動作します。サーバーの内部 IP は 10.145.252.10 です。LAN のコンピューターが dipe****.sch.gr と入力すると、内部 IP 10.145.252.10 に解決されるようにしたいです。これは可能ですか? このために Bind をインストールしましたが、正しい構成が見つかりません。誰か助けてくれませんか?
答え1
はい、可能です。ISC BIND には「ビュー」と呼ばれる特別な機能があります。たとえば、ここそしてここ。
基本的には次のことを行います。
2 つのゾーン ファイルが必要です。1 つは「外部」クライアント用、もう 1 つは「内部」クライアント用です。すでに「外部」クライアント用に構成されているものとします。構成は次のようになります。
zone "dipe****.sch.gr" IN {
type master;
file "pri/dipe****.sch.gr.zone";
};
これを次のように変更します。
view "internal" {
match-clients { 10.0.0.0/8; };
zone "dipe****.sch.gr" IN {
type master;
file "pri/dipe****.sch.gr.zone_int";
};
};
view "external" {
match-clients { any; };
recursion no;
zone "dipe****.sch.gr" IN {
type master;
file "pri/dipe****.sch.gr.zone";
};
};
現在のゾーン構成が外部ビューに移行されたことに注意してください。また、ビューの順序は重要であり、外部ビュー定義には match-clients でワイルドカード キャッチオールがあるため、内部ビューは外部ビューの前に表示する必要があることに注意してください。
次に、10.xxx からの DNS クエリは、ファイル ''dipe****.sch.gr.zone_int'' から応答されます。これは、プライベート アドレスを構成する場所です。10.xxx に一致しないクライアントからのすべてのクエリは、パブリック アドレス用の ''dipe****.sch.gr.zone'' から応答されます。
内部クライアントが他のネットワーク (192.168.xx、172.16.xx) にも存在する場合は、それらをmatch-clients
内部ビューに追加します。ビューで直接指定する代わりに、ACL を構成して match-clients に追加することもできます。