使用 Ubuntu Server 20.04 正確綁定內部和外部網路的 DNS 配置

使用 Ubuntu Server 20.04 正確綁定內部和外部網路的 DNS 配置

我在小學教育辦公室工作,我正在使用 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 有一個特殊功能,稱為「視圖」。例如,參見這裡這裡

基本上您執行以下操作。

您需要兩個區域文件,一個用於「外部」用戶端,另一個用於「內部」用戶端。我假設您已經為“外部”客戶端配置了它。比方說,配置是這樣的:

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";
    };
};

請注意,您目前的區域配置已移轉到外部視圖。另請注意,視圖的順序很重要,內部視圖必須出現在外部視圖之前,因為外部視圖定義在匹配客戶端中有一個通配符包羅萬象。

然後,來自 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 中,而不是直接在視圖中指定它們。

相關內容