Як браузери обробляють кілька IP-адрес [закрито]


11

Чи може хтось направляти мене на інформацію про точну поведінку браузерів, коли браузер отримує кілька записів A для заданого імені хоста (скажімо, ip1 та ip2), і одна з них недоступна.

Мене цікавлять точні деталі, як-от (але не обмежуючись ними):

  1. Чи отримає браузер 2 IP-адреси від ОС, або він отримає лише один?
  2. Який ip спробує браузер перший (випадковий чи завжди перший)? Скажімо, браузер почався з невдалого ip1
  3. Як довго браузер спробує ip1?
  4. Якщо користувач натискає "стоп", поки він чекає ip1, а потім натискає кнопку "Оновити"
    • який IP-код буде спробувати браузер?
  5. Що станеться, коли час очікується - почне спроба ip2 чи помилка? (І якщо помилка, яку ip спробує браузер, коли користувач натисне оновлення).
  6. Коли користувачі натискають оновлення, чи спробне будь-який веб-переглядач нового пошуку DNS?

Тепер припустимо, що браузер спробував спочатку працювати ip2.

  1. Чи буде браузер все ж використовувати ip2, або він може випадково перемикати ips?
  2. Як довго браузери зберігають IP-адреси у своєму кеші?
  3. Коли браузери надсилають новий запит DNS та отримують SAME ips, чи продовжить він використовувати той самий відомий для роботи IP-код, або процес починається з нуля, і він може спробувати будь-який із цих двох?

Звичайно, все може залежати від браузера, а також може відрізнятися між версіями та платформами, я буду радий мати детальну інформацію.

Мета цього - я намагаюся зрозуміти, що саме відчуватимуть користувачі, коли на базі DNS використовуються круглоспроможні користувачі, а один з хостів не вдається.

Будь ласка, я НЕ запитую про те, наскільки поганим є балансування навантаження DNS, і, будь ласка, утримуйтесь від відповідей "не робіть цього", "це погана ідея", "вам потрібна серцебиття / проксі / BGP / що завгодно" тощо.


1
Існує розширення для браузера для Firefox, яке показує IP-адреси, а також IP-адресу, яка використовується зараз ( addons.mozilla.org/en-US/firefox/addon/showip/?src=search ). Ви також можете скористатися вкладкою "Net" Firebug, щоб показати, що IP-запити обслуговувалися. Явно це стосується лише Firefox, але я вважаю, що консоль розробника Chrome показує, що IP-запити обслуговувалися.
Помазання

Також зауважте, що деякі DNS-сервери ISP коли-небудь повертатимуть лише одну IP-адресу, чому вони роблять це, я поняття не маю
Smudge

Дякую Сем. І так, хромована консоль показує пошук DNS, кеш і показує, який IP запитується.
Sandman4

Якщо ви хочете поговорити про точну поведінку, то перше, що слід зазначити про те, як веб-браузери обробляють записи, це те, що вони не роблять . Дозвіл імені обробляється мережевим стеком. Отже, ви намагаєтеся запитати про якусь певну диваку браузера, яку ви помітили, або ви питаєте про дозвіл імен?
Роб Моїр

Браузери DO отримують (з мережевого стеку) кілька IP-адрес, перелічених у записах A для імені хоста. У Google Chrome спробуйте chrome: // net-Internals / # dns та переконайтесь у тому, що ви.
Sandman4

Відповіді:


5

Зрештою, мені довелося робити «дослідження» самостійно. Ось поведінка Chromium (версія 12.0.742.112) (працює на ubuntu 11.04):

Як правило, це працює так: спробуйте 1-й ip, як тільки вимкнено (після 189 сек.) Спробуйте 2-й ip. Немає повідомлень про помилки, доки не спробували всі ips. Наступне підключення почнеться з першого ip знову (навіть якщо воно минуло не вдалося секунди тому, а другий ip працював - браузер не хвилює)

Одна цікава річ - спроба підключення TCP не відміняється, коли користувач скасовує скасування - тобто, коли я натискаю скасувати, і через 60 секунд натисніть кнопку "Повторити спробу", сторінка відобразиться через 130 секунд (189 з першої спроби.) Але якщо я натискаю скасувати та натисніть оновіть через 190 секунд, процес почнеться з початку.

Що стосується предметів в оригінальному запитанні:

  1. Браузер отримує обидва IP-адреси від ОС, ОС не змінює порядок IP-адрес.
  2. Браузер завжди намагається підключитися до ip, який з’являється першим
  3. Він намагається 189 секунд
  4. При другій спробі вона спробує перший IP ще раз.
  5. Коли перший тайм-аут IP-адреси, браузер мовчки продовжує другий ip. Якщо це працює - сторінка з’являється, якщо ні - очікування триває.
  6. Не перевірений. Цей блог зазначає, що Chrome кешує DNS лише до 1 хвилини, коли ми дивимося на chrome: // net-Internals / # dns:

    Ємність: 100 Час життя (мс) для записів успіху: 60000 Час життя (мс) для записів про помилки: 0

Якщо перший IP працює, процес буде однаковим, і він завжди матиме успіх з першої спроби.


4

Замість того, щоб говорити людям того, чого ви не хочете, чому б не пояснити, чого саме ви намагаєтесь досягти?

Якщо про все, що вам потрібно, відомі дані, то перейдіть і дослідіть себе, або прочитайте документацію того веб-переглядача (якого є сотні), про який ви говорите.

Це може допомогти вам зрозуміти, що це не має нічого спільного з DNS.

Якщо веб-переглядач отримує запит, він спочатку переглядає різні кеші, щоб побачити, чи вже є URL-адреса, чи ні URL, а потім ім'я хоста.
Якщо ні, то він вдарить до системного рішення для вирішення імені хоста.

Якщо IP, який він отримує, не відповідає, він, безумовно, кешуватиме це внутрішньо як негативний результат пошуку , тому безпосередньо запит на ту саму URL-адресу знову в надії потрапити на інший запис A для нього, ймовірно, не буде служити меті, оскільки це буде зберегли результат імені хоста разом із негативним результатом IP-адреси.

Або, знаєте, ви могли б надати більше інформації.

EDIT: Я бачу, ви надали деяку інформацію між усіма вимогливими та розумними.

Дуже добре:

  1. Якщо веб-переглядач запитає у системного рішення для імені хоста, він поверне будь-яку інформацію для цього імені хоста. Якщо це означає 2 IP-адреси, вони повернуть 2 IP-адреси.
  2. Це залежить від браузера.
  3. Це залежить від браузера, але всі браузери, які я коли-небудь використовував, роблять один запит, і час вичерпається після стандартного тайм-ауту TCP CONNECT (); Я впевнений, що там є RFC про це ...
  4. Це залежить від браузера. Це не має нічого спільного з DNS або мережами.
  5. Ні.
  6. Ні.

Ви також, здається, не знаєте, що записи DNS зберігаються в кешованих файлах скрізь, особливо на клієнтах. Ці записи закінчуються, залежно від того, що призначено власником домену або кешами між вами та ним. Один годину до одного дня є загальним, тому не сподівайтесь, що вирішитель зробить ще один запит DNS, якщо ви наберете оновлення, як божевільний.


2
Додано пояснення того, чого я намагаюся досягти. Я після відомих даних, я сподівався, що хтось знає, тому що для пошуку відповідної інформації може знадобитися кілька днів. Затребуваний? Я прошу потрібну мені інформацію, я не можу вимагати - кожен вільний відповісти чи ні. Smartassery? Мені болить твій пост, і я не думаю, що цього заслуговую.
Sandman4

1
Я просто не хотів, щоб обговорення перетворювалося на полум'я проти балансування навантаження DNS. У будь-якому випадку, дякую, що вказали на TCP CONNECT ().
Sandman4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.