作者 主題: 請教查詢其他主機IP的順序  (閱讀 10911 次)

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

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 於: 2004-08-26 10:53 »
請問~

當主機要查詢其他主機時~在Linux下不是會參考一個設定檔
/etc/nsswitch.conf
如果在裡面設定了
hosts:      files dns

是不是表示查詢順序先查/etc/hosts再查dns?

現在我遇到一個問題是我在/etc/hosts已經設定了某主機的IP~
在用traceroute去跑時也是依我在/etc/hosts裡的設定

但是當在送mail時~~就沒有依/etc/hosts裡的設定去跑~
而是依DNS去跑~

有人知道原因嗎? 是不是我的觀念錯了~~
謝謝

jou

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 4989
  • 性別: 男
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #1 於: 2004-08-26 11:13 »
Bind 查詢的順序好像是定義在 /etc/host.conf
內容 order hosts,bind
這樣就會先查 /etc/hosts,找不到再查 DNS server。

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #2 於: 2004-08-26 12:54 »
引述: "jou"
Bind 查詢的順序好像是定義在 /etc/host.conf
內容 order hosts,bind
這樣就會先查 /etc/hosts,找不到再查 DNS server。


感謝回應~~我目前的設定也是如此(order hosts,bind)

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
請教查詢其他主機IP的順序
« 回覆 #3 於: 2004-08-26 18:17 »
看一下 /etc/nsswitch.conf , 找 hosts 那行看看?

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #4 於: 2004-08-27 09:04 »
引述: "netman"
看一下 /etc/nsswitch.conf , 找 hosts 那行看看?


感謝回應~~設定如下:
引用

#hosts:     db files nisplus nis dns
hosts:      files dns


還有那個地方要檢查呢?

jameslfp

  • 懷疑的國中生
  • **
  • 文章數: 35
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #5 於: 2004-08-27 10:20 »
當 /etc/nsswitch 不存在時,才參考 /etc/host.conf 這個設定...

但/etc/nsswitch 通常預設的查詢順序是 file,也就是/etc/hosts

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #6 於: 2004-08-27 10:51 »
引述: "jameslfp"
當 /etc/nsswitch 不存在時,才參考 /etc/host.conf 這個設定...

但/etc/nsswitch 通常預設的查詢順序是 file,也就是/etc/hosts



感謝回應~

但是現在奇怪的就是~我的/etc/hosts設定如下:
引用

127.0.0.1               localhost.localdomain localhost
192.168.1.24            ns2.starworld.com.tw    ns2


但是送信時就是會往外繞一圈在送回來~~
(跑DNS的設定~~)
 :o

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
請教查詢其他主機IP的順序
« 回覆 #7 於: 2004-08-27 10:57 »
將你的如下命令列結果出來:
ifconfig
route -n
ping ns2.starworld.com.tw
traceroute -n ns2.starworld.com.tw

slake

  • 懷疑的國中生
  • **
  • 文章數: 46
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #8 於: 2004-08-27 11:02 »
送mail時會查有無mx記錄,所以會去查dns

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #9 於: 2004-08-27 11:19 »
引述: "netman"
將你的如下命令列結果出來:
ifconfig
route -n
ping ns2.starworld.com.tw
traceroute -n ns2.starworld.com.tw


ifconfig
引用
eth0      Link encap:Ethernet  HWaddr 00:50:BA:00:83:AA
          inet addr:192.168.1.23  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:437837 errors:0 dropped:0 overruns:0 frame:0
          TX packets:407107 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:217128808 (207.0 Mb)  TX bytes:235353389 (224.4 Mb)
          Interrupt:10 Base address:0xe400

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:25737 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25737 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2037133 (1.9 Mb)  TX bytes:2037133 (1.9 Mb)


route -n
引用

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.1.2     0.0.0.0         UG    0      0        0 eth0


traceroute -n ns2.starworld.com.tw
引用

traceroute to ns2.starworld.com.tw (192.168.1.24), 30 hops max, 38 byte packets
 1  192.168.1.24  0.473 ms  0.294 ms  0.290 ms


引用

PING ns2.starworld.com.tw (192.168.1.24) 56(84) bytes of data.
64 bytes from ns2.starworld.com.tw (192.168.1.24): icmp_seq=1 ttl=64 time=0.346 ms
64 bytes from ns2.starworld.com.tw (192.168.1.24): icmp_seq=2 ttl=64 time=0.286 ms
64 bytes from ns2.starworld.com.tw (192.168.1.24): icmp_seq=3 ttl=64 time=0.297 ms


感謝~~

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
請教查詢其他主機IP的順序
« 回覆 #10 於: 2004-08-27 11:23 »
okay, 現階段可確定 routing 上不會跑到外面去,
接下來要看 email 的遞送了:
host -t mx ns2.starworld.com.tw
host -t mx starworld.com.tw

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #11 於: 2004-08-27 11:37 »
引述: "netman"
okay, 現階段可確定 routing 上不會跑到外面去,
接下來要看 email 的遞送了:
host -t mx ns2.starworld.com.tw
host -t mx starworld.com.tw


引用

[root@ns1 MailScanner]# host -t mx starworld.com.tw
starworld.com.tw mail is handled by 30 mx1.starworld.com.tw.
starworld.com.tw mail is handled by 10 mx2.starworld.com.tw.


嗚....該不會要用bind view才行吧~~.... :o

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #12 於: 2004-08-27 11:38 »
引述: "wilson"
引述: "netman"
okay, 現階段可確定 routing 上不會跑到外面去,
接下來要看 email 的遞送了:
host -t mx ns2.starworld.com.tw
host -t mx starworld.com.tw


引用

host -t mx ns2.starworld.com.tw -----沒東西

[root@ns1 MailScanner]# host -t mx starworld.com.tw
starworld.com.tw mail is handled by 30 mx1.starworld.com.tw.
starworld.com.tw mail is handled by 10 mx2.starworld.com.tw.


嗚....該不會要用bind view才行吧~~.... :o

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17463
    • 檢視個人資料
    • http://www.study-area.org
請教查詢其他主機IP的順序
« 回覆 #13 於: 2004-08-27 11:46 »
接下來:
host -t A mx1.starworld.com.tw.
host -t A mx2.starworld.com.tw.

奇怪, starworld.com.tw 的信不會送給 ns2.starworld.com.tw 啊,
為何你一直問 ns2.starworld.com.tw 呢?

bind view 是個很好的解決方法!

jou

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 4989
  • 性別: 男
    • 檢視個人資料
Re: 請教查詢其他主機IP的順序
« 回覆 #14 於: 2004-08-27 11:46 »
引述: "wilson"
但是當在送mail時~~就沒有依/etc/hosts裡的設定去跑~
而是依DNS去跑~

對不起! 我有點好奇。 ^_^
請問您是怎麼判定信件向外繞一圈再進的來的?
捉封包看的嗎?

jou

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 4989
  • 性別: 男
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #15 於: 2004-08-27 11:49 »
咦! @_@
ns2 <--> mx2 ??

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
Re: 請教查詢其他主機IP的順序
« 回覆 #16 於: 2004-08-27 11:51 »
引述: "jou"
引述: "wilson"
但是當在送mail時~~就沒有依/etc/hosts裡的設定去跑~
而是依DNS去跑~

對不起! 我有點好奇。 ^_^
請問您是怎麼判定信件向外繞一圈再進的來的?
捉封包看的嗎?


喔~~因為我把外部進來的連線擋掉~~
這時ns1就會有出線[Public-IP] Connect time out的訊息~
所以......

jou

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 4989
  • 性別: 男
    • 檢視個人資料
Re: 請教查詢其他主機IP的順序
« 回覆 #17 於: 2004-08-27 12:49 »
引述: "wilson"
喔~~因為我把外部進來的連線擋掉~~
這時ns1就會有出線[Public-IP] Connect time out的訊息~
所以......

咦! 這時怎麼會出現 [Public-IP],就不對了,是不是?
有一個觀念不知對不對?
/etc/hosts 只對本機的先後查詢有效?
如果您是在 client 端作以上的測試,那作用的應該是在 client 的 /etc/hosts 然後是 DNS server ,
而不是主機端的 /etc/hosts?

jou

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 4989
  • 性別: 男
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #18 於: 2004-08-27 13:40 »
嘻嘻!! 做了一下實驗。
在本機 /etc/hosts 中加入了一行
192.168.0.1      tw.yahoo.com     yahoo
然後開瀏覽器打入 tw.yahoo.com 。
傑克! 這真是太神奇了!! ^^

結論: 程式有照意思走!!
結論的結論: 這是什麼爛結論!! ^^

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #19 於: 2004-08-27 15:19 »
引述: "jou"
咦! @_@
ns2 <--> mx2 ??


ns2=mx2

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
Re: 請教查詢其他主機IP的順序
« 回覆 #20 於: 2004-08-27 15:24 »
引述: "jou"
引述: "wilson"
喔~~因為我把外部進來的連線擋掉~~
這時ns1就會有出線[Public-IP] Connect time out的訊息~
所以......

咦! 這時怎麼會出現 [Public-IP],就不對了,是不是?
有一個觀念不知對不對?
/etc/hosts 只對本機的先後查詢有效?
如果您是在 client 端作以上的測試,那作用的應該是在 client 的 /etc/hosts 然後是 DNS server ,
而不是主機端的 /etc/hosts?


jou兄~
我的情況是這樣的~
ns1(192.168.1.23)要送信給ns2(192.168.1.24)~我希望它是直接送給ns2
而不是查詢DNS後去跑public_ip再繞回到firewall(firewall再轉給ns2)
 :P

可能如slake兄所提的~送mail會先去查MX吧~
還是.....

jou

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 4989
  • 性別: 男
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #21 於: 2004-08-27 15:36 »
可是我做的那個實驗就是利用 www 來測,是先查 /etc/hosts 還是先查 DNS server 呀!! ^_^
我改 192.168.0.211(這一台目前是我的哈啦打屁機) 的 /etc/hosts 加了一筆
192.168.0.1 tw.yahoo.com yahoo
^^^^^^^^^^^ 這一台是我公司的 www 主機(這是對內 IP)
我打了 tw.yahoo.com 後,秀出公司的網頁。
所以我下了結論!
是先 /etc/hosts 再 DNS server!
您要不要先把這個問題排除,再來找 mail 的問題?
必竟,Mail 難多了。

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #22 於: 2004-08-27 15:37 »
目前的做法是:
把ns1的DNS指向內部的DNS~~
(之前是指向seednet~)
再內部DNS上加上ns2的記錄.....
謝謝大家~~ :P

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #23 於: 2004-08-27 15:39 »
引述: "jou"
可是我做的那個實驗就是利用 www 來測,是先查 /etc/hosts 還是先查 DNS server 呀!! ^_^
我改 192.168.0.211 的 /etc/hosts 加了一筆
192.168.0.1 tw.yahoo.com yahoo
^^^^^^^^^^^ 這一台是我公司的 www 主機(這是對內 IP)
我打了 tw.yahoo.com 後,透出公司的網頁。
所以我下了結論!
是先 /etc/hosts 再 DNS server!
您要不要先把這個問題排除,再來找 mail 的問題?
必竟,Mail 難多了。


有阿~我有確定過了~(小弟第一篇就有寫了)
如我上面貼的東西一樣(traceroute......)

從ping 跟 traceroute來測都是跑我/etc/files的設定~
唯讀mail不是~~

jou

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 4989
  • 性別: 男
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #24 於: 2004-08-27 15:55 »
引述: "wilson"
有阿~我有確定過了~(小弟第一篇就有寫了)
如我上面貼的東西一樣(traceroute......)

從ping 跟 traceroute來測都是跑我/etc/files的設定~
唯讀mail不是~~

 :oops:  原來是我一開始就沒把問題看清楚。
造成我有灌水的嫌疑了! 拍謝! 拍謝!

這樣看來 bind view 應該是最好的解決方法了?
如果是有很多台要互寄的話。

wilson

  • 俺是博士!
  • *****
  • 文章數: 1821
  • 帥氣柴老大
    • 檢視個人資料
請教查詢其他主機IP的順序
« 回覆 #25 於: 2004-08-27 16:05 »
引述: "jou"
引述: "wilson"
有阿~我有確定過了~(小弟第一篇就有寫了)
如我上面貼的東西一樣(traceroute......)

從ping 跟 traceroute來測都是跑我/etc/files的設定~
唯讀mail不是~~

 :oops:  原來是我一開始就沒把問題看清楚。
造成我有灌水的嫌疑了! 拍謝! 拍謝!

這樣看來 bind view 應該是最好的解決方法了?
如果是有很多台要互寄的話。


呵~不會啦~~還要感謝您一起討論呢!

反正有現成內部DNS~就先不用到view了~ :P