Bagaimana browser menangani banyak IP [tertutup]

11

Adakah yang bisa mengarahkan saya ke informasi tentang perilaku peramban yang tepat saat peramban mendapatkan beberapa catatan A untuk nama host yang diberikan (mis. Ip1 dan ip2), dan salah satunya tidak dapat diakses.

Saya tertarik pada detail EXACT, seperti (tetapi tidak terbatas pada):

  1. Akankah browser mendapatkan 2 IP dari OS, atau hanya akan mendapatkan satu?
  2. Ip mana yang akan dicoba peramban (acak atau selalu yang pertama)? Sekarang, katakanlah browser dimulai dengan ip1 yang gagal
  3. Berapa lama browser akan mencoba IP1?
  4. Jika pengguna menekan "berhenti" saat menunggu ip1, lalu klik segarkan
    • IP mana yang akan dicoba peramban?
  5. Apa yang akan terjadi ketika waktu habis - akan mulai mencoba ip2 atau memberikan kesalahan? (Dan jika ada kesalahan, ip mana yang akan dicoba peramban saat pengguna mengeklik penyegaran).
  6. Ketika pengguna mengklik menyegarkan, apakah browser akan mencoba pencarian DNS baru?

Sekarang mari kita asumsikan browser mencoba ip2 yang berfungsi terlebih dahulu.

  1. Untuk permintaan halaman berikutnya, apakah browser masih menggunakan ip2, atau mungkin secara acak beralih ips?
  2. Untuk berapa lama browser menyimpan IP dalam cache mereka?
  3. Ketika browser mengirim permintaan DNS baru, dan mendapatkan ips yang SAMA, akankah LANJUTKAN untuk menggunakan IP yang dikenal bekerja yang sama, atau proses dimulai dari awal dan mungkin mencoba salah satu dari keduanya?

Tentu saja semuanya tergantung pada browser, dan mungkin juga bervariasi antara versi dan platform, saya akan senang untuk memiliki detail maksimal.

Tujuannya - Saya mencoba memahami apa yang sebenarnya akan dialami pengguna ketika round-robin berbasis DNS digunakan dan salah satu host gagal.

Tolong, saya TIDAK bertanya tentang seberapa buruk penyeimbangan beban DNS, dan tolong jangan menjawab "jangan lakukan itu", "itu ide yang buruk", "Anda perlu detak jantung / proxy / BGP / apa pun" dan seterusnya.

Sandman4
sumber
1
Ada ekstensi browser untuk Firefox yang menunjukkan alamat IP, dan alamat IP mana yang sedang digunakan ( addons.mozilla.org/en-US/firefox/addon/showip/?src=search ). Anda juga dapat menggunakan tab 'Net' Firebug untuk menunjukkan bahwa permintaan IP dilayani oleh. Jelas ini hanya relevan untuk Firefox tetapi saya percaya konsol Chrome dev menunjukkan permintaan IP dilayani oleh.
Smudge
Perhatikan juga bahwa beberapa server DNS ISP hanya akan mengembalikan satu alamat IP, mengapa mereka melakukan ini saya tidak tahu
Smudge
Terima kasih sam. Dan ya, konsol chrome menampilkan pencarian DNS, cache dan menunjukkan IP mana yang diminta.
Sandman4
Jika Anda ingin berbicara tentang perilaku yang tepat, maka hal pertama yang perlu diperhatikan tentang bagaimana browser web menangani catatan adalah tidak . Resolusi nama ditangani oleh tumpukan jaringan. Jadi, apakah Anda mencoba bertanya tentang keanehan browser tertentu yang Anda perhatikan atau Anda bertanya tentang resolusi nama?
Rob Moir
Browser DO menerima (dari tumpukan jaringan) beberapa IP yang terdaftar di A catatan untuk nama host. Di Google Chrome, coba chrome: // net-internal / # dns dan lihat sendiri.
Sandman4

Jawaban:

5

Bagaimanapun, saya harus melakukan "penelitian" sendiri. Inilah perilaku Chromium (versi 12.0.742.112) (berjalan di ubuntu 11.04):

Secara umum berfungsi: cobalah ip 1-st, begitu time-out (setelah 189 detik) coba ip 2-nd. Tidak ada pesan kesalahan yang diberikan sampai semua ips mencoba. Koneksi berikutnya akan dimulai dari ip pertama lagi (bahkan jika gagal satu detik yang lalu dan ip kedua berhasil - browser tidak peduli)

Satu hal yang menarik - Upaya koneksi TCP tidak dijatuhkan ketika pengguna menekan membatalkan - yaitu ketika saya menekan membatalkan, dan setelah 60 detik klik coba lagi, halaman akan ditampilkan dalam 130 detik (189 dari upaya pertama.) Tetapi jika saya klik membatalkan dan klik menyegarkan setelah 190 detik, prosesnya akan dimulai dari awal.

Mengenai item dalam Pertanyaan asli:

  1. Browser mendapatkan kedua IP dari OS, OS tidak mengubah urutan IP.
  2. Browser selalu mencoba terhubung ke ip yang muncul terlebih dahulu
  3. Mencoba selama 189 detik
  4. Pada upaya kedua, ini akan mencoba IP lagi.
  5. Ketika IP pertama kali habis, peramban diam-diam melanjutkan ke ip kedua. Jika berhasil - halaman muncul, jika tidak - menunggu terus.
  6. Tidak diuji. Blog ini menyatakan Chrome cache DNS hanya untuk 1 menit, ketika kami melihat chrome: // net-internal / # dns:

    Kapasitas: 100 Time to live (ms) untuk entri yang berhasil: 60000 Time to live (ms) untuk entri yang gagal: 0

Jika IP pertama berfungsi, prosesnya akan sama dan akan selalu berhasil pada upaya pertama.

Sandman4
sumber
4

Alih-alih memberi tahu orang lain apa yang tidak Anda inginkan, mengapa tidak menjelaskan apa yang ingin Anda capai?

Jika semua yang Anda kejar adalah data yang diketahui, maka pergilah dan selidiki sendiri, atau baca dokumentasi peramban apa pun (ada ratusan) yang Anda bicarakan.

Mungkin membantu Anda untuk mengetahui bahwa ini tidak ada hubungannya dengan DNS.

Jika peramban mendapat permintaan, peramban pertama-tama akan mencari di berbagai cache untuk melihat apakah URL, atau jika bukan URL maka nama hostnya, sudah ada.
Jika tidak, itu akan menekan pemecah masalah sistem untuk menyelesaikan nama host.

Jika IP yang dikembalikannya tidak merespons, kemungkinan besar cache ini secara internal sebagai hasil pencarian negatif , jadi langsung meminta URL yang sama lagi dengan harapan mengenai catatan A yang berbeda karena mungkin tidak akan ada gunanya, karena akan telah menyimpan hasil hostname bersama dengan hasil IP negatif.

Atau, Anda tahu, Anda bisa memberikan informasi lebih lanjut.

EDIT: Saya melihat Anda memang memberikan beberapa informasi di antara semua tuntutan dan kepintaran.

Sangat baik:

  1. Jika browser meminta resolver sistem untuk nama host, itu akan mendapatkan kembali informasi apa pun yang ada untuk nama host itu. Jika itu berarti 2 IP, maka itu akan mengembalikan 2 IP.
  2. Itu tergantung pada browser.
  3. Itu tergantung pada browser, tetapi semua browser yang pernah saya gunakan melakukan satu permintaan, dan akan habis setelah batas waktu TCP CONNECT () standar; Saya cukup yakin ada RFC tentang itu di suatu tempat ...
  4. Itu tergantung pada browser. Itu tidak ada hubungannya dengan DNS atau jaringan.
  5. Tidak.
  6. Tidak.

Anda juga tampaknya tidak tahu bahwa catatan DNS di-cache di mana-mana, terutama pada klien. Catatan ini kedaluwarsa, tergantung pada apa yang dimaksudkan oleh pemilik domain atau cache di antara Anda dan dia yang dikonfigurasi. Satu jam hingga satu hari adalah umum, jadi jangan berharap resolver untuk melakukan permintaan DNS lain jika Anda menekan refresh seperti orang gila.

adaptr
sumber
2
Menambahkan penjelasan tentang apa yang ingin saya capai. Saya mencari data yang diketahui, saya berharap seseorang tahu karena mungkin butuh berhari-hari untuk menemukan info yang relevan. Menuntut? Saya meminta informasi yang saya butuhkan, saya tidak bisa menuntut - semua orang bebas menjawab atau tidak. Smartassery? Saya terluka oleh posting Anda dan saya rasa saya tidak pantas menerimanya.
Sandman4
1
Saya hanya tidak ingin diskusi berubah menjadi api terhadap penyeimbangan beban DNS. Bagaimanapun, terima kasih telah menunjukkan saya ke TCP CONNECT ().
Sandman4