[精讚] [會員登入]
3307

動態DNS -- dynamic DNS實作

BIND9動態DNS設定

分享此文連結 //n.sfs.tw/11984

分享連結 動態DNS -- dynamic DNS實作@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2020-10-08 13:29:04 最後編修
2017-10-27 13:06:50 By 張○○
 

自動目錄

設定範例

網域 example.com
主機名稱 ddns
IP 163.17.40.100

# named -v
BIND 9.9.4-RedHat-9.9.4-51.el7 (Extended Support Version)

安裝

# yum install bind*

設定

# vi /etc/named.conf

假設要建立網域 example.com,在zone "." IN 下面加入

zone "example.com" {
        type master;
        file "data/example.com.static"; # 建立靜態的內容
        allow-update {127.0.0.1;};    # 開放 127.0.0.1 進行動態更新
        allow-transfer { none; };  # slave 主機,可能一部或多部,若無請寫 none
};

其中檔案 data/example.com.static

# vi /var/named/data/example.com.static

$ORIGIN .
$TTL 43200      ; 12 hours
example.com.             SOA  ddns.example.com. root.dns.example.com. (
                                2017102704 ; serial
                                36000      ; refresh (10 hours)
                                7200       ; retry (2 hours)
                                36000      ; expire (10 hours)
                                43200      ; minimum (12 hours)
                                )
example.com.              NS      ddns.example.com.
ddns.example.com.         A       163.17.40.100

重新啟動

# service named restart

建立腳本檔

# touch dns.script.txt

server 127.0.0.1
update add example.com. 10800 MX 10 ASPMX.L.GOOGLE.COM.
update add proxy.example.com. 10800 CNAME britannica
update add ceag.example.com. 10800 A 140.128.55.100
update add elesson.example.com. 10800 AAAA 2001:288:5400:4::1000
update add wges.example.com. 10800 TXT "google-site-verification=VHi9xhYVUM8IUicq8IRl7Tje-LKc"
send

上面的IP和記錄只是範例

執行你的腳本

# nsupdate -D -v all_dns_script.txt

  -D 是進入 debug mode,執行時才知道大概哪行有問題
  -v 是執行腳本檔,也可以省略

執行完後會多一個 example.com.static.jnl 檔:

  1. 執行完就會生效,不必重啟
  2. jnl 檔可以刪除,若named重啟restart時,jnl會把記錄寫到 example.com.static 中,但reload不會。
  3. 未來若要刪除得使用指令
  4. 重新啟動時,已加入記錄不會消失,得用nsupdate來刪除,除非這時沒有jnl檔
  5. 重覆執行腳本檔不會怎樣,重覆加入不會怎樣

已知的困難

1. 沒辦法清掉設定上的記錄,就算重啟也一樣

2. 無法動態加上zone

指令錯誤訊息

1. 下指令send出現 couldn't get address for 'your.doamin.name': not found 錯誤
可能原因:忘記下 server 127.0.0.1 這個指令

2. 下指令send出現 update failed: NOTZONE 錯誤
可能原因:設定非該網域資料,例如設定的 zone是example.com,要新增example.com,則指令必需打完整的FQDN:
update add example.com 60 A 1.2.3.2

3. 新增的資料沒有出現
可能原因:忘了下達send指令。

4. update failed: NOTAUTH
你修改的網域並不屬於你,可能你在 named.conf中沒有加入這個網域

5. zone x.x.x/IN: journal rollforward failed: not exact
後面的序號比原來的序號小,例如動態增加記錄未寫到靜態檔卻又修改靜態檔

6. zone x.x.x/IN: journal rollforward failed: journal out of sync with zone
靜態檔和動態檔不一致,解決方法:把jnl刪掉放棄動態檔重新載入。

 

參考資料

[1] abelyang@TWNIC http://phorum.study-area.org/index.php?topic=40717.0

 

END

你可能感興趣的文章

[CENTOS8] Failed to download metadata for repo 'appstream' 的問題 Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist的解決方法。

Centos7 的ifconfig和netstat Centos7 和RHEL 7 最小安裝中竟然沒有ifconfig和netstat?原來centos/rhel準備把這兩個指令作廢,那怎麼辦?

[MSSQL] 使用linux連接微軟的MS-SQL 職務上需要連接到mssql,這是我第一次試圖在linux連接mssql。

使用RRDTOOL來繪製流量圖 使用RRDTOOL來製作流量圖的簡略說明

[CENTOS7/8] 安裝中文字型 如何在Centos7上安裝和移除中文字型?

[DNS] 把Named 產生的log放到遠端伺服器 把named的log放到log server以符合資安的需求。

隨機好文

沒有非誰做不可的事,也沒有不可被取代的人 沒有非誰做不可的事,也沒有不可被取代的人

[bc] linux 的計算機 bc 設定小數位數、計算π、次方根 linux 的計算機 bc 設定小數位數、計算π、次方根

[大型機台] 熱血高校躲避球 多少少年時光歲月耗在這個遊戲上,二十幾年前的那個時光,唯一想做的事就是把吃飯錢省下來拿去打一場五塊錢的電動,就算是沒錢也

兩次使用InnoDB的慘痛經驗 Mysql 的Innodb引擎雖然好用,但是我得說說我兩次的慘痛經驗,這讓我考慮以後可能不會再使用innodb了

真正的喜悅 幾種喜悅的類型,雖然很簡單,卻是很多人百思不得其解的難題..