[精讚] [會員登入]
2066

動態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

你可能感興趣的文章

[Centos6 7] 掛載磁碟 只是掛載新磁碟

[Centos6] 安裝wordpress Centos 6下安裝wordpress,非常簡單

PHP for sphinx 函式庫安裝 PECL/sphinx PHP>= 5.2.2 已經能原生支援 sphinx,可是預設的沒有裝,我們得自己裝才能用

安裝網頁套件管理程式 Bower 一個非常棒的Javascript套件管理程式bower,用完愛不釋手。

使用mutt發信(LINUX直接寄信) mutt是一個簡易的發送程式,學會他就不用每次telnet mail server 煩死人

EXCEL+phpPgAdmin 使用phpPgAdmin 匯出資料 直接使用phpPgAmin下載資料的方法

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[HP DL380G7] 生效啟動第3,4片網卡/開啟或關閉內建的網卡 HP DL380G7 預設第3,4片網卡裝完系統後找不到,難道是壞了?要怎麼辦?

TFTP Server 安裝及使用 讓設備的網路設定檔或是韌體經由TFTP拷備出來,操作的方法

[CodeIgniter3] 解決無法上傳特定檔案(.sb2)的問題 上傳時出現The filetype you are attempting to upload is not allowed,要怎麼解決?

[CodeIgniter 3] 資料庫的使用方法整理1/2 --Select的使用 [CodeIgniter 3] 資料庫的使用方法整理:Select的使用

問問題 問問題其實內涵很深,我悟了很久才懂。 有人問題的目的並不一定是想要得到答案,有時只是純粹想問問題..