作者 主題: 請教一種特殊的企業用 DNS 配置  (閱讀 12889 次)

0 會員 與 1 訪客 正在閱讀本文。

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
請教一種特殊的企業用 DNS 配置
« 於: 2011-12-19 10:49 »
環境:rhel5.4(centos5.4)
需求:0、企業由於某些原因,需要搭建自己的dns。
         1、有企業內部區域解析,例如解析內部員工pc或服務器。
         2、所有的外部解析全部轉到某一個公網的dns上去,不用 根 查詢。原因是公網的dns有智能解析,能解析出最好的ip地址。

        我最近在學習dns,考慮到各種方案,只有這個方案無解,特來此請高人指點。
        對於這個方案,我能想到的只有用view,做match-destinations,分成2部份,一部份叫做inner,做內部解析;一部份叫做outer,做全部的外網解析。用這種方法,inner用acl匹配內網地址,outer直接匹配any。但由於內網地址用的是公網的ip形式,而不是192.168形式,所以內網解析經常被分到outer裏面解析,發生解析錯誤。
        也許上一段我的方法一開始的出發點就是個錯誤。希望高人指點。如果站內或google有類似的解決辦法,希望能給個鏈接,剩餘的我自己去學習。謝謝了。

slime

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #1 於: 2011-12-19 11:43 »
看起來好像沒這麼複雜, 我想到的只有:
1. DNS 主機有兩台, 一台是企業(C), 一台是公網(P), (暫時認為沒有 Internet 上其他 DNS 主機)
2. C 主機設定上游為 P 主機, 如果在 C 主機未列入授權的查詢, 就轉向 P 主機查詢.
3. 所有企業內的 Client , DNS 設定都指向 C 主機.
4. 在防火牆設定 DNS 查詢都不能通過(限制只能查 C 主機).
這樣設定工作完全只有在 C 主機上.

如果還需要接受外部查詢, 再另外設定一台 C2 主機處理, 或者由代管主機處理.
冷笑話: 我的 IP 是 127.0.0.1

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #2 於: 2011-12-19 13:05 »
看起來好像沒這麼複雜, 我想到的只有:
1. DNS 主機有兩台, 一台是企業(C), 一台是公網(P), (暫時認為沒有 Internet 上其他 DNS 主機)
2. C 主機設定上游為 P 主機, 如果在 C 主機未列入授權的查詢, 就轉向 P 主機查詢.
3. 所有企業內的 Client , DNS 設定都指向 C 主機.
4. 在防火牆設定 DNS 查詢都不能通過(限制只能查 C 主機).
這樣設定工作完全只有在 C 主機上.

如果還需要接受外部查詢, 再另外設定一台 C2 主機處理, 或者由代管主機處理.

      首先感謝您的回答,
      我也是這麼想的,但C主機主配置文件怎麼寫呢
轉向的話用forward對吧,這個要麼寫在全局配置里,要麼寫了某個單獨區域內比如abc.com.tw。如果是寫全局的話,是不符合公司內網解析需求的。如果是單獨區域內的話,外網的眾多網站是寫不完的,也不行。所以我只能想到用view,但我用view的match-destinations不能完全工作,而相關的文檔對match-destinations介紹又很少。希望您能再指點一下,謝謝!

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #3 於: 2011-12-19 13:35 »
看你的需求我也覺得沒那麼複雜, 可是我有點看不懂你再問什麼, 你先把 view 什麼雜七雜八的觀念拿掉,
先簡單寫出你的需求就好, 我也是覺得一個 forward 應該就可以達成你的需求, 不需要用到 view.

另外所有的 DNS 查詢都是透過 根 伺服器開始的, 沒有 根, 你的 DNS 只會出 error 給你看, 就這樣.
我做人那麼 nice, 肯定有什麼誤會.....

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #4 於: 2011-12-19 13:49 »
看你的需求我也覺得沒那麼複雜, 可是我有點看不懂你再問什麼, 你先把 view 什麼雜七雜八的觀念拿掉,
先簡單寫出你的需求就好, 我也是覺得一個 forward 應該就可以達成你的需求, 不需要用到 view.

另外所有的 DNS 查詢都是透過 根 伺服器開始的, 沒有 根, 你的 DNS 只會出 error 給你看, 就這樣.

      需求是既能解析內部地址,又能解析公網地址;但解析公網的地址必須做某個固定的DNS cache,換種說法就是做某個固定的公網DNS的forward(因為公網dns有智能解析,速度比較快)。
      做轉發的的話不用寫zone "." IN { **** } 也是可以的,這個我已經嘗試過了。

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #5 於: 2011-12-19 13:57 »
看你的需求我也覺得沒那麼複雜, 可是我有點看不懂你再問什麼, 你先把 view 什麼雜七雜八的觀念拿掉,
先簡單寫出你的需求就好, 我也是覺得一個 forward 應該就可以達成你的需求, 不需要用到 view.

另外所有的 DNS 查詢都是透過 根 伺服器開始的, 沒有 根, 你的 DNS 只會出 error 給你看, 就這樣.

      需求是既能解析內部地址,又能解析公網地址;但解析公網的地址必須做某個固定的DNS cache,換種說法就是做某個固定的公網DNS的forward(因為公網dns有智能解析,速度比較快)。
      做轉發的的話不用寫zone "." IN { **** } 也是可以的,這個我已經嘗試過了。

你前面提到的 "但由於內網地址用的是公網的ip形式,而不是192.168形式" , 所以 內部地址 是 public ip 的反解?
我做人那麼 nice, 肯定有什麼誤會.....

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #6 於: 2011-12-19 14:00 »
看你的需求我也覺得沒那麼複雜, 可是我有點看不懂你再問什麼, 你先把 view 什麼雜七雜八的觀念拿掉,
先簡單寫出你的需求就好, 我也是覺得一個 forward 應該就可以達成你的需求, 不需要用到 view.

另外所有的 DNS 查詢都是透過 根 伺服器開始的, 沒有 根, 你的 DNS 只會出 error 給你看, 就這樣.

      需求是既能解析內部地址,又能解析公網地址;但解析公網的地址必須做某個固定的DNS cache,換種說法就是做某個固定的公網DNS的forward(因為公網dns有智能解析,速度比較快)。
      做轉發的的話不用寫zone "." IN { **** } 也是可以的,這個我已經嘗試過了。

你前面提到的 "但由於內網地址用的是公網的ip形式,而不是192.168形式" , 所以 內部地址 是 public ip 的反解?

這個也是我苦惱的地方之一,不是我不願意讓內網用192.168的形式,只是確實有類似實際案例,內網地址它就用的不是192.168。

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #7 於: 2011-12-19 14:37 »
所以應該跟 2f 的講法不就可以解了?

B, C 兩台電腦

B 負責 固定的公網DNS
C 負責 public ip 反解, 並設定 forward

公司所有電腦指向 C, 這樣不就可以了嗎?
我做人那麼 nice, 肯定有什麼誤會.....

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #8 於: 2011-12-19 14:41 »
看不太懂, 與 ip 沒什麼關係吧.

假定內部的 DNS 是 A, 用來處理對外 DNS query 的 proxy (聽起來像是 DNS proxy, 如果我沒理解錯誤) 是 B.
我猜可能的做法:
1. 所有內部的電腦都使用 DNS A (不管你是直接指派或用 switch/router 去轉向處理都可以). => 這樣應該不會有內部機器解析錯誤的情形, 有的話就是你的 DNS 的內容設錯.
2. A 把不管它管的, 都 forward 給 B 去處理. (不會有內部的解析到 B, 因為內部的解析 A 會處理掉).
3. B 為了怕別人誤用, 只接受由 A 過來的需求.

IP 不管是內部是不是用 10.x 172.x 192.x 那一些, 跟 DNS 處理完全沒關係.
差別只在於如果內部的網路 "借用" 外頭合法的 IP... 那... 只表示那些 IP 的網站你永遠不能連. 因為都會被認為在內部.

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #9 於: 2011-12-19 15:03 »
所以應該跟 2f 的講法不就可以解了?

B, C 兩台電腦

B 負責 固定的公網DNS
C 負責 public ip 反解, 並設定 forward

公司所有電腦指向 C, 這樣不就可以了嗎?

請問能給個大概的寫法配置呢,有時候我寫的配置並不能完全按照我的想法來運行。比如說我的主配置是
acl "lan" { 125.125.125.0/24; };
options {
        directory "/var/named";
};

view "inner" {
        match-destinations { 125.125.125.148; 125.125.125.149; 125.125.125.150; };
        recursion no;
zone "人事部" IN {
        type master;
        file "人事部.zone";
         };
zone "125.125.125.addr-arpa" IN {
        type master;
        file "125.125.125.zone";
        };
};
view "outer" {
       match-destinations { "any"; };
       forward only;
       forwarders { 8.8.8.8; };
};

這是一個樣例文件,我只改了少許部份,包括其中的"人事部"也用漢字來代替英文。
最上面的 125.125.125.0/24  是內網網段,下面的 125.148只是拿個別主機來測試。
最下面的8.8.8.8也是一個改動過的dns,只是用來說明這是一個公網DNS,我無權控制。
上面的結果是,外部網站確實是轉到最後的dns上去解析了,但內部的3個ip,只有125.148解析到內網了,另外2個解析到外網了,這也是我沒有直接用acl的原因。對此我很困惑。

希望您能進一步指點一下

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #10 於: 2011-12-19 15:07 »
看不太懂, 與 ip 沒什麼關係吧.

假定內部的 DNS 是 A, 用來處理對外 DNS query 的 proxy (聽起來像是 DNS proxy, 如果我沒理解錯誤) 是 B.
我猜可能的做法:
1. 所有內部的電腦都使用 DNS A (不管你是直接指派或用 switch/router 去轉向處理都可以). => 這樣應該不會有內部機器解析錯誤的情形, 有的話就是你的 DNS 的內容設錯.
2. A 把不管它管的, 都 forward 給 B 去處理. (不會有內部的解析到 B, 因為內部的解析 A 會處理掉).
3. B 為了怕別人誤用, 只接受由 A 過來的需求.

IP 不管是內部是不是用 10.x 172.x 192.x 那一些, 跟 DNS 處理完全沒關係.
差別只在於如果內部的網路 "借用" 外頭合法的 IP... 那... 只表示那些 IP 的網站你永遠不能連. 因為都會被認為在內部.

我覺得您理解的沒錯,我剛貼出一份配置,希望您能看一下,指點一下。  注意一下最後的8.8.8.8,那個只是說明forward的公網的DNS我沒有控制權限,我能控制的只有公司自己的一個DNS。

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #11 於: 2011-12-19 15:15 »
看不出有用 view 的必要. 看不懂用 match-destinations 要做什麼.... 一般是用 match-clients 來處理 view 吧.
什麼叫解析到外部去了..

把相關設定還有用來測試對不對的指令與結果都列出來看看吧. 說一堆中文, 完全看不懂是做了什麼事, 得到什麼結果.

一個只處理內部的 DNS, 又不需要依據不同的來源來決定不同的結果, 要用 view 什麼嗎?
單純就處理內部的資料, 沒有設定就 forward 不就好了. (這不就是你要的? 一個最簡單的 DNS 設定就解決了, 弄個 view 來增加複雜度, 然後還做不出想要的結果... 真是想太多了吧.)
« 上次編輯: 2011-12-19 15:21 由 twu2 »

HaWay

  • 大隻佬!
  • 老人組
  • 俺是博士!
  • *****
  • 文章數: 3980
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #12 於: 2011-12-19 15:37 »

我覺得您理解的沒錯,我剛貼出一份配置,希望您能看一下,指點一下。  注意一下最後的8.8.8.8,那個只是說明forward的公網的DNS我沒有控制權限,我能控制的只有公司自己的一個DNS。

我建議你先放下 view 跟 dns 系統, 先搞清楚 dns 的基本概念, 運作模式, 再來先設定一個簡單的 dns 伺服器,
在分析你要的需求, 因為看你的配置檔寫法, 很多都是錯得, 而且你最後說得智能 dns, 竟然指的是 8.8.8.8 ....... Orz
真是被您打敗了.

另外我們都覺得 forward 就可以符合您的需求, 或許您可以考慮朝這個方向研究看看
我做人那麼 nice, 肯定有什麼誤會.....

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #13 於: 2011-12-19 16:06 »
看不出有用 view 的必要. 看不懂用 match-destinations 要做什麼.... 一般是用 match-clients 來處理 view 吧.
什麼叫解析到外部去了..

把相關設定還有用來測試對不對的指令與結果都列出來看看吧. 說一堆中文, 完全看不懂是做了什麼事, 得到什麼結果.

一個只處理內部的 DNS, 又不需要依據不同的來源來決定不同的結果, 要用 view 什麼嗎?
單純就處理內部的資料, 沒有設定就 forward 不就好了. (這不就是你要的? 一個最簡單的 DNS 設定就解決了, 弄個 view 來增加複雜度, 然後還做不出想要的結果... 真是想太多了吧.)


这不是一个“一個只處理內部的 DNS”,還有外部的解析,只不過外部的解析沒有用zone "." IN {},而是全部轉到另外一個不受控制的dns上了,我貼出來的配置里寫的是8.8.8.8,其實不是的,8.8.8.8只是用來說明那個外部的dns不收我控制而已。

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #14 於: 2011-12-19 16:11 »

我覺得您理解的沒錯,我剛貼出一份配置,希望您能看一下,指點一下。  注意一下最後的8.8.8.8,那個只是說明forward的公網的DNS我沒有控制權限,我能控制的只有公司自己的一個DNS。

我建議你先放下 view 跟 dns 系統, 先搞清楚 dns 的基本概念, 運作模式, 再來先設定一個簡單的 dns 伺服器,
在分析你要的需求, 因為看你的配置檔寫法, 很多都是錯得, 而且你最後說得智能 dns, 竟然指的是 8.8.8.8 ....... Orz
真是被您打敗了.

另外我們都覺得 forward 就可以符合您的需求, 或許您可以考慮朝這個方向研究看看


抱歉,我貼出來的配置爲了更容易理解,修改了部份內容。8.8.8.8只是為了說明解析外部地址而轉向的DNS伺服器我無權控制。其實我的配置文件里不是這麼寫的,寫的是另一個我本地區的我無權控制的外部dns。抱歉了。

廉價勞工

  • 活潑的大學生
  • ***
  • 文章數: 213
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #15 於: 2011-12-19 16:27 »
解析內部員工pc或服務器...直接設定host不就行了嗎...?
錢少、事多、離家遠…
位低、權輕、責任重…

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #16 於: 2011-12-19 16:36 »
解析內部員工pc或服務器...直接設定host不就行了嗎...?

由於某些原因,要是需要解析100多台員工pc呢,每個員工都改hosts文件的話,工作量就有些大了呢。一般企業是不需要解析員工pc的,但這裡面還包含一個員工間遠程訪問(協助)以及其他幾個問題,跑題了,這裡就不再詳細說明了。

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #17 於: 2011-12-19 17:01 »
这不是一个“一個只處理內部的 DNS”,還有外部的解析,只不過外部的解析沒有用zone "." IN {},而是全部轉到另外一個不受控制的dns上了,我貼出來的配置里寫的是8.8.8.8,其實不是的,8.8.8.8只是用來說明那個外部的dns不收我控制而已。
正常最簡單有把 forward 打開的 DNS server, 就是你要的.

那 DNS 有設定的東西, 就是內部網路的東西, 所以.... 所有到上頭查的內部網路 name/ip 都可以正常取得.
因為 forward 有打開, 所以, 當查詢的內容不是內部網路的東西 (就是不在這台的 zone 設定上頭的東西),  就會 forward 到你指定的那台機器 (如 8.8.8.8 這機器) 去查.

想那麼複雜做什麼? 這樣的需求一點也不特殊, 本來就是自己裝 DNS server 最簡單的運用.

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #18 於: 2011-12-19 17:34 »
这不是一个“一個只處理內部的 DNS”,還有外部的解析,只不過外部的解析沒有用zone "." IN {},而是全部轉到另外一個不受控制的dns上了,我貼出來的配置里寫的是8.8.8.8,其實不是的,8.8.8.8只是用來說明那個外部的dns不收我控制而已。
正常最簡單有把 forward 打開的 DNS server, 就是你要的.

那 DNS 有設定的東西, 就是內部網路的東西, 所以.... 所有到上頭查的內部網路 name/ip 都可以正常取得.
因為 forward 有打開, 所以, 當查詢的內容不是內部網路的東西 (就是不在這台的 zone 設定上頭的東西),  就會 forward 到你指定的那台機器 (如 8.8.8.8 這機器) 去查.

想那麼複雜做什麼? 這樣的需求一點也不特殊, 本來就是自己裝 DNS server 最簡單的運用.


內部網路的東西forward是打不開的,不然我也不會費勁心思想著用view和match-destinations了
您看我之前的配置,view inner 是內部網路的,沒有forward;
                           view outer 是外部網路的,只有一個forward,所有外部查詢都做轉發。

用view和match-destinations這種麻煩有難以理解的方法也不是我所願意的,只是我想不來其他方法了,就算用這種麻煩的方法我依然無法完全正常解析。

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #19 於: 2011-12-19 17:59 »
把 view 拿掉, 不要用 view 試看看. 只有內部的 zone 設定, 其他的 forward. (用 view 也可以, 只是 forward 的設定... 為什麼會在 view 裡頭? 放外頭不就好了, 不管那一個 view 不都可以用同一個 forward 設定)

不能用? 不可能, 這是最基本的 named 的設定.
« 上次編輯: 2011-12-19 18:02 由 twu2 »

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #20 於: 2011-12-19 18:28 »
把 view 拿掉, 不要用 view 試看看. 只有內部的 zone 設定, 其他的 forward. (用 view 也可以, 只是 forward 的設定... 為什麼會在 view 裡頭? 放外頭不就好了, 不管那一個 view 不都可以用同一個 forward 設定)

不能用? 不可能, 這是最基本的 named 的設定.

不用view的話我確實想不來怎麼寫了
原因的話我在      “ 回覆 #2 於: 今天13:05 »”   寫過了。全局forward和私有解析總是矛盾的。

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #21 於: 2011-12-19 18:48 »
把你的測試設定 (不想讓人知道? 沒人叫你用真的資料測, named 才不管你的資料是真的還是假的, 語法合它就能運作) 貼出來吧.
還是要等看有沒有好心人士貼可以用的測試設定?

如果要等別人貼.... 就看有沒有好心人要貼了. 畢竟那是很基本的東西... 應該不會有什麼人特地再去測一次.

我貼你認為不可能的結果吧 (還是我們都弄錯了,  你要的不是這個):
內部的機器查詢:
代碼: [選擇]
mail:/etc/bind# nslookup p200.teatime.com.tw 192.168.0.1
Server:         192.168.0.1
Address:        192.168.0.1#53

Name:   p200.teatime.com.tw
Address: 192.168.0.200

mail:/etc/bind# nslookup 192.168.0.200 192.168.0.1
Server:         192.168.0.1
Address:        192.168.0.1#53

200.0.168.192.in-addr.arpa      name = p200.teatime.com.tw.

mail:/etc/bind#
查其它 (非該機器管的 zone) 的時候:
代碼: [選擇]
mail:/etc/bind# nslookup www.google.com 192.168.0.1
Server:         192.168.0.1
Address:        192.168.0.1#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 74.125.31.104
Name:   www.l.google.com
Address: 74.125.31.105
Name:   www.l.google.com
Address: 74.125.31.106
Name:   www.l.google.com
Address: 74.125.31.147
Name:   www.l.google.com
Address: 74.125.31.99
Name:   www.l.google.com
Address: 74.125.31.103

mail:/etc/bind# nslookup 74.125.31.103 192.168.0.1
Server:         192.168.0.1
Address:        192.168.0.1#53

Non-authoritative answer:
103.31.125.74.in-addr.arpa      name = tb-in-f103.1e100.net.

Authoritative answers can be found from:
in-addr.arpa    nameserver = a.in-addr-servers.arpa.
in-addr.arpa    nameserver = e.in-addr-servers.arpa.
in-addr.arpa    nameserver = c.in-addr-servers.arpa.
in-addr.arpa    nameserver = f.in-addr-servers.arpa.
in-addr.arpa    nameserver = b.in-addr-servers.arpa.
in-addr.arpa    nameserver = d.in-addr-servers.arpa.
a.in-addr-servers.arpa  internet address = 199.212.0.73
a.in-addr-servers.arpa  has AAAA address 2001:500:13::73
b.in-addr-servers.arpa  internet address = 199.253.183.183
b.in-addr-servers.arpa  has AAAA address 2001:500:87::87
c.in-addr-servers.arpa  internet address = 196.216.169.10
c.in-addr-servers.arpa  has AAAA address 2001:43f8:110::10
d.in-addr-servers.arpa  internet address = 200.10.60.53
d.in-addr-servers.arpa  has AAAA address 2001:13c7:7010::53
e.in-addr-servers.arpa  internet address = 203.119.86.101
e.in-addr-servers.arpa  has AAAA address 2001:dd8:6::101
f.in-addr-servers.arpa  internet address = 193.0.9.1
f.in-addr-servers.arpa  has AAAA address 2001:67c:e0::1

這是不是你要的功能? 如果是的話....
1. 它不用 view (除非你有需求是不同的 client 來查要不一樣的結果)
2. 它是基本的 named 的設定, 你在任何一個 dns 教學文章看到有 forward 的範例都應該做的到.

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #22 於: 2011-12-19 22:57 »
把你的測試設定 (不想讓人知道? 沒人叫你用真的資料測, named 才不管你的資料是真的還是假的, 語法合它就能運作) 貼出來吧.
還是要等看有沒有好心人士貼可以用的測試設定?

如果要等別人貼.... 就看有沒有好心人要貼了. 畢竟那是很基本的東西... 應該不會有什麼人特地再去測一次.

我貼你認為不可能的結果吧 (還是我們都弄錯了,  你要的不是這個):
內部的機器查詢:
代碼: [選擇]
mail:/etc/bind# nslookup p200.teatime.com.tw 192.168.0.1
Server:         192.168.0.1
Address:        192.168.0.1#53

Name:   p200.teatime.com.tw
Address: 192.168.0.200

mail:/etc/bind# nslookup 192.168.0.200 192.168.0.1
Server:         192.168.0.1
Address:        192.168.0.1#53

200.0.168.192.in-addr.arpa      name = p200.teatime.com.tw.

mail:/etc/bind#
查其它 (非該機器管的 zone) 的時候:
代碼: [選擇]
mail:/etc/bind# nslookup www.google.com 192.168.0.1
Server:         192.168.0.1
Address:        192.168.0.1#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 74.125.31.104
Name:   www.l.google.com
Address: 74.125.31.105
Name:   www.l.google.com
Address: 74.125.31.106
Name:   www.l.google.com
Address: 74.125.31.147
Name:   www.l.google.com
Address: 74.125.31.99
Name:   www.l.google.com
Address: 74.125.31.103

mail:/etc/bind# nslookup 74.125.31.103 192.168.0.1
Server:         192.168.0.1
Address:        192.168.0.1#53

Non-authoritative answer:
103.31.125.74.in-addr.arpa      name = tb-in-f103.1e100.net.

Authoritative answers can be found from:
in-addr.arpa    nameserver = a.in-addr-servers.arpa.
in-addr.arpa    nameserver = e.in-addr-servers.arpa.
in-addr.arpa    nameserver = c.in-addr-servers.arpa.
in-addr.arpa    nameserver = f.in-addr-servers.arpa.
in-addr.arpa    nameserver = b.in-addr-servers.arpa.
in-addr.arpa    nameserver = d.in-addr-servers.arpa.
a.in-addr-servers.arpa  internet address = 199.212.0.73
a.in-addr-servers.arpa  has AAAA address 2001:500:13::73
b.in-addr-servers.arpa  internet address = 199.253.183.183
b.in-addr-servers.arpa  has AAAA address 2001:500:87::87
c.in-addr-servers.arpa  internet address = 196.216.169.10
c.in-addr-servers.arpa  has AAAA address 2001:43f8:110::10
d.in-addr-servers.arpa  internet address = 200.10.60.53
d.in-addr-servers.arpa  has AAAA address 2001:13c7:7010::53
e.in-addr-servers.arpa  internet address = 203.119.86.101
e.in-addr-servers.arpa  has AAAA address 2001:dd8:6::101
f.in-addr-servers.arpa  internet address = 193.0.9.1
f.in-addr-servers.arpa  has AAAA address 2001:67c:e0::1

這是不是你要的功能? 如果是的話....
1. 它不用 view (除非你有需求是不同的 client 來查要不一樣的結果)
2. 它是基本的 named 的設定, 你在任何一個 dns 教學文章看到有 forward 的範例都應該做的到.

請問能不能把您的forward相關的內容貼一下。如果僅僅是能夠解析的話,我也不用這麼麻煩的,按照您說的,寫在一起就行。但大陸上網的ISP主要有2家,聯通、電信;它們之間延遲比較很高。如果只是我自己從.(根)解析的話,可能我在電信區,解析到網通了,延遲很高,這效果就不好了。所以我之前一直在強調,外網的解析都轉到某個固定的dns上。如果我在上海電信,那個這個固定的dns肯定是上海電信ISP的dns。這種大的dns帶有智能解析,類似我的view,我在電信,所有的地址儘量都會解析到電信;我在上海,所有的地址儘量解析到距離上海近的地方,比如www.qq.com在上海和北京都有伺服器,那麼我所指定的這個上海電信就會幫我解析到上海的ip,而不是很遠處的北京的ip。大概就是這個情況。
      原諒我之前一直只是在說外網的所有解析都要轉到固定的dns,而沒有詳細解釋這個原因,因為這個解釋起來確實比較麻煩,就算我說了這麼多您也不一定能理解。因為台灣畢竟沒有這種上網限制,可以隨意的上youtube上facebook,這在大陸是受限的。
      希望您能貼一下您forward的相關內容,我看一下是不是我所尋找的。
      我的named.conf文件核心內容基本就是前面的那個,我只是把“dh”改成了“人事部”,把一個本地的沒有控制權限的dns改成了8.8.8.8,刪除了很多行的註釋。如果實在是需要的話,我可以再貼個完整版的。
      感謝您的關注。

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #23 於: 2011-12-19 23:44 »
沒什麼特殊的設定, 就是一般的設定如:
代碼: [選擇]
options {
        forwarders {
                168.95.1.1;
                168.95.192.1;
                8.8.8.8;
                8.8.4.4;
        };
};
你要針對不同的 domain, 用不同的 forwarder, 就直接把那個 domain 設成一個 type 為 forward 的 zone 不就好了, 看不出有什麼困難的.

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #24 於: 2011-12-20 00:43 »
沒什麼特殊的設定, 就是一般的設定如:
代碼: [選擇]
options {
        forwarders {
                168.95.1.1;
                168.95.192.1;
                8.8.8.8;
                8.8.4.4;
        };
};
你要針對不同的 domain, 用不同的 forwarder, 就直接把那個 domain 設成一個 type 為 forward 的 zone 不就好了, 看不出有什麼困難的.

options不是全局設置么,假如說我要解析的內部名為abc,代碼大概寫成如下樣子
代碼: [選擇]
options {
        forwarders {
                168.95.1.1;
                168.95.192.1;
                8.8.8.8;
                8.8.4.4;
        };
zone "abc" IN {
        type master;
        file “abc.zone”;
        };
};

      上面代碼只是個例子(反向解析就先不寫了),有語法錯誤的話您別介意。如果像這樣,options是全局定義,就好像C語言里的環境變量一樣。“abc”也被forward到上面的4個dns里里,那還怎麼行。8.8.8.8是不認識我這個內部的abc的。
        如果我這個說法有錯誤,或者配置文件的寫法不對(不是語法啊),還請您指點一下。關於options的全局影響,我記得以前做錯實驗驗證的,現在記不清了,天亮后我再驗證一下。這麼晚還在回復我的帖子,真的很感謝您。

slime

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #25 於: 2011-12-20 01:06 »
options不是全局設置么,假如說我要解析的內部名為abc,代碼大概寫成如下樣子
代碼: [選擇]
options {
        forwarders {
                168.95.1.1;
                168.95.192.1;
                8.8.8.8;
                8.8.4.4;
        };
zone "abc" IN {
        type master;
        file “abc.zone”;
        };
};

      上面代碼只是個例子(反向解析就先不寫了),有語法錯誤的話您別介意。如果像這樣,options是全局定義,就好像C語言里的環境變量一樣。“abc”也被forward到上面的4個dns里里,那還怎麼行。8.8.8.8是不認識我這個內部的abc的。
        如果我這個說法有錯誤,或者配置文件的寫法不對(不是語法啊),還請您指點一下。關於options的全局影響,我記得以前做錯實驗驗證的,現在記不清了,天亮后我再驗證一下。這麼晚還在回復我的帖子,真的很感謝您。

先說明一下我沒有詳細比對語法.

邏輯上看起來上面這樣就是您要的.
1. 查 abc 時, 主機會依 abc.zone 檔案的內容回應.
2. 查其他 Domain Name 時, 主機不知道, 才會向那 4 台主機查.

如果結果有問題, 大概是語法打錯了.
冷笑話: 我的 IP 是 127.0.0.1

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #26 於: 2011-12-20 08:43 »
1. 請去看 bind/named 文件, 有種 zone 的 type 叫 forward.
2. forwarders 可以用在 zone, view 與全域 options, 如果不能用, 不是你打錯字, 就是我看的文件打錯了, 我覺得前者比較有可能. (同樣請自己去查 bind 文件)
3. 內部的 zone, 永遠不會轉到 forwarders 去問, 有什麼好擔心的? forwarders 是用在查詢非你定義的 zone 才會使用的.

有些東西實際上很簡單的, 不要用複雜的想法去處理, 我覺得你的需求都是很簡單的 bind 使用, 為什麼一定要把它複雜化?

fairyzoro

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 請教一種特殊的企業用 DNS 配置
« 回覆 #27 於: 2011-12-20 11:22 »
      這裡我要向大家道歉,我犯了一個很嚴重很愚蠢的錯誤。
      在/etc/named.conf里,options確實是整體設置。但我之前錯誤的認為只要在options里設置了forward,下面的所有zone都會進行forward,造成內部區域無法解析。實際上這個想法是錯誤的。bind引用/etc/named.conf這個文件的時候,先看所有的zone,優先解析這些zone,如果這些zone在本地解析不了,才會在options進行forward來支援解析。
      我之所以會犯這個錯誤,一是沒有徹底了結文檔所致,而是之前做的驗證試驗還不夠嚴格。
      同時,我也在儘量避免這種情況的發生,這就是我爲什麽要發 http://phorum.study-area.org/index.php/topic,66752.0.html    這個帖子的原因。這個帖子的重點是 過程追蹤,如果有切實可行的方法,我就能花點時間來驗證dns查詢的順序或者說過程,不管是僅僅使用了本地cache還是被迫查詢了根節點,都能驗證一下的話,我也就會儘量少犯這種低級錯誤了。
      十分感謝各位的幫忙,尤其感謝twu2大大,不厭其煩的一遍又一遍的幫我指正錯誤,非常感謝。
      非常抱歉佔用大家的寶貴時間。