ubuntu10.04 安裝DNS [論壇 - Ubuntu 套件打包]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

(1) 2 3 »


ubuntu10.04 安裝DNS
會員二級
註冊日期:
2012/2/29 23:27
所屬群組:
已註冊使用者
等級: 5
HP : 0 / 124
MP : 17 / 2826
EXP: 97
離線
在終端機中輸入ping open-ims.test
卻沒有辦法正常運作

輸入sudo service bind9 restart
顯示stopping domain name service... bind9 [OK]
starting domain name service... bind9 [fail]

更改過 gedit /etc/resolv.conf
domain localdomain
search localdomain
nameserver 127.0.0.1
nameserver 192.168.78.1

更改過 gedit /etc/bind/named.conf.local
增加 zone "open-ims.test"{
type master;
file "/etc/bind/open-ims.dnszone";
};

還有 ser_ims/cfg/configurator.sh
改過裡面的IP位址和名稱。

我做的是openimscore的架設,可是目前困難重重,
可否有人幫忙解惑!!!

附件:



jpg  Capture2012-2-19-下午 11.39.38.jpg (141.57 KB)
29558_4f4e55cff2c78.jpg 1280X768 px

jpg  Capture2012-2-19-下午 11.15.49.jpg (99.20 KB)
29558_4f4e55dc9aefb.jpg 1280X768 px

jpg  Capture2012-2-19-下午 11.11.50.jpg (112.02 KB)
29558_4f4e55edb114b.jpg 1280X768 px

2012/3/1 0:44
應用擴展 工具箱
回覆: ubuntu10.04 安裝DNS
會員四級
註冊日期:
2008/11/20 21:32
所屬群組:
已註冊使用者
等級: 20
HP : 0 / 487
MP : 163 / 15723
EXP: 48
離線
/etc/resolv.conf 只需要兩行
------------------------------------
nameserver 168.95.1.1 # 主要 DNS
nameserver 8.8.8.8 # 次要 DNS


Q.為什麼不是 127.0.01?

A.
resolv.conf 是指主機要向外查詢 DNS 時,要向誰查詢

你的 bind 一開始是沒有全世界主機資料的,僅有自己網域的資料
所以一定得向外查詢,才能獲得別的主機資料,轉變成自己的快取


至於 bind 的設定檔、正反解怎麼寫,建議看網路上教學:
http://linux.vbird.org/linux_server/0350dns.php


測試自己的 DNS 有沒有作用,不是用 ping
有專門查詢的指令,可以指定向 localhost 查詢
用法:
http://linux.vbird.org/linux_server/0350dns.php#DNS_resolver_cmd


bind 啟動若失敗
失敗的原因,可查看系統 log 檔
在 /var/log/message ,直接最末尾的部份
凡是系統服務啟動失敗,或有什麼錯誤,都會紀錄原因在系統 log

2012/3/1 2:08
應用擴展 工具箱
回覆: ubuntu10.04 安裝DNS
會員四級
註冊日期:
2010/8/12 15:54
所屬群組:
已註冊使用者
等級: 18
HP : 0 / 443
MP : 135 / 12068
EXP: 72
離線
(◕ ◡◡ ◕) 寫到:
/etc/resolv.conf 只需要兩行
------------------------------------
nameserver 168.95.1.1 # 主要 DNS
nameserver 8.8.8.8 # 次要 DNS


Q.為什麼不是 127.0.01?

A.
resolv.conf 是指主機要向外查詢 DNS 時,要向誰查詢

你的 bind 一開始是沒有全世界主機資料的,僅有自己網域的資料
所以一定得向外查詢,才能獲得別的主機資料,轉變成自己的快取


他是要測試自己架好的 dns 是不是可以正常運作
resolv.conf 設 127.0.0.1 當然不影響測試

再者
bind 安裝好以後本身就有root name servers的資訊
所以本來就可以運作
即使你沒有加任何 zone file

給樓主:
你的 /etc/bind/open-ims.dnszone 這個檔案的內容呢??

2012/3/1 18:26
應用擴展 工具箱
回覆: ubuntu10.04 安裝DNS
會員四級
註冊日期:
2008/11/20 21:32
所屬群組:
已註冊使用者
等級: 20
HP : 0 / 487
MP : 163 / 15723
EXP: 48
離線

他是要測試自己架好的 dns 是不是可以正常運作
resolv.conf 設 127.0.0.1 當然不影響測試


從測試「自己 bind 主機是否正常運作?」這個階段的角度來說
是沒錯啦


但是最終主機上線對外服務時
resolv.conf 還是需要改成外面的 DNS 主機

因為套件更新 update 的時候,需要連外去下載

那個時候就需要解析外面主機網域
比方說:ftp://更新套件庫的伺服器

必須靠外面的 DNS 主機進行查詢
無法只靠自己的 bind 主機,因為自己的 bind 主機並無資料


也就是說:測試完畢,resolv.conf 仍然是得改回來

否則以後主機無法更新,也無法上網

既然如此,何不一開始就設好呢,較省事,反正最終都是要改回來
至於要測試,除了 ping 以外,還有其它測試方法

我個人是比較懶惰,要我選的話,我會選先設定好
^^b

---------------------------------------------


提供樓主補充參考:

測試 DNS,一般少用 ping

可以用專門測試的指令,比如 host、nslookup、 dig

範例:

host open-ims.test
(從自己的主機,即 localhost,查詢 open-ims.test 正解)

host open-ims.test 8.8.8.8
(指定從 8.8.8.8 這台 Google 的主 DNS 查詢正解)

host open-ims.test 168.95.1.1
(指定從 168.95.1.1 這台 中華電信 的主 DNS查詢正解)



Q.為何要從外面 DNS 主機,測試自己的網域?

1.
因為別人的電腦網卡設定 DNS,不會設你的 DNS 主機,一定是設 ISP 或有名氣的 DNS 主機。

若那些 DNS 主機,有辦法查到你的 Domian Name,那不就一切 OK 妥當了。


2.
雖然是向外面的 DNS 主機查詢正解

但實際上外面的 DNS 主機,會先來你的 DNS 主機查詢,查到後才回報使用者。


DNS 整個流程範例說明:

某位使用者
向 8.8.8.8 (外面 DNS 主機)查詢 www.open-ims.tw. 正解
↓↓↓
8.8.8.8 收到使用者查詢要求,分析網域組成
首先和 "國際 NIC 組織 ROOT 主機" 查詢:.tw. 歸誰管?
ROOT 主機回報: .tw. 歸 TWNIC 管
↓↓↓
8.8.8.8 繼續轉向和 TWNIC 詢問:open-ims.tw 歸誰管?
TWNIC 回報:open-ims.tw 歸 "你的DNS主機" 管
↓↓↓
8.8.8.8 繼續轉向和 "你的DNS主機" 詢問:www 這台主機IP多少?
"你的DNS主機" 回報:www 這台主機 IP 為 xx.xx.xx.xx
↓↓↓
最後 8.8.8.8 和當初查詢的使用者回報:
www.open-ims.tw. 的 IP 就是 xx.xx.xx.xx


以上範例就是 DNS 系統的運作方式,流程

DNS 是各管各的,必須透過一連串的查詢,才能查到最後的 IP 資料。

整個過程看似要經過很多道程序,但因為電子信號很快,這一連串的詢問在1秒內通常都可以完成。

從過程中可以了解,即使用戶和外面 DNS 主機查詢,最終外面的 DNS 主機仍是得詢問你的 DNS 主機,才能解析出 IP。

因此若外面的 DNS 有辦法解析出你的主機 IP,那也代表你的 DNS 設定 OK 了。


不過一般除了 A 紀錄,還會加測 MX 紀錄

避免沒有查詢到你的DNS主機,只是網域註冊商那邊回報的網域 IP

自管 DNS(非委託代管)
網域註冊商那邊並沒有 MX 紀錄,只有 A紀錄
所以加測 MX 紀錄,就可以確保你的 DNS 真的有在運作

2012/3/1 19:25
應用擴展 工具箱
回覆: ubuntu10.04 安裝DNS
會員四級
註冊日期:
2008/11/20 21:32
所屬群組:
已註冊使用者
等級: 20
HP : 0 / 487
MP : 163 / 15723
EXP: 48
離線
更正:

仔細想了一下,我知道 acman 大大你的意思了

你的意思是:乾脆讓 bind 當 DNS 快取伺服器

因為 bind 本身就有root name servers的資訊
所以依照 DNS 查詢流程,也能查到任何網域資料
查到後都變成快取

向外面 DNS 查詢,可能要花費 1000ms 時間
而向自己主機查詢,如快取過,僅須 10ms 內


這點子挺酷的

在一般的桌面系統,bind 也可以裝來當 DNS 快取
只需安裝 bind,設開機啟動,DNS 指向 127.0.0.1 就行了
基本上不必設定就有快取效果

以前作業系統不內建和預設啟動 bind 當快取
可能是記憶體的考量
但現在硬碟大,記憶體也多,bind 只吃一點點,幾乎可以忽略

突然想到:
假如 Linux 當閘道路由器的情況
還能直接 iptables 動手腳過濾
將所有 port 53 的連線,全轉向到 localhost 閘道主機查詢

這樣區網的電腦群,不管 DNS 設啥,通通轉向由路由器主機查詢 DNS,就能達到透明快取效果(Transpart DNS) XD

2012/3/1 20:08
應用擴展 工具箱
回覆: ubuntu10.04 安裝DNS
會員四級
註冊日期:
2010/8/12 15:54
所屬群組:
已註冊使用者
等級: 18
HP : 0 / 443
MP : 135 / 12068
EXP: 72
離線
(◕ ◡◡ ◕) 寫到:
不過一般除了 A 紀錄,還會加測 MX 紀錄

避免沒有查詢到你的DNS主機,只是網域註冊商那邊回報的網域 IP

自管 DNS(非委託代管)
網域註冊商那邊並沒有 MX 紀錄,只有 A紀錄
所以加測 MX 紀錄,就可以確保你的 DNS 真的有在運作


MX RECORD 的用途是在:人家寄信給你
不是在你發信出去

EX: 你發信到 AAA@gmail.com
發信端會:
1. 先透過 DNS 看看 gmail.com 這個domain 有沒有 MX 記錄
dig -t mx gmail.com

;; ANSWER SECTION:
gmail.com. 1545 IN MX 40 alt4.gmail-smtp-in.l.google.com.
gmail.com. 1545 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 1545 IN MX 10 alt1.gmail-smtp-in.l.google.com.
gmail.com. 1545 IN MX 20 alt2.gmail-smtp-in.l.google.com.
gmail.com. 1545 IN MX 30 alt3.gmail-smtp-in.l.google.com.

所以發信端的 mail server 就知道 @gmail.com 的信往這幾台丟就好

2. 如果查無 MX記錄, 就直接丟給 gmail.com

所以你如果申請了一個 a.com.tw 的 domain, 設定的 mail server 是 mail.a.com.tw的話,人家發信過來:
沒設 MX 時, 必須用 @mail.a.com.tw
有設 MX 時, 用 @a.com.tw 就可以

有沒有MX記錄不是 DNS 設定正不正確的必然條件

2012/3/2 10:49
應用擴展 工具箱
回覆: ubuntu10.04 安裝DNS
會員四級
註冊日期:
2008/11/20 21:32
所屬群組:
已註冊使用者
等級: 20
HP : 0 / 487
MP : 163 / 15723
EXP: 48
離線
上網研究了半天,還真的有 Transparent DNS



分享一下心得:


透明 DNS 快取

不論 Client端的網路設定,DNS 設多少,只要一經過閘道,封包就會被重新導向,改由指定的 DNS 主機去查詢。

指定的 DNS 主機通常也是內部網路自己的 DNS 快取主機,如此一來就能起到 DSN 解析加速的效果。

有些 ISP 其實就有在用 Transparent DNS 來減輕國際頻寬的負載

如同 Transparent Proxy 那樣,使用者不會有任何感覺,也不知道封包被轉向了


環境條件:
1.要有一台 Linux NAT 閘道主機(雙網卡)
2.要架設一台 DNS 快取主機(架在閘道主機上即可)

iptables 重新導向部份

iptables -t nat -A PREROUTING -i $LAN_IF -p udp --dport 53 -j REDIRECT --to-port 53
iptables -t nat -A PREROUTING -i $LAN_IF -p tcp --dport 53 -j REDIRECT --to-port 53


$LAN_IF 是對內網卡界面編號

凡由內部網卡進入,要 NAT 路由出去,目標埠是 UDP 或 TCP 53 的封包,轉向給本機 port 53 接收(即閘道的 DNS 快取接收處理)。


測試過確實可行
Client端的 DNS 亂設,設一個根本不是 DNS 的 IP
然後可以上網

效果還不賴,感覺解析網址有比較快 XD

------------------------------------------

參考資料:
http://www.dnsleaktest.com/what-is-transparent-dns-proxy.php

以毒攻毒,dnsmasq 对付 isp 的 dns劫持
http://forum.ubuntu.org.cn/viewtopic.php?f=73&t=343238&sid=745f70a6627dc0aeede1359e4ec125cf


大陸那邊的 ISP,會利用 Transparent DNS 劫持用戶的網址查詢

比如把本來連到色情網站的網址查詢,就回報一個 ISP 首頁的 IP
然後用戶就會明明打那個網址,奇怪怎麼連到別的地方去了...

因為 DNS 快取伺服器,本身就是 DNS 伺服器,所以可以自由設定網址解析資料,藉以欺騙或謊報 IP,達到網址重新轉向到別的 IP 的目的。

而大陸一般用戶明白這原理後,想出一招以毒攻毒,乾脆自己也架 DNS,使用自己的 DNS,然後自己的 DNS 也強制轉 IP,凡是已知網站的網址,就不往外查詢,由資料庫直接回報正確的 IP。


這個 dnsmasq 是 dns + dhcp 多功能合一的軟體
很多 Linux base 的軟體路由器,都是用這個套件

相當於輕量級的 bind + dhcpd

功能沒有 bind + dhcpd 的組合那麼強和那麼進階
但是足夠一般使用,設定較簡單,也較輕量反應較快

它有一些功能是 bind 要達成會比較複雜,而它只需一行
比如:網址直接對應IP(強制型)

網路上搜老半天,居然沒有完整的 dnsmasq 中文教學
我試著去翻譯它的 dnsmasq.conf 主要設定檔
翻大約 1/3 就放棄了
因為我發現這套的 DNS 太陽春,也沒有 view 多重視點功能

但若只有管理一個網域,或是家用、辦公室用
dnsmasq 是不錯的選擇

dnsmasq 的設定的確是比 bind 簡化很多
設定檔也只有一個全集中在一起
不過缺點是中文教學非常不成熟,找不到比較有用的參考資料

2012/3/2 14:38
應用擴展 工具箱
回覆: ubuntu10.04 安裝DNS
會員二級
註冊日期:
2012/2/29 23:27
所屬群組:
已註冊使用者
等級: 5
HP : 0 / 124
MP : 17 / 2826
EXP: 97
離線
可是我在/etc/bind/open-ims.dnszone中只有看到一堆資料

並沒有說有什麼相關資訊

因為我是照著http://slo.twbbs.org/?p=401這個網頁進行

但在一半的地方中 DNS 沒有辦法正常架設成功

我爬文過說要改三個文件檔

但是我現在已經錯亂了

不知道該改什麼東西了!!

麻煩您可否給予一個提示

其中三個是
/etc/bind/named.conf.local

/etc/bind/named.conf.optins

/etc/resolv.conf
但是我改過了 但還是無法順利執行

其中以上兩位大大說得我並不是很明白

2012/3/11 21:41
應用擴展 工具箱
回覆: ubuntu10.04 安裝DNS
會員四級
註冊日期:
2008/11/20 21:32
所屬群組:
已註冊使用者
等級: 20
HP : 0 / 487
MP : 163 / 15723
EXP: 48
離線
1.
把 /etc/bind/named.conf 內容全部清空

然後貼上以下內容:


// bind9 主要設定檔 named.conf
// Ubuntu 版,/etc/bind/named.conf

// 說明:
// 1.每行必須以分號「;」作為結尾。
// 2.使用指令:named-checkconf,檢查設定檔語法正確性。


////////////////////////////////////////////////
// 主要設定 //
////////////////////////////////////////////////

// 以下設定各路徑,若有使用 chroot,需填入 chroot 相對路徑,而非絕對路徑
options {

directory "/etc/bind"; // zone 檔存放位置
version "X"; //當別人查詢您的BIND版本時顯示的內容

allow-query { any; }; // 允許查詢的位址
allow-transfer { none; }; // 是否允許傳送 zone (slave 用途)

// 代詢(轉遞)伺服器機制
// 若有此段,則所有對外的 DNS 查詢都會先送到你所指定的代詢伺服器
// 讓代詢伺服器利用快取資訊幫您快速回應 DNS 查詢,省去從 root zone 開始查
forward only ;
forwarders {
168.95.1.1;
8.8.8.8;
};

};


////////////////////////////////////////////////
// view & zone 設定 //
////////////////////////////////////////////////


// 我的網域 zone
zone "open-ims.test" {
type master;
file "db.open-ims.test";
};



2.
在 /etc/bind/ 底下
用 sudo 權限新增一個檔案,檔名取做:db.open-ims.test

貼上以下內容:


$TTL 1D

@ IN SOA ns.open-ims.test.tw. webmaster.open-ims.test.tw. (
2012031201 ; 序號 (Serial)
8H ; 更新頻率 (Refresh)
4H ; 失敗重新嘗試時間 (Retry)
8D ; 失效時間 (Expire)
1D ; 快取時間 (Minumum TTL)
)

@ IN NS ns.open-ims.test.
@ IN MX 10 mail.open-ims.test.

@ IN A 192.168.0.254
ns IN A 192.168.0.254

mail IN CNAME @
www IN CNAME @





說明:
----------------
1.以上只是範例,實際要更改內容,才能符合你的環境需求。

2.named.conf 的設定中,並不包括 rndc 設定和多重視點設定,僅是最簡單可運作範例。

完整的 DNS 觀念,和詳細設定(包括 rndc)
建議參考網路上的教學:
http://linux.vbird.org/linux_server/0350dns.php

3.zone 檔,若有更改,序號那邊要增加一下。這樣外面的 DNS 主機才會知道你有更新。

通常是用:日期+次數
比如 2012031201(固定10碼),表示 2012年03月12日01次更新

4.實際上範例是有排版的,但是因為論壇不支援貼 code,所以排版都會亂掉。建議設定檔要排版,才會容易觀看。


------------------------------------------------------

測試:



重新啟動 bind9,使新的設定生效

如上圖:測試 OK

nslookup [網域名稱/主機名稱] [要查詢的 DNS 主機]

先指定用自己 localhost 主機進行查詢,以便驗證自己主機 DNS 的正確性。


然後再用外面的 DNS 主機進行查詢
例如:
nslookup open-ims.test 8.8.8.8 (Google的 DNS 主機)
nslookup open-ims.test 168.95.1.1 (中華電信的 DNS 主機)

當然的,這只是範例
查 open-ims.test 肯定查不到的,因為這網域亂掰的。

----------------------------------------------------

錯誤排除方法:

bind9 若啟動失敗

或者 nslookup 查詢無效,出現下列字串:
**server can't [網域] : NXDOMAIN

在 /etc/init.d/bin9 restart 後
立刻查看系統紀錄最後 30行,看發生什麼事
指令:sudo cat /var/log/syslog | tail -n 30
(查看 /var/log/syslog 的最後30行)

有時候可能 zone 檔名錯誤,或檔案不存在
或者 zone 裡面內容有誤

例如,我剛測試發現:
Ubuntu 的 bind9,不允許 ns 主機用 CNAME 別名,一定要指定 A 紀錄 IP。否則載入 zone 檔會失敗。

像這樣的錯誤,在 syslog 系統紀錄,就會明確的指出。不過它是英文的,若看不懂,可貼上來大家研究研究。


另外,named.conf 設定完畢後
可用指令:sudo named-checkconf
確認 named.conf 裡面語法是否有錯
檢查無誤不會有任何訊息
若有錯誤,它會說第幾行有錯

----------------------------------------------

其它可能疑問:

為何清空 /etc/bind/named.conf
原先裡面預設的內容不好嗎?

Ubuntu 版的 named.conf,預設採用 include 引入的方式,引入一些設定檔。

查看了一下那些設定檔,都是一些 localhost、127.0.0.1 的設定,並不重要,也不需要。所以全清除了沒關係。

include 引入的方式,比較適合管理大量的網域。

Ubuntu 的 named.conf 之所以預設那樣子,只是要展示一種範例。

而一般在設定 bind9 的 named.conf,比較少用 include 引入檔案的方式,而是採用直接在 named.conf 編輯的方式。因為一般不會管理那麼大量的網域,只有管理自己私人一個網域而已。include 一大堆反而編輯較麻煩囉唆。

2012/3/12 0:54
應用擴展 工具箱
回覆: ubuntu10.04 安裝DNS
會員二級
註冊日期:
2012/2/29 23:27
所屬群組:
已註冊使用者
等級: 5
HP : 0 / 124
MP : 17 / 2826
EXP: 97
離線
大大我看了您的回復之後

第一張的圖是我我用sudo service bind9 restart之後的結果

不知道為麼會卡住!!

第二張圖是/etc/bind/named.conf底下的資料還有後面的
// 我的網域 zone
zone “open-ims.test” {
type master;
file “/etc/bind/open-ims.dnszone “;
};

第三張圖是/etc/bind/db.open-ims.test底下的內容

請問我到底還缺少什麼?

為什麼還是不能?

所以要成功架設一個DNS必須改哪些東西又要注意些什麼?

是否可以大大給予聯繫的資訊,我想及時與您聯繫!!!

附件:



jpg  Capture2012-3-12-下午 11.38.07.jpg (118.36 KB)
29558_4f5e1be9229b6.jpg 1280X768 px

jpg  Capture2012-3-12-下午 11.52.05.jpg (155.25 KB)
29558_4f5e1bf334c5a.jpg 1280X768 px

jpg  Capture2012-3-12-下午 11.54.00.jpg (115.22 KB)
29558_4f5e1c5720c40.jpg 1280X768 px

2012/3/12 23:56
應用擴展 工具箱

(1) 2 3 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.