Saat menulis skrip, saya ingin merujuk mesin dengan nama komputer yang saya berikan (mis. "Selenium-rc"). Saya tidak bisa melakukan ping menggunakan "selenium-rc", jadi saya mencoba perintah berikut untuk melihat apakah nama itu dikenali.
> traceroute 192.168.235.41
traceroute to 192.168.235.41 (192.168.235.41), 64 hops max, 52 byte packets
1 selenium-rc (192.168.235.41) 0.545 ms 0.241 ms 0.124 ms
Ok, traceroute "menemukan" namanya. Bagaimana? Lanjut ...
> traceroute selenium-rc
traceroute: unknown host selenium-rc
Hmm ... mekanisme pencarian di sini harus berbeda karena tuan rumah tidak dikenal. Saya berasumsi ini menggunakan proses resolusi nama sistem sedangkan contoh pertama menggunakan proses khusus untuk traceroute. Benar?
Lalu ketika saya kembali sedikit kemudian ...
> traceroute 192.168.235.41
traceroute to 192.168.235.41 (192.168.235.41), 64 hops max, 52 byte packets
1 minint-q4e8i52.mycorp.net (192.168.235.41) 0.509 ms 0.206 ms 0.136 ms
Ok, hasilnya berbeda. Nama "selenium-rc" tidak berubah pada mesin itu sendiri, tetapi proses resolusi nama traceroute harus mencakup semacam prioritas dan sekarang memberikan hasil yang lebih otoritatif yang diberikan oleh sistem / layanan lain pada jaringan. (Sayangnya, saya menganggap itu nama dinamis yang tidak saya kendalikan, dan karenanya tidak akan berguna dalam skrip.)
Adakah yang bisa menjelaskan hasilnya?
sumber
Sepertinya Anda memiliki pengaturan pencarian terbalik dengan benar, tetapi tidak maju.
Sistem Anda dapat mencari alamat IP 192.168.235.41 dan mengenali bahwa itu
selenium-rc
, tetapi ketika mencoba mencariselenium-rc
itu gagal.Saya sarankan Anda memeriksa
/etc/hosts
dan/etc/resolv.conf
; perilakugetaddrinfo
panggilan sistem ditentukan oleh yang terakhir dan referensi yang pertama.sumber
Tebakan saya: menjalankan
traceroute 192.168.235.41
menyebabkan permintaan DNS untuk mencari nama yang sesuai dengan alamat IP 192.168.235.41.traceroute -n 192.168.235.41
adalah cara untuk memulai traceroute tanpa melakukan pencarian DNS pada setiap alamat IP yang ditemukannya. Server DNS membutuhkan waktu lebih lama untuk merespons daripada yang ingin ditunggu oleh sistem DNS, jadi pada awalnya traceroute tidak memberikan nama host untuk 192.168.235.41. Pada saat traceroute mengirim dan menerima paket dari 192.168.235.41, server DNS Anda telah merespons, sehingga traceroute dapat memberikan nama host untuknya.Jadi, saya akan mengatakan "masalah server DNS", dengan waktu yang sangat nyaman yang membuat Anda curiga terhadap hal-hal lain. Pikirkan "Hukum Murphy" di sini. Ketika Anda kembali beberapa saat kemudian, Anda mendapatkan nama yang berbeda untuk alamat IP yang sama, yang juga membuat saya berpikir mungkin seseorang mengacaukan konfigurasi server DNS selama Anda melakukan traceroute.
sumber