กรณีที่ชื่อโฮสต์มีความสำคัญหรือไม่


26

กรณีที่ชื่อโฮสต์มีความสำคัญหรือไม่ คือ

ping MYHOST

เท่ากับ

ping myhost

มันขึ้นอยู่กับ DNS ที่ใช้หรือไม่ ระบบ Win / Mac / Unix มีความแตกต่างหรือไม่?


2
นี่คือ RFC tools.ietf.org/html/rfc4343
Zoredache

คำตอบ:


24

ชื่อที่ได้รับการแก้ไขจาก DNS ไม่คำนึงถึงขนาดตัวพิมพ์ นี่เป็นสิ่งสำคัญเพื่อป้องกันความสับสน หากเป็นกรณี ๆ ไปเราจะมีแปดสายพันธุ์ของ. com (. com, .Com, .cOm, .COm, .coM, .CoM, .cOM และ. com) รหัสประเทศจะมีสี่

หากการจำแนกชื่อเป็นแบบตรงตัวพิมพ์สำหรับ Ping จะไม่ถูกดำเนินการโดย DNS


เห็นได้ชัดว่ามันค่อนข้างยุ่งยากหลังจากชื่อโดเมนสากลที่เพิ่มเข้ามา ในกรณีที่ไม่ใช่บริบท ASCII อาจมีความสำคัญ
Zoredache

1
@Zoredache: ปรากฏว่าโดเมนต่างประเทศที่ใช้ระบบ IDNA นั้นต้องเข้ารหัสใน Punycode ซึ่งเกี่ยวข้องกับการแปลเป็นตัวพิมพ์เล็ก นอกจากนี้ยังมีข้อ จำกัด เพิ่มเติมเพื่อให้ชื่อชัดเจน นอกจากนี้คุณไม่ต้องการบังคับผู้ใช้ให้แน่ใจว่าพวกเขาได้รับเรื่องที่ถูกต้อง
BillThor

6

ฉันเพิ่งมาที่นี่เพื่อทำงาน DNS ควรคำนึงถึงขนาดตัวพิมพ์ ... RFC ระบุว่า https://tools.ietf.org/html/rfc4343 แต่ไม่ได้บอกว่าต้องเป็นตัวพิมพ์เล็ก

ดังนั้นเรามีความยินดีที่จะแก้ไขปัญหาโฮสต์ที่ไม่ได้แก้ไขสิ่งที่ถูกต้องสำหรับโดเมนภายในของเรา "t.local"

p123$ ping p123-db.t.local
PING p123-db.t.local (192.168.106.175) 56(84) bytes of data.
....works ok

p123$ ping P123-dB.T.lOcal
ping: unknown host P123-dB.T.lOcal

ทำไมต้องแก้ไขกรณีผสม เพราะนั่นคือสิ่งที่ tcpdump แสดงเป็นแบบสอบถาม DNS เพราะนั่นคือสิ่งที่ซอฟต์แวร์กำลังเรียกใช้ pgbouncer ถูกกำหนดค่าให้ใช้ "p123-db" ในการกำหนดค่าและ resolv.conf ระบุโดเมนการค้นหาของ "t.local" ดังนั้นสิ่งที่จะผสมกรณี?

ปรากฎว่า glibc กำลังสลับกรณีสุ่ม กระบวนการนี้เรียกว่า "การเติมเต็ม 0x20" และได้รับการอธิบายเป็นครั้งแรกในปี 2008 ใน "การใช้บิต 0x20 ในป้ายชื่อ DNS เพื่อปรับปรุงรหัสประจำตัวธุรกรรม" http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00

วัตถุประสงค์หลักคือการเพิ่มเอนโทรปีเพื่อให้ยากที่จะปลอมคำตอบ - กรณีของคำถามจะต้องตรงกับกรณีของคำตอบ

การสนทนาที่ดีอาจพบได้ที่นี่ https://developers.google.com/speed/public-dns/docs/security?csw=1#randomize_case


แยกจากกันเราเรียกใช้ powerDNS ภายในและจะทำการค้นหากับฐานข้อมูล หลายปีที่ผ่านมาไม่มีใครใช้ชื่อโฮสต์หรือ FQDN ในโดเมน t.local ด้วยอักษรตัวใหญ่ดังนั้นเราจึงไม่เคยสังเกตเห็นว่าโดเมนภายในของเรานั้นเล็กและใหญ่

ได้รับการแก้ไขโดยการปรับแต่งบางอย่างในแบบสอบถาม แต่จะทำให้การค้นหากรณีผสมผิดพลาด 0x20 ดังกล่าวข้างต้น - ลูกค้าอาจต้องการคำตอบจะถูกส่งกลับในกรณีเดียวกับที่ร้องขอ

คำตอบสั้น ๆ : DNS ไม่ควรตรงตามตัวพิมพ์ใหญ่ - เล็ก แต่คำถามและคำตอบจะต้องเป็นตัวพิมพ์เล็กในอนาคต


2
คำตอบ 4 ปีหลังจากถามคำถามนั้นแตกต่างกันอย่างละเอียด ผมสงสัยว่าในอีก 4 ปีคำตอบจะ "ใช่ DNS - ตอนนี้ก็คือกรณีที่สำคัญ"
Criggie

4

ฉันเพิ่งเสร็จสิ้นการแก้ไขปัญหาบนอุปกรณ์ SE Linux ที่ฝังตัวซึ่งการจำแนกชื่อโฮสต์แสดงถึงความละเอียดของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

"ping MYHOST" จะ ping เป็น 127.0.0.1 ในขณะที่ "ping myhost" จะ ping ที่อยู่ IP ที่ถูกต้อง

nslookup สร้างผลลัพธ์ที่ถูกต้องสำหรับทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็กซึ่งบ่งชี้ว่าเซิร์ฟเวอร์ DNS ไม่ได้เป็นฝ่ายผิด

แต่แตกต่างจาก nslookup ซึ่งละเว้นแคช "เอาต์โฮสต์ MYHOST" เอาต์พุต "0.0.0.0" และ "getent โฮสต์ myhost" ส่งออกที่อยู่ IP ที่ถูกต้อง

ดังนั้น nscd จึงเป็นตัวพิมพ์เล็กและใหญ่ การเรียก "nscd -i hosts" เพื่อล้างแคชแก้ไขปัญหา

MYHOST ใน (ตัวพิมพ์ใหญ่) สิ้นสุดลงด้วยแคช 0.0.0.0 เนื่องจากกระบวนการพยายามสร้างการเชื่อมต่อกับ MYHOST ก่อนที่จะสร้างรายการ DNS ซึ่งเกิดขึ้นเมื่ออุปกรณ์ระยะไกลได้รับการกำหนด DHCP


0

ดังที่ BillThor กล่าวไว้มันไม่ได้ตรงตามตัวพิมพ์ใหญ่ - เล็กที่ระดับความละเอียด DNS หรือ netbios

ระบบปฏิบัติการต่าง ๆ จะไม่มีปัญหากับกรอบที่แตกต่างกัน

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

สำหรับ 'ส่วนใหญ่' ชื่อโฮสต์ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ที่ระดับแอปพลิเคชัน

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