Apakah casename case sensitif? Aku s
ping MYHOST
sama dengan
ping myhost
Apakah ini tergantung pada DNS yang digunakan? Apakah ada perbedaan antara sistem Win / Mac / Unix?
Apakah casename case sensitif? Aku s
ping MYHOST
sama dengan
ping myhost
Apakah ini tergantung pada DNS yang digunakan? Apakah ada perbedaan antara sistem Win / Mac / Unix?
Jawaban:
Nama yang diselesaikan dari DNS tidak sensitif huruf. Ini penting untuk mencegah kebingungan. Jika peka terhadap huruf besar-kecil maka kita akan memiliki delapan varian .com (.com, .Com, .cOm, .COm, .coM, .CoM, .cOM, dan .COM). Kode negara akan memiliki empat.
Jika resolusi nama peka huruf besar-kecil untuk Ping, itu tidak dilakukan oleh DNS.
Saya baru saja memiliki ini di sini di tempat kerja. DNS harus peka huruf besar-kecil .... RFC menentukan itu. https://tools.ietf.org/html/rfc4343 tetapi tidak mengatakan itu HARUS huruf kecil.
Jadi kami merasa senang untuk memecahkan masalah host yang tidak menyelesaikan masalah dengan benar untuk domain internal kami "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
Mengapa repot-repot menyelesaikan kasing campuran? Karena itulah yang tcpdump tunjukkan sebagai permintaan DNS karena itulah yang diminta oleh perangkat lunak yang sedang berjalan. pgbouncer dikonfigurasikan untuk menggunakan "p123-db" dalam konfigurasi-nya, dan resolv.conf menetapkan domain pencarian "t.local" Jadi, apa yang mencampur kasus ini?
Ternyata glibc mengubah case secara acak. Proses ini disebut "0x20 padding" dan pertama kali dijelaskan pada 2008 di "Penggunaan Bit 0x20 dalam Label DNS untuk Meningkatkan Identitas Transaksi" http://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00
Tujuan utamanya adalah untuk meningkatkan entropi sehingga lebih sulit untuk memalsukan jawaban - kasus pertanyaan harus cocok dengan kasus jawabannya.
Diskusi yang baik dapat ditemukan di sini. https://developers.google.com/speed/public-dns/docs/security?csw=1#randomize_case
Secara terpisah, kami menjalankan powerDNS secara internal, dan itu tidak terlihat terhadap database. Selama bertahun-tahun, tidak ada yang menggunakan nama host atau FQDN di domain lokal dengan huruf kapital, jadi kami tidak pernah memperhatikan bahwa domain internal kami peka terhadap huruf besar-kecil.
Diperbaiki oleh beberapa penyesuaian dalam kueri, tetapi ini akan merusak pencarian case campuran 0x20 seperti di atas - klien mungkin memerlukan jawaban dikembalikan dalam kasus yang sama seperti yang diminta.
Jawaban singkat : DNS seharusnya tidak peka terhadap huruf besar-kecil, tetapi pertanyaan dan jawaban harus sama, di masa mendatang.
Saya baru saja menyelesaikan pemecahan masalah pada perangkat SE Linux tertanam di mana resolusi nama host menunjukkan sensitivitas kasus.
"ping MYHOST" akan melakukan ping ke 127.0.0.1, sedangkan "ping myhost" akan melakukan ping ke Alamat IP yang benar.
nslookup menghasilkan hasil yang benar untuk huruf besar dan kecil, menunjukkan bahwa server DNS tidak bersalah.
Tetapi tidak seperti nslookup, yang mengabaikan cache, "getent hosts MYHOST" output "0.0.0.0", dan "getent hosts myhost" menghasilkan alamat IP yang benar.
Jadi nscd rupanya case sensitif. Memanggil "nscd -i hosts" untuk menghapus cache memperbaiki masalah ini.
MYHOST di (huruf besar) akhirnya di-cache dengan 0.0.0.0 karena proses mencoba untuk membuat koneksi ke MYHOST sebelum entri DNS dibuat, yang terjadi ketika perangkat jarak jauh mendapatkan tugas DHCP-nya.
Seperti yang disebutkan oleh BillThor, ini tidak peka huruf besar-kecil pada tingkat resolusi DNS atau netbios.
Berbagai OS tidak akan memiliki masalah dengan casing yang berbeda.
Namun, aplikasi mungkin menyadarinya. Misalnya, platform web di berbagai lingkungan dapat memeriksa sensitivitas kasus. Ini lebih umum sekarang untuk alasan optimasi mesin pencari (SEO) untuk menonton casing yang berbeda dan pengalihan. Itu semua tergantung pada aplikasi, jadi jawabannya ada bervariasi.
Untuk 'sebagian besar', nama host itu juga bukan masalah sensitif pada tingkat aplikasi.