Linux ถามใครเมื่อคุณทำ whois


11

เมื่อคุณทำ:

$ whois stackoverflow.com

Linux ของคุณทำแบบสอบถาม DNS เป็นอันดับแรกค้นหา IP ของ stackoverflow.com แล้วถามข้อมูลโดยตรงหรือไม่

หรือจะถามเซิร์ฟเวอร์ "root" whois (เป็น IP ของ "เซิร์ฟเวอร์ whois root" ฮาร์ดโค้ดในการแจกจ่าย Linux ในลักษณะที่คล้ายกัน/etc/bind/db.rootหรือไม่) ซึ่งจากนั้นมอบหมายให้เซิร์ฟเวอร์ whois อื่นที่ให้ข้อมูล

กระแสการเชื่อมต่อคืออะไร?

my computer doing `whois ...` ---> root whois server ---> another whois server ---> information

หรือ

my computer doing `whois ...` ---> DNS server (?) ---> ... ?

คำตอบ:


12

หากคุณกำลังใช้งานของMarco d'Itriwhoisคุณสามารถเพิ่ม--verboseตัวเลือกเพื่อดูว่ากำลังทำอะไรอยู่ สำหรับ stackoverflow.com เริ่มต้นด้วยการถาม whois.verisign-grs.com (ดูรายการเซิร์ฟเวอร์ WHOIS ) ซึ่งให้ข้อมูลจำนวนหนึ่งรวมถึงข้อเท็จจริงที่ว่านายทะเบียนของ Stack Overflow คือ Name.com และ WHOIS เซิร์ฟเวอร์คือ whois.name.com; ดังนั้นจึงต้องถาม whois.name.com

โปรโตคอลการบันทึกไว้ในRFC 3912 whoismanpageนอกจากนี้ยังมีคำแนะนำที่มีประโยชน์


ขอบคุณ (ดูเหมือนว่าค่าเริ่มต้นของ Debian คือ whois ของ Marco d'Itri) มีคำสั่งให้บอกwhoisให้ใช้เซิร์ฟเวอร์ WHOIS อื่นมากกว่า verisign-grs หรือไม่? man whoisฉันไม่ได้พบมันใน
Basj

อย่างอื่น: whois.name.comคุณบอกว่ามันแล้วสอบถาม นี่หมายความว่าผู้รับจดทะเบียนทุกรายจะต้องมีเซิร์ฟเวอร์ผู้รับจดทะเบียนหรือไม่ เมื่อทำwhois google.frมันดูเหมือนจะไม่ถามใครอีกคนมากกว่าใคร hardcoded-in-whois ใครคือ whois.nic.fr นั่นถูกต้องใช่ไหม?
Basj

ถูกต้องค่าเริ่มต้นของ Debian whoisคือ Marco d'Itri (Marco เป็นผู้พัฒนา Debian) ตัวเลือกที่คุณต้องการคือ-h(ดูwhois -h whois.name.com stackoverflow.com) ผู้รับจดทะเบียนไม่จำเป็นต้องมีเซิร์ฟเวอร์ WHOIS ทุกคน เฉพาะผู้รับจดทะเบียน“ ที่มีสิทธิ์” สำหรับ TLD เท่านั้นที่ทำการ AFAIK ดังนั้นในgoogle.frกรณีของนายทะเบียนเป็น MarkMonitor แต่ข้อมูลที่มาจาก AFNIC ซึ่งเป็นนายทะเบียน TLD .frสำหรับ
Stephen Kitt

ขอบคุณมาก. สิ่งที่ตลกคือ: เมื่อทำwhois stackoverflow.comผมได้รับข้อมูลน้อยมาก แต่เมื่อทำwhois -h whois.name.com stackoverflow.comฉันได้รับมากขึ้นข้อมูล ( Admin Organization: Stack Exchange, Inc.ที่อยู่ถนน ฯลฯ ) whois stackoverflow.comที่ฉันไม่ได้รับเมื่อทำ มันเป็นพฤติกรรมที่คาดหวังของwhoisคือคุณต้องแรกที่ต้องทำwhois domain.comแล้วมองไปที่เซิร์ฟเวอร์ whois ที่คุณจะต้องทำซ้ำwhois -h ... domain.comที่จะมีข้อมูลมากขึ้น? ไม่ควรwhoisทำทั้งหมดนี้โดยตรงเมื่อเขาพบนายทะเบียน whois?
Basj

คุณควรจะได้รับข้อมูลที่เหมือนกันเพราะwhois stackoverflow.com ไม่ไปและถามตัวเอง whois.name.com (อย่างน้อยก็ไม่อยู่ในรุ่น 5.2.17) คุณอาจพบปัญหาการ จำกัด อัตราการ whois.name.com บล็อกคุณชั่วคราวหากคุณออกคำขอมากเกินไป (แต่คุณได้รับข้อความแสดงข้อผิดพลาด) หากฉันถ่ายโอนwhois stackoverflow.comและwhois -h whois.name.com stackoverflow.comเปรียบเทียบพวกเขาจะได้รับผลลัพธ์ name.com ที่เหมือนกันทั้งสองกรณี
Stephen Kitt

11

Stephen ตอบส่วนหลัก แต่คุณมีจุดอื่น ๆ ที่ฉันต้องการที่อยู่:

  1. Whois เป็นโปรโตคอลที่กำหนดไว้ไม่ดี ไม่มีลำดับชั้น, ไม่มีรูต whois, ฯลฯ ในความเป็นจริงไม่มีอะไรที่เกี่ยวข้องกับ DNS ในระบบ whois คุณควรเริ่มต้นโดยแยกพวกเขาในใจของคุณเป็นอย่างสมบูรณ์นอกเหนือจากความจริงที่ว่าพวกเขาใช้ข้อมูลจากแหล่งเดียวกัน (รีจิสทรี ฐานข้อมูล) พวกเขาทำงานอย่างอิสระอย่างสมบูรณ์
  2. แต่ละรีจิสทรี TLD ทำงานแตกต่างกันในเรื่องนี้ gTLD เป็นกรณีของตัวเอง: ต่อสัญญา ICANN สำหรับตอนนี้ผู้รับจดทะเบียนแต่ละรายมีภาระหน้าที่ที่จะต้องมีเซิร์ฟเวอร์ whois ตอบรับทุกชื่อที่จัดการ การลงทะเบียนมีข้อกำหนดเดียวกัน ผลลัพธ์ของรีจิสทรี whois แสดงรายการเซิร์ฟเวอร์ whois ของผู้รับจดทะเบียน (แต่ตามที่ฉันเขียนไว้ในความคิดเห็นด้านบนการเปลี่ยนแปลงนี้เล็กน้อยเมื่อเร็ว ๆ นี้ - โดยไม่มีเหตุผลที่ดี - ซึ่งทำให้ลูกค้า whois จำนวนมาก) ส่วนใหญ่ด้วยเหตุผลทางประวัติศาสตร์ (และตอนนี้ยังเป็น. COM / .NET - .JOBS ชนิดของสวิตช์เมื่อเร็ว ๆ นี้ แต่ก่อนหน้านี้อยู่ในเรือลำเดียวกันดูhttps://www.icann.org/resources/pages/thick-whois-transition-policy-2017- 02-01-en) การลงทะเบียนโดยที่ 'thin' ซึ่งหมายความว่ารีจิสตรีไม่ได้เก็บข้อมูลเกี่ยวกับผู้ติดต่อไว้ ซึ่งหมายความว่าถ้าคุณต้องการมีข้อมูลเกี่ยวกับชื่อโดเมนและค้นหาผู้ที่จะติดต่อในกรณีที่เกิดปัญหา (ซึ่ง - และ - คือ - เป้าหมายดั้งเดิมของโปรโตคอล whois) คุณต้องค้นหาเซิร์ฟเวอร์ whois เพื่อลงทะเบียนก่อน รับชุดข้อมูลพื้นฐานและค้นหาเซิร์ฟเวอร์ผู้รับจดทะเบียน whois จากนั้นติดต่อเซิร์ฟเวอร์จดทะเบียน whois นี้เพื่อเข้าถึงข้อมูลติดต่อทั้งหมด สิ่งนี้อธิบายว่าเหตุใดผลลัพธ์ของการลงทะเบียนของ. COM / .NET ในวันนี้จึงให้ข้อมูลเกี่ยวกับเซิร์ฟเวอร์ชื่อโดเมนวันที่และสถานะเท่านั้น และนายทะเบียน whois ชื่อเซิร์ฟเวอร์ซึ่งลูกค้า whois พยายามติดตาม แต่บางครั้งก็ทำไม่ได้เพราะสิ่งต่าง ๆ เปลี่ยนไป (ดูความคิดเห็นของฉันด้านบน)
  3. ccTLDs มักจะไม่ทำงานเช่นนั้นแม้ว่าจะใช้การลงทะเบียนการสืบค้นเซิร์ฟเวอร์ whois จะทำให้คุณได้ผลลัพธ์ที่ต้องการและแม้ว่าบางอย่างจะหายไป (สำหรับเหตุผลด้านความเป็นส่วนตัวเป็นต้น) คุณไม่จำเป็นต้องค้นหาเซิร์ฟเวอร์ whois ของผู้ลงทะเบียนเป็น พวกเขาไม่ได้รับคำสั่งจากการลงทะเบียนเพื่อเรียกใช้มันสำหรับ ccTLDs พวกเขาจัดการ (แต่บางคนทำทะเบียนอย่างไรก็ตาม) สิ่งนี้จะอธิบายการสังเกต.frชื่อโดเมนของคุณ
  4. ไคลเอนต์ whois บางที่อยู่ hardcode ของเซิร์ฟเวอร์ whois ลองบางครั้งwhois.nic.$TLDโดยค่าเริ่มต้นซึ่งมักจะทำงานเป็นรีจิสทรีของ$TLDมักจะมีnic.$TLDชื่อโดเมนปฏิบัติการหลัก
  5. IANA จัดการรายการของการลงทะเบียนที่https://www.iana.org/domains/root/dbและในแต่ละหน้ารีจิสทรีเช่นhttps://www.iana.org/domains/root/db/fr.htmlคุณ จะมีรายการบรรทัดWHOIS Serverเซิร์ฟเวอร์ whois ที่เกี่ยวข้องกับรีจิสทรีที่เลือก โปรดทราบว่ามันอาจจะล้าสมัยหรือผิดบางครั้ง คุณยังสามารถเข้าถึงข้อมูลนี้ได้โดยทำแบบสอบถาม whois สำหรับ TLD เพื่อwhois.iana.orgให้ข้อมูลเกี่ยวกับรีจิสทรีที่เกี่ยวข้องรวมถึงเซิร์ฟเวอร์ whois ในwhoisคีย์
  6. นอกจากนี้ยังมีเคล็ดลับอื่น หากคุณทำแบบสอบถาม DNS (แต่โปรดจำไว้ว่าจุดนี้ไม่ได้ทำให้ถูกต้องจุดแรก) เพราะ$TLD.whois-servers.netมันจะให้ชื่อของเซิร์ฟเวอร์ whois ที่เกี่ยวข้องสำหรับ$TLDคุณเป็นระเบียน CNAME ลูกค้า whois บางคนอาจใช้เคล็ดลับนี้ แต่ฉันสงสัย ( whoisลูกค้าGNU อาจเป็นหนึ่งในนั้นหรืออาจเป็น FreeBSD ก็ได้) โปรดทราบว่าความคิดริเริ่มนี้เป็นเรื่องส่วนตัวอย่างแท้จริงและถึงแม้ว่ามันควรจะเป็นก็ไม่ได้รับการจัดการโดยหน่วยงานชั้นนำที่เกี่ยวข้องในทุกสิ่งเช่น ICANN หรือ IANA ยกตัวอย่างเช่นจะทำให้คุณ:dig uk.whois-servers.net +short whois.nic.uk.เสน่ห์ของสิ่งนี้คือมันควรได้รับการปรับปรุงหากการเปลี่ยนแปลงนี้ (หายากมาก) หรือ (บ่อยขึ้น) เมื่อการลงทะเบียนใหม่ / TLD ใหม่
  7. การลงทะเบียนบางรายการจะเผยแพร่ที่อยู่ปลายทางของเซิร์ฟเวอร์ whois โดยใช้SRVซึ่งเป็นประเภทระเบียน DNS เฉพาะเพื่อระบุตำแหน่งที่ชื่อโดเมนจัดการบริการเฉพาะ ดังนั้นหากคุณทำเช่นนั้นdig _nicname._tcp.fr +shortคุณจะได้รับ0 0 43 whois.nic.fr.ซึ่งนอกเหนือจากสองหมายเลขแรกที่ไม่ได้ใช้ (แต่สามารถใช้สำหรับการปรับสมดุลโหลด / ล้มเหลว) หมายเลขพอร์ต ( 43) และชื่อเซิร์ฟเวอร์ที่whois.nic.frจะติดต่อเพื่อรับnicnameนั่นคือwhoisบริการภายใต้ ชื่อที่ลงทะเบียนอย่างเป็นทางการ ( https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml ) สำหรับfrโดเมน. มันไม่ได้ถูกใช้โดยการลงทะเบียนจำนวนมาก แต่น่าจะเป็นไปได้ระเบียน SRV นั้นมีกลไกการค้นพบอัตโนมัติแบบกระจายที่สามารถใช้งานได้ในทุกระดับของแผนภูมิ DNS เพื่อให้สามารถทำงานกับการลงทะเบียนและ "sub" - การลงทะเบียนเป็นต้น .

โปรดทราบว่าสิ่งต่างๆข้างต้นจะเปลี่ยนไปเมื่อ RDAP ซึ่งเป็นโปรโตคอลที่ใหม่กว่าจะแทนที่ whois มันถูกกำหนดโดย RFC หลายตัวและมีการใช้งานโดยบางรีจิสทรี (ในการผลิตสำหรับ RIR ในการทดลองสำหรับการลงทะเบียนชื่อโดเมนบางส่วน) แต่ก็ยังไม่ถูกบังคับตามสัญญาที่จะใช้โดย Registries และ Registrars (สำหรับเหตุผลด้านเทคนิค) ใน gTLD โลกและการลงทะเบียน ccTLD ดูเหมือนไม่เต็มใจที่จะทิ้งเซิร์ฟเวอร์ whois ปัจจุบันของพวกเขาเพื่อวางเซิร์ฟเวอร์ RDAP แทน


2

ไคลเอนต์ WHOIS ของคุณถามเซิร์ฟเวอร์ WHOIS (บนพอร์ต TCP 43) และตอบสนองโดยตรง ไคลเอ็นต์ WHOIS ของ Debianมีรายการเซิร์ฟเวอร์ที่ฮาร์ดโค้ดซึ่งจะเลือกโดยอัตโนมัติ IANA ยังมีบริการของ WHOIS

ที่มา: RFC 3912


ขอบคุณ เป็นtld_serv_listไฟล์ที่ไม่สามารถใช้ได้ใน Debian? ฉันค้นหาในระบบไฟล์ของฉัน แต่ไม่พบ นี่แปลว่ามันรวบรวมไว้ในไบนารี whois /usr/bin/whoisหรือไม่?
Basj

1
มันถูกเรียบเรียงเป็นไบนารี (ดูผลลัพธ์ของstrings /usr/bin/whois)
สตีเฟ่น Kitt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.