2/08/2554

ตั้ง DNS แบบให้เรียกเครื่องในวงแลนก่อนไม่ได้ครับ

สวัสดีครับ ผมมีปัญหาดังนี้ครับ
  ผมมี gateway server เป็น ubuntu server 8.04+chillisopt ควบคุมเครื่องในห้องเรียน 20 เครื่อง
  และมีอีก1เครื่องเป็นwindow server 2003+iis เพื่อทำเป็น web server ภายในและให้นักเรียน ftp เข้ามาเก็บไฟล์ไว้ โดยอ้างอิง http://stuweb/รหัสนักเรียนคนนั้นๆ (stuweb คือ computer nameของเครื่องiis)
  เมื่อเทอมที่แล้วก็สามารถใช้งานได้ตามปกติดี พอเปิดเทอมมา(ปิดเทอมก็ปิดเครื่องไม่ได้ไปยุ่งอะไรเลย)ก็ไม่สามารถเรียกใช้ งานได้(มันขึ้นประมาณว่าไม่รู้จักชื่อนี้) ต้องผ่านทาง ip address ของเครื่องiis จึงจะสามารถใช้งานได้
  ลองเข้าทาง start->run-> \\stuweb ก็เข้าได้ แต่ ping stuweb มันกลับออกไปข้างนอก wfb.zoneedit.com [62.72.142.98] (เดาว่าน่าจะเป็นweb เกี่ยวกับ dns)
  ผมก็เข้าไปหาข้อมูลทั้่ง google และที่นี่ ก็ได้คำตอบว่าจะต้องตั้ง DNS เป็นของตนเอง  ผมลองหาวิธีติดตั้งจนได้ของคุณ WIPAT จาก
 http://opensource.cc.psu.ac.th/%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87_bind_%E0%B8%9A%E0%B8%99_ubuntu
  ซึ่งจากเท่าที่อ่าน dns จะมี2รูปแบบคือ forward only และ caching only ผมสามารถทำแบบ forward only ได้แล้ว แต่ caching only ยังไม่ได้
  ผมกำหนดโดยเครื่อง gateway ให้เป็น www.sturoom.com(192.168.0.1) และเครื่อง iis ให้เป็น stuweb.sturoom.com(192.168.0.2)
  คำถามครับ
   1. ทำไมเมื่อก่อนเรียกจากชื่อเครื่องได้ แต่ตอนนี้ทำไมทำไม่ได้ ลอง restart ทั้ง gateway และ iis หลายรอบแล้ว
   2. การตั้ง private domain (sturoom.com) เพื่อใช้เฉพาะในวงแลน และให้ DNS ชี้มาที่นี่ก่อนแล้วค่อยออกไปข้างนอก ทำให้ระบบของเราช้าลงมากหรือไม่ครับ
   3. จากความต้องการนี้ ผมใช้ webข้างต้น ของคุณ WIPAT อ้างอิงในการติดตั้งได้มั๊ยครับ หรือมี link อื่นแนะนำมั๊ยครับที่ตรงกับความต้องการของผม
   4. ในกรณีนี้เครื่อง iis จะต้อง fix ip เท่านั้นใช่มั๊ยครับ เพื่อให้ dns ชี้มาถูกต้อง / เครื่อง iisมันสามารถอยู่บน dynamic ip ได้มั๊ยครับ(เพราะถูกแจก ip จาก chillispot) ถ้าได้จะต้องทำอย่างไรครับ
--------------------------------------------------------------------------------

ตอบนะครับ
1. ผมไม่ทราบนะครับ น่าจะเกี่ยวกับ DNS ของระบบ
2. ไม่ช้าครับ แถม จะเร็วขึ้นด้วยซ้ำ เพราะ การตั้ง DNS ไว้ที่ local จะเหมือนทำ cache ไปในตัวครับ เวลาที่ Name Server ไปเรียกดู ip ของ โดเมนนอกแล้ว มันก็จะเก็บ cache ไว้ตามแต่ TTL ในแต่ละ Domain จะกำหนดไว้ครับ
3. ได้ครับ สำหรับ ubuntu อยากให้อ่านเว็บนี้เพื่อประกอบความเข้าใจครับ http://blog.apho.info/2007/06/bind-most-poppular-domain-name-server.html
4. ต้อง Fix เท่านั้นครับ หรือ กำหนด DHCP ให้ Fix lease สำหรับ iis ไว้ก็ได้

==============================================

จากเอกสารของคุณ WIPAT ผมสรุปและปรับเป็นของผมได้ดังนี้ครับ (ก็ยังไม่ได้ครับ ช่วยลองดูให้หน่อยครับว่าผิดตรงไหน ช่วยแนะนำด้วยครับ)
1. ที่ไฟล์ resolv.conf โดยแทรก nameserver 127.0.0.1 ก่อน nameserver ของ DNS
2. ที่ไฟล์ named.conf.options ทำ comment/ลบ คำสั่ง forward first;
3. ที่ไฟล์ named.conf.local เพิ่มท้ายไฟล์ ดังนี้
zone "sturoom.com" {
   type master;
   allow-query { any;};
   file "/etc/bind/sturoom.zone"
};
zone "sturoom.com"  {
   type master;
   file "/etc/bind/192-168-0.zone"
};
4. สร้างไฟล์ชื่อ sturoom.zone ใน /etc/bind ให้มีข้อมูลดังนี้
$TTL 3D
@ IN SOA localhost. root.localhost (
   200611146 ; serial (d. adams)
   3H ;refresh
   15M ;retry
   1W ;expiry
   1D ) ;minimum
 NS ns
localhost A 127.0.01
ns A 192.168.0.1
stuweb A 192.168.0.2
5. สร้างไฟล์ชื่อ 192-168-0.zone ใน /etc/bind ให้มีข้อมูลดังนี้
$TTL 3D
@ IN SOA localhost. root.localhost (
   200611146 ; serial (d. adams)
   3H ;refresh
   15M ;retry
   1W ;expiry
   1D ) ;minimum
 NS ns
NS 202.129.27.135  <-- เป็น dns ของ กสท. ครับ
205 PTR stuweb.sturoom.com.
-----
เรียบร้อยครับ ผมปรับเป็นของผมทำเท่านี้ แล้วก็ restart dns ใหม่ ก็ยังไม่ได้ครับ ช่วยดูให้หน่อยครับ
สำหรับการ DHCP ให้ Fix lease นั้นทำอย่างไรครับ มี Link แนะนำให้อ่านก่อนมั๊ยครับ

============================================

ที่ resolv.conf เนี่ย ใส่แค่ 127.0.0.1 อันเดียว
แต่ให้ไปตั้ง forwarder ที่ named.conf.options ครับ

ดังนั้น การ lookup ip มันจะมองหาภายในก่อน หากไม่เจอ จึงจะตามไปหาที่ dns ที่กำหนดใน forwarder ครับ

เอางี้ดีกว่า ผมจะลองปรับดูนะครับ
ไฟล์ named.conf.local ผมแก้ของคุณเป็นดังนี้
สังเกตุ zone 0.168.192.in-addr.arpa นะครับ
ตัวนี้เป็น Reverse Lookup Zone ครับ ต้องกำหนด ตามนี้เท่านั้น
คือ กลับ เน็ตเวิร์คบิต จาก 192.168.0 เป็น 0.168.192 แล้วตามด้วย .in-addr.arpa 
เพราะเป็นข้อกำหนดครับ

Code: [Select]
zone "sturoom.com" {
   type master;
   allow-query { any;};
   file "/etc/bind/sturoom.zone"
};
zone "0.168.192.in-addr.arpa"  {
   type master;
   file "/etc/bind/192-168-0.zone"
};


ไฟล์ sturoom.zone นะครับ
(เป็นไฟล์ที่กำหนดว่า ชื่อไหนเป็น IP อะไรเช่น www.sturoom.com = 192.168.0.2)
Code: [Select]
$TTL 3600        ; 1 hour
sturoom.com.    IN      SOA      ns1.sturoom.com. root.ns1.sturoom.com. (
        20100603    ; Serial
        3600    ; Refresh
        900    ; Retry
        3600000    ; Expire
        3600 ; Minimum
)

  IN      A      192.168.0.1

; ชื่อของ โดเมนเนม Server
  IN      NS      ns1.sturoom.com.

; ชื่อ host ของ mail exchang สำหรับ รับส่งเมล์
  IN      MX 10   mail.sturoom.com.

; ชื่อ host ต่าง ๆ ภายใน Domain ของเราที่ต้องการ map กับ IP ใด ๆ
localhost        IN      A       127.0.0.1
ns1              IN      A       192.168.0.2
mail             IN      A       192.168.0.3
mx               IN      A       192.168.0.4

www              IN      A       192.168.0.2


ไฟล์ 192-168-0.zone เป็น reverse lookup นะครับ จำเป็นหากต้องการทำตัวเป็น Name Server ไฟล์นี้มีไว้กำหนดว่า IP ไหน ชื่ออะไร (สังเกตุว่าจะตรงข้ามกับ sturoom.com ที่กำหนด ชื่อ เป็น IP)
Code: [Select]
$TTL 3600

0.168.192.in-addr.arpa. IN SOA ns1.sturoom.com. root.ns1.sturoom.com. (
        20070628    ; Serial
        3600    ; Refresh
        900    ; Retry
        3600000    ; Expire
        3600 ; Minimum
)

     IN      NS      ns1.sturoom.com.
; เปลี่ยน IP เป็น host name โดยที่ ตัวเลขข้างหน้า จะไปต่อท้าย 192.168.0.
1       IN      PTR     sturoom.com.
2       IN      PTR     ns1.sturoom.com.
3       IN      PTR     mail.sturoom.com.
4       IN      PTR     mx.sturoom.com.

2       IN      PTR     [url=http://www.sturoom.com]www.sturoom.com[/url].

สุดท้าย dns ของ กสท ต้องกำหนดเป็น forwarder นะครับ

ไฟล์ named.conf.options

Code: [Select]
options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        forwarders {
        // กำหนด DNS ของ กสท  ไว้ที่นี่ (หรือ DNS อื่นได้ที่นี่ บรรทัดละตัว จบด้วยเครื่องหมาย ; [เซมิโคลอน] )
                202.129.27.135;

        };

        allow-query {
                any;
        };

        auth-nxdomain yes;    # conform to RFC1035
        #listen-on-v6 { any; };
};


ทีนี้กำหนด name server ของเครื่องลูก เป็น IP ของเครื่องนี้
เวลาจะเรียกเครื่อง sturoom ก็เรียก http://www.sturoom.com

ยังยืนยันให้ไปอ่าน ที่นี่ : http://blog.apho.info/2007/06/bind-most-poppular-domain-name-server.html
ครับ การวางไฟล์อาจจะไม่เหมือนกัน แต่ทางด้านการคอนฟิกแล้ว แบบเดียวกันครับ

============================================

ขอบคุณคุณ aphorist อีกครั้งครับ
  ผมทดลองตามแบบที่แนะนำก็ยังไม่ได้ครับ ลองเรียกจาก nslookup เกิด error ดังนี้
$nslookup www.sturoom.com
Server:  127.0.0.1
Address: 127.0.0.1#53
** Server can't find www.sturoom.com: NXDOMAIN
$nslookup 192.168.0.1
Server:  127.0.0.1
Address: 127.0.0.1#53
** Server can't find 1.0.168.192.in.addr.arpa: SERVFAIL

แต่ผมพบปัญหาใหม่แล้วครับ จากที่แนะนำคือให้ไปกำหนด name server จากเครื่องลูก เป็น IP ของเครื่องนี้ ปรากฎว่ายังเป็น dns ของ กสท.
นึก ไปนึกมาว่า ก็เราให้ได้รับแจกจาก chilli เลยไปแก้ไขที่ chilli.conf ดังนี้ จาก dns1 202.129.27.135 (dns ของกสท.) เป็น dns1 127.0.0.1 แล้ว restart gateway ใหม่ ผลที่ได้คือ ที่เครื่องลูกได้รับ dns เป็น 192.168.0.1 แล้วครับ แต่เปิดหน้าwebจากชื่อเว็บไม่ได้ ต้องเปิดจากip แต่กลับมาที่เครื่อง gateway ซึ่งลง bind9 ที่เรากำลังทำอยู่ลอง  โดยใช้คำสั่ง nslookup www.google.co.th ก็ OK ได้รับ ip ปกติ หรือลองชื่อเว็บทั่วๆไปก็ปกติ แต่ nslookup www.sturoom.com ก็ยังไม่ได้เหมือนเดิม
ผม จะแก้ไขปัญหาไหนก่อนดีครับ และแก้ไขอย่างไรดีครับ (ใน named.conf.local,sturoom.zone,192-168-0.zone ผมคิดว่าไม่น่าจะพิมพ์ผิดแล้วนะครับ เพราะลองตรวจหลายรอบแล้ว)


========================================

ขอโทษครับ มือไวไปหน่อย แก้ไขเป็นดังนี้ครับ
กสท.---gateway(chilli+dns)(ip วงใน 192.168.0.1)---hub--- iis (192.168.0.2)
                (www.sturoom.com)                              |       (stuweb.sturoom.com)
                                                                 client (192.168.0.xx)
ปล.ผมติดเสาร์-อาทิตย์ครับ วันจันทร์จะเข้ามาดูใหม่ครับ(ไม่มีnet)

0 ความคิดเห็น:

แสดงความคิดเห็น