nslookup ค้นหา ip แต่ ping ไม่ได้


53

ฉันรู้ว่านี่ดูเหมือนว่าคำถามอื่น ๆ "สามารถ ping ผ่าน ip แต่ไม่ใช่ DNS" แต่คำถามเหล่านั้นไม่ได้ช่วยฉันจริงๆเลย

นอกจากนี้การมีไฟล์โฮสต์ในเครื่องทั้งหมดไม่สามารถทำได้เนื่องจากเซิร์ฟเวอร์นี้จะจัดการกับคอมพิวเตอร์จำนวนมากที่เชื่อมต่อกับมัน

ฉันมีชุดเซิร์ฟเวอร์ ldap + dns และฉันต้องการให้คอมพิวเตอร์ในเครือข่ายของฉันตรวจสอบสิทธิ์บนเซิร์ฟเวอร์ ldap

ส่วน ldap ของมันทำงานได้ดีและฉันสามารถ ssh ลงในเซิร์ฟเวอร์ ldap ที่มีหนังสือรับรอง ldap ได้ดี

ปัญหามาพร้อมกับเครื่องไคลเอนต์ไคลเอนต์ถูกตั้งค่าให้ใช้เซิร์ฟเวอร์ dns (ในกรณีนี้ 192.168.0.243) และถ้าฉันได้รับใน terminal และทำ nslookup พบว่าเซิร์ฟเวอร์ ldap ได้ดี

fernando@desktest:~$ nslookup ldap.mynet.local
Server:     192.168.0.243
Address:    192.168.0.243#53

Name:   ldap.mynet.local
Address: 192.168.0.243

แต่เมื่อฉัน ping มันไม่พบที่อยู่ IP มันแขวนอยู่ตรงนั้นดูสวยจนกระทั่งฉัน CTRL-C มัน

แน่นอนว่าการส่ง Ping โดยที่อยู่ IP นั้นใช้งานได้ดี

นี่คือไฟล์โซนสำหรับเซิร์ฟเวอร์ dns:

fernando@ldap:~$ cat /etc/bind/named.conf.local
zone "mynet.local" {
    type master;
    file "/etc/bind/db.mynet.local";
};

zone "0.168.192.in-addr.arpa" {
    type master;
    notify no;
    file "/etc/bind/db.192";
};
fernando@ldap:~$ cat /etc/bind/db.mynet.local 
;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns.mynet.local. root.mynet.local. (
                  7     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
         604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.mynet.local.
ns  IN  A   192.168.0.243
server  IN  A   192.168.0.250
desktest    IN  A   192.168.0.249
remote  IN  A   192.168.0.248
winserver   IN  A   192.168.0.247
web         IN  A   192.168.0.246
tempfs  IN  A   192.168.0.245
ldap    IN  A   192.168.0.243
antenarfb   IN  A   192.168.0.253
antenapan   IN  A   10.82.223.7
adslgvt IN  A   192.168.0.1
fernando@ldap:~$ cat /etc/bind/db.192 
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@   IN  SOA mynet.local. root.mynet.local. (
                  6     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.
1   IN  PTR ns.mynet.local.
2   IN  PTR server.mynet.local.
3   IN  PTR desktest.mynet.local.
4   IN  PTR remote.mynet.local.
5   IN  PTR winserver.mynet.local.
6   IN  PTR web.mynet.local.
7   IN  PTR tempfs.mynet.local.
8   IN  PTR ldap.mynet.local.
9   IN  PTR antenarfb.mynet.local.
10  IN  PTR antenapan.mynet.local.
11  IN  PTR adslgvt.mynet.local.
fernando@ldap:~$ 

ฉันกำลังสูญเสียเกี่ยวกับสิ่งที่ต้องทำและความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมาก

---- แก้ไข ----

ก่อนใครถามว่าใช่เซิร์ฟเวอร์กำลังทำงานอยู่ :)

root@ldap:/etc/bind# rndc status
version: 9.7.0-P1
CPUs found: 1
worker threads: 1
number of zones: 16
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

---- สิ้นสุดการแก้ไข ----


หลังจากการทดสอบเพิ่มเติมฉันค่อนข้างแน่ใจว่าฉันกำลังทำอะไรผิดในส่วนเซิร์ฟเวอร์ dns ทำhost ldapให้ฉันข้อผิดพลาดโฮสต์ไม่พบ (แม้ใน terminal เซิร์ฟเวอร์ DNS) สิ่งเดียวกันโดยใช้ขุดสิ่งเดียวกันกับhost 192.168.0.243(เครื่อง ldap.mynet.local ของฉัน)
เฟอร์นันโด

การทำhost ldap.mynet.localบนเครื่องไคลเอนต์ให้ฉันอยู่ IP ที่ถูกต้อง: /
เฟอร์นันโด

คำตอบ:


89

ฉันเชื่อว่าสิ่งนี้เกิดจาก mdns - multicast dns สำหรับการกำหนดค่าอัตโนมัติของโดเมน. local

หากคุณเช็คอิน/etc/nsswitch.confคุณอาจจะเห็น:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

mdns4 คือสิ่งที่ทำ multicast dns ลองเปลี่ยนเป็น:

hosts: files dns

และดูว่ามันสร้างความแตกต่างหรือไม่ ถ้ามันใช้งานได้คุณสามารถลบ mdns อย่างถาวรด้วย:

ลอง apt-get remove libnss-mdns

ซึ่งจะทำการnsswitch.confเปลี่ยนแปลงสำหรับคุณเช่นกัน

หรือไม่ใช้. local - ใช้ .lan หรืออะไรก็ได้แทน


1
ที่สมบูรณ์แบบ! ทำงานเหมือนจับใจ! ขอบคุณมาก. ย้อนกลับ DNS ยังคงให้ฉันข้อผิดพลาด แต่ที่เป็นปัญหาอื่นผมคิดว่า :)
เฟอร์นันโด

4
เพื่อนคุณน่าทึ่ง !!!!!
Thai Tran

นี่เป็นทางออกที่แท้จริงสำหรับปัญหาของฉันใน Ubuntu Saucy / 13.10
beerbajay

2
ตรรกะคืออะไร ทำไมนี่คือการกำหนดค่าเริ่มต้น?
คริส

1
คำตอบที่ยอดเยี่ยม! ทำงานให้ฉันด้วยเช่นกันในการติดตั้งใหม่ของ Ubuntu 16
T-Heron

3

เพื่อทำสิ่งต่าง ๆ ให้สมบูรณ์:

  1. nslookup จะถามเซิร์ฟเวอร์ DNS ที่กำหนดสำหรับการบันทึก A- ที่กำหนด แต่ไม่รับประกันว่าอุปกรณ์ที่อยู่เบื้องหลังบันทึกนั้นจริง ๆ แล้วมี IP นั้น

  2. แม้ว่าอุปกรณ์นั้นจะมี IP ที่ถูกต้อง (เช่น: ไอพีคงที่ของอุปกรณ์ตรงกับที่ได้รับจาก DNS) แต่ก็ไม่ได้รับประกันว่าอุปกรณ์จะได้รับการกำหนดค่าให้ตอบสนองต่อการปิง นี่เป็นจุดร่วมของความยุ่งยาก (ฉันกำลังพูดถึงคุณ, ไฟร์วอลล์ windows)

  3. เมื่อคุณข้ามเครือข่ายย่อยเราเตอร์ / เกตเวย์ / ไฟร์วอลล์อาจ จำกัด ทราฟฟิกของ ICMP (นั่นคือปิง)

ดังนั้นคุณจำเป็นต้องตรวจสอบห่วงโซ่บริการเต็มรูปแบบจากผู้ส่งถึงผู้รับและในทางกลับกัน ในกรณีที่สามอาจมีการตั้งค่าเช่น a) เกตเวย์เริ่มต้นหรือ b) (ค่าเริ่มต้น) เส้นทางที่เกี่ยวข้อง ดังนั้นเพิ่มลงในรายการตรวจสอบของคุณ

ขออภัยที่ขุดสิ่งเก่านี้ขึ้นมา แต่จากส่วนหัวแล้วดูเหมือนข้อมูลนิดหน่อยใครบางคนสามารถทำกำไรได้

Greetz


2
OP กล่าวถึง "แต่เมื่อฉัน ping ไม่พบที่อยู่ ip" มันไม่เกี่ยวกับแพ็กเก็ตที่ไม่ถึงปลายทาง แต่เกี่ยวกับการ ping ตัวเองไม่สามารถแก้ไขที่อยู่ IP ได้
Andras Gyomrey

Ping ไม่ได้ใช้การจำแนกชื่อ อ้างถึงstackoverflow.com/questions/17161005/… .
Kay Urbach

2

อีกสิ่งหนึ่งที่ฉันเห็นว่ามีการแทรกแซง DNS คือการติดตั้ง winbind ดูเหมือนว่าจะใส่winsรายการก่อน[NOTFOUND=return]ใน/etc/nsswitch.confซึ่งทำให้ DNS ล้มเหลว แต่สามารถแก้ไขได้โดยการย้ายwinsไปหลังจากส่วน "NOTFOUND" ด้วยโดยเฉพาะอย่างยิ่งหลังจาก dns เพื่อให้การค้นหา DNS เกิดขึ้นก่อนดูนี้:

http://ubuntuforums.org/showthread.php?t=1496488

(ไม่แน่ใจว่าทำไมสิ่งนี้เกิดขึ้นตามค่าเริ่มต้น แต่ยินดีต้อนรับความคิดเห็น!)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.