kuohal
2008-03-30, 11:34 AM
小弟最近使用Linux 架DNS ,用Windows 2003 架FTP,但問題來了, 要怎麼搭配使FTP在DNS上被找到?
贊助商連結
贊助商連結
贊助商連結 kuohal 2008-03-30, 11:34 AM 小弟最近使用Linux 架DNS ,用Windows 2003 架FTP,但問題來了, 要怎麼搭配使FTP在DNS上被找到? 贊助商連結 linux_xp 2008-03-30, 05:02 PM 樓主的問題敘述不夠清楚,但猜測是內部解析的問題 參考 "bind9 view" 功能,搜尋 google 就能找到資料 view 視界,是 bind9 的新功能 簡單的說:把解析分成來自「外部要求」和來自「內部要求」,會給於不同答案。 比方說: 外面 internet 的人,和這部 dns 查 ftp.my.com 回 11.22.33.44 內部區網的人和這部 dns 查 ftp.my.com 回 192.168.0.253 查的主機名稱都一樣,但 DNS 根據外部、內部給予不同答案,這樣做有什麼好處? 好處就是避免 NAT 、路由問題,讓內部透過閘道器上網的電腦,不必繞一圈,直接連到內部區網的伺服器。 如果這功能就是你要的,參考看看 named.conf 示範: // named.conf // 以下設定若有路徑,因有 chroot,所以用相對路徑,實際上是在 chroot 中 options { directory "/var/named"; // zone 檔存放位置 dump-file "/var/named/data/cache_dump.db"; // rndc dumpdb 產生檔案位置 statistics-file "/var/named/data/named_stats.txt"; // rndc stats 產生檔案位置 allow-query { any; }; // 允許查詢的位址 allow-transfer { none; }; // 是否允許傳送 zone (slave 用途) }; // rndc.key controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndckey"; }; }; // 定義網路名稱 acl "lan" { 192.168.0.0/24; }; // 供內部查詢用 view "internal" { match-clients { lan; }; // root zone (cache 必要) zone "." { type hint; file "named.root"; }; zone "ftp.my.com" { type master; file "named.ftp.my.com-internal"; }; }; // 供外部查詢用 view "external" { match-clients { any; }; zone "." { type hint; file "named.root"; }; zone "ftp.my.com" { type master; file "named.ftp.my.com-external"; }; }; 正反解析檔,寫法和一般的一樣,檔名需和宣告的相同 記得 rndc.key 好像要用一個程式來產生...具體請搜尋教學 view 視界功能,只需在 named.conf 設定即可 kuohal 2008-03-31, 03:11 PM 大大謝謝你,不過小弟的windows 2003 是不加入任何網域,是workgroup,這樣在linux dns有辦法作查詢嗎? linux_xp 2008-03-31, 04:12 PM 大大謝謝你,不過小弟的windows 2003 是不加入任何網域,是workgroup,這樣在linux dns有辦法作查詢嗎? 不太明白你的問題 是: 1. FTP (win2003) 要對外(網際網路)開放,並希望外面的人能從 url 例如:ftp.win2003.cc 查到這台 FTP 的位址嗎? 2.FTP 不對外開放,只是希望內部區網的人,能用打主機名稱,而非 IP 的方式,連到這台 FTP? ------------------------------------------------- 如果是 1. 的話 需去註冊網域 (domain name),美國網域比較便宜一年約 10美金,台灣網域一年約 NT$1,000 元。 或是用「轉址」的方式,有些網站提供免費轉址,但是要掛別人的網域。 然後,如果 FTP 是在內部區網 NAT 裡面(IP 分享器、閘道器下),需要開 port 轉換,或是 DMZ。將外面的連線要求,轉到那台 win2003。 ----------------------------------------------- 如果是 2. 的話: bond9 的 view 做對內查詢即可,對外可省略 因為這台 dns 主機是你的,所以你可以任意設定資料,網域名稱要取什麼都可以,但是只有去查詢它的人才有效。 所以內部電腦,都要設定這台 dns 為第一優先。 Linux named 服務,同時具有快取功能 內部電腦將它設為 dns 第一優先 也就是說,當使用者在網址列不管打什麼東西的時候 第一會去找這台 Linux dns 要解析資料 如果它有資料就直接回報 沒有資料才會繼續往外查詢,並快取資料 24 小時。 例如: 你也可以把 google.com 的正解析 IP,改成 yahoo.com 的 IP 當有人用你的 dns 來解析網址,就會變成他明明是查 google,卻跑到 yahoo.... 前提是要有人用你的 dns 當第一優先 當然內部區網內電腦是你管理的,就可以這樣設 把自己架設的 dns 當第一優先,那麼什麼網址,要解析成什麼 IP 都是隨意控制囉,只是正向解析檔資料改一改而已 kuohal 2008-03-31, 04:49 PM 抱歉小弟描訴不清楚,小弟的意思是.用linux架一台 dns 是對外的 ns.xxx.idv.tw, 用windows 2003 架ftp 也是對外 ftp.xxx.idv.tw但win 2003 是在工作群組workgroup 而不是在網域 xxx.idv.tw裡,電腦名稱ftp,這樣linux dns有辦法讓對外查詢到這台電腦嗎,還是在dns設定ip 對應win2003 ? linux_xp 2008-03-31, 06:28 PM 抱歉小弟描訴不清楚,小弟的意思是.用linux架一台 dns 是對外的 ns.xxx.idv.tw, 用windows 2003 架ftp 也是對外 ftp.xxx.idv.tw但win 2003 是在工作群組workgroup 而不是在網域 xxx.idv.tw裡,電腦名稱ftp,這樣linux dns有辦法讓對外查詢到這台電腦嗎,還是在dns設定ip 對應win2003 ? 假設 IP 是 11.22.33.44 且只有一個 Public IP 正解檔 named.xxx.idv.tw $TTL 1D @ IN SOA ns.xxx.idv.tw. webmaster.xxx.idv.tw. ( 2008033101 ; Serial 8H ; Refresh 4H ; Retry 8D ; Expire 1D ) ; Minimum @ IN NS ns.xxx.idv.tw. @ IN MX 10 mail.xxx.idv.tw. @ IN A 11.22.33.44 ns IN A 11.22.33.44 mail IN CNAME ns www IN CNAME ns ftp IN CNAME ns ※ 如果有多個 Public,可以都設 A 紀錄上去 在單一 Public IP 的情況下,內部上網一定是透過 NAT 外面進來的連線,首先會到閘道器 在那台閘道器要設「PORT 轉換」或「DMZ」 將連線引導到放在內部區網的 FTP 主機 ftp port 資料 (擷取字 /etc/service ) --------------------------------------------------- ftp-data 20/tcp ftp-data 20/udp # 21 is registered to ftp, but also used by fsp ftp 21/tcp ftp 21/udp fsp fspd --------------------------------------------- 理論上 DNS 都是直接對外的,那閘道主機大概是那台 Linux 若不是的話(例如是用 IP分享器、路由器),DNS 也要 轉埠 或 DMZ (TCP/UDP 53),以供外面查詢 >>WIN2003 是在工作群組workgroup 而不是在網域 xxx.idv.tw裡... 其實那和電腦主機名稱、工作群組都沒關係 win平台的 電腦主機名稱,工作群組,是用在 netBIOS、smb ...這些內部傳輸用途上面 Internet 上的 TCP/IP 連線,實際上都是 IP,只要打 IP 就會通了 dns 是負責把 domain name 轉成 IP 因為 IP 數字不人性化,人類不易記憶,都記 domain name 但對網路設備、電腦這些機器來說,它們只認 IP,不認網域名稱、電腦名稱、工作群組這些有的沒的,就是只有 IP 這一項而已 kuohal 2008-03-31, 07:09 PM 大大再次謝謝你,這樣我大概知道了,不過小弟還有個疑問,就是假如有用IE或FTP軟體打ftp://ftp.xxx.idv.tw,而不是打IP, 這樣的話也是有辦法對到我的win 2003嗎? linux_xp 2008-04-01, 12:23 AM 大大再次謝謝你,這樣我大概知道了,不過小弟還有個疑問,就是假如有用IE或FTP軟體打ftp://ftp.xxx.idv.tw,而不是打IP, 這樣的話也是有辦法對到我的win 2003嗎? ftp://ftp.xxx.idv.tw 這個 URL 可以拆成兩部份看 前面的 ftp://、http://、telnet:// 是通訊協定 用途是告訴瀏覽器,此次連線要用什麼通訊協定 後面的 ftp.xxx.idv.tw 是主機位址 只要 DNS 能正確解析網址的 IP,就能連上 (當然你那邊 NAT 轉埠、DMZ 都要設好) --------------------------------------------------------- 其實你的問題,主要是在 DNS 觀念沒有很全 若能想通 DNS 是如何運作,問題即可迎刃而解 談到解析 ftp.xxx.idv.tw 首先假設大部分人都用 168.95.1.1 這個 hinet 的 DNS 當使用者網址打:ftp://ftp.xxx.idv.tw 的時候 他的電腦會先去問 168.95.1.1 (hinet DNS) ftp.xxx.idv.tw 是誰?IP 多少? hinet DNS 要如何知道 xxx.idv.tw 這個網域是你的 IP? 其實 hinet dns 不知道 關鍵就是在你註冊網域的時候,會給網域註冊商一個 IP hinet DNS 會先查它自己的快取 若沒資料 ---> 往 . 根伺服器查(全球 48台)問 tw. 誰管理? 得知答案:twnic 管理的 繼續往 twnic 查 ---> idv.tw. 誰管理的? 得知答案:idv.tw. 仍是 twnic 管理 繼續查 ---> xxx.idv.com. 誰管理的? 呵呵,這裡就是關鍵了,xxx.idv.com. 你管理的! (你的 DNS) 連線繼續來到 你的 DNS,繼續查 --- > ftp.xxx.idv.tw. IP位址為何? 答案就在你 DNS 的正解檔 查到這裡的時候,hinet dns 終於知道 ftp.xxx.idv.tw 的 IP 多少了,然後回報給使用者的電腦 查了老半天,只為了一件事:使用者的電腦需要知道 ftp.xxx.idv.tw 的 IP 多少,因為它等會要用 IP 去連線 簡單的說 人類記網址 (好記),輸入網址 但是電腦機器,是看不懂網址的,機器只認 IP 那麼電腦機器要如何把「網址(網域)」轉成「IP」? 就是透過 DNS 機制 換言之: 網址打 ftp://ftp.xxx.idv.tw 和打:ftp://11.22.33.44 最終都是一樣的效果,差別只在電腦需不需要去查 dns 查到了,瀏覽器實際上仍是用 ftp://11.22.33.44 去連線的 查不到就是 unkonw domain name,無法連線,問題出在 dns ----------------------------------------------------- 再來談一下「轉埠」和「DMZ」 因為不確定樓主是否瞭解,所以提一下,若已經知道,請略過 好比說 BT 下載、電驢,是不要開 PORT(轉埠)下載才會快? 這是為了讓外面的連線,能直接進入那台內部的電腦 又好比「遠端桌面」「遠端控制」、VNC ....之類的 是不是要開 PORT ,或 DMZ,外面才能連到那台電腦? 這也是為了讓外面連線,能直接進入那台電腦 同樣的 ftp 服務...或其它服務 若主機架在區網內,沒有 public IP,就需要轉埠 或 DMZ 因為它沒有 public IP(真實IP) 外面 ineternet 是連接不上的 而透過 NAT 轉埠/DMZ,實際上就是讓閘道器把連線轉進來 閘道器等於是接線生這樣子 kuohal 2008-04-01, 04:34 PM 大大謝謝你,就如你所說我對DNS概念沒有完全懂,還告訴我這麼多概念. |
|