Saya tahu ini harus kurang dari pemahaman saya tapi inilah masalahnya.
Kami baru-baru ini mengubah server DNS dari 192.168.1.1 ke .2, jadi saya berkeliling ke semua 8 server linux saya dan mengubah /etc/resolv.conf untuk mencerminkan perubahan tersebut. Perhatikan bahwa semuanya statis, tidak ada DHCP yang terlibat.
Setelah melakukan perubahan, saya dapat segera menguji hasilnya menggunakan nslookup dan menggali, dan semuanya terlihat bagus. Saya melakukan restart /etc/init.d/networking - untuk me-restart subsistem jaringan - dan me-restart apache dan postfix pada masing-masing server, hanya untuk memastikan.
Beberapa hari kemudian saya mendapatkan laporan yang menyatakan bahwa situs web kami tidak lagi mengirim email. Membaca dengan teliti log saya menemukan bahwa proses mod_php tidak dapat menyelesaikan entri dns untuk mengirim email. Setelah mengalahkan kepalaku selama 30 menit, aku me-reboot server dan semuanya kembali normal.
Hari berikutnya di server yang berbeda (menggunakan CentOS daripada Ubuntu normal kami), saya mendapatkan laporan yang menyatakan bahwa email tidak melalui, dan tentu saja melihat log menunjukkan bahwa Postfix tidak dapat menyelesaikan nama. Di-boot ulang dan hampir secara instan mengirimkan semua email yang masuk.
Jadi apa yang saya lewatkan di sini? Bagian mana dari proses ini yang gagal saya pahami dengan benar?
sumber
Sebagian besar aplikasi mengaktifkan resolver sekali, saat startup (dengan
res_init
), dan tidak pernah melakukannya lagi sesudahnya. Ini bukan masalah untuk aplikasi yang berumur pendek seperti ping tetapi lebih serius untuk daemon yang berjalan lama.Proses Apache (yang menjalankan mod_php) mungkin dalam kasus itu. Restart Apache sudah cukup.
sumber
resolv.conf mengarahkan resolver ke tempat mencari nama. Dalam kebanyakan kasus, ini akan menjadi resolib libc, tetapi mungkin ada kasus lain seperti vPostMaster yang menggunakan pustaka resolver DNS Python untuk pencarian SPF.
Jadi, BISA bahwa resolver caching informasi resolv.conf untuk proses yang berjalan lama, tetapi itu terdengar seperti Anda me-restart postfix, yang seharusnya menyebabkannya mulai menggunakan file resolv.conf yang baru.
Periksa /etc/nsswitch.conf Anda untuk melihat apakah ia menentukan sesuatu yang khusus terjadi untuk "host". Misalnya, garis Fedora 11 default di laptop saya adalah:
host: file mdns4_minimal [NOTFOUND = return] dns
Jadi dalam kasus ini menggunakan mdns dan / etc / hosts dan DNS. Dalam hal ini, jika perubahan DNS tidak diambil, saya ingin tahu apakah itu mdns yang menyebabkannya.
Sean
sumber
Mungkin beberapa caching terjadi. Kami memiliki masalah yang sama dengan
sendmail
dan hanya me-restart layanan memperbaikinya.Terkadang lebih mudah untuk hanya me-reboot server dan menghapus semua cache di mana saja dalam sistem daripada menghabiskan semua waktu mengidentifikasi layanan mana yang cache terlalu lama. Di sisi lain, itu bisa berubah menjadi investasi ketika itu terjadi lagi dan Anda tahu layanan mana yang harus dimulai ulang.
sumber