хорошо, я погуглил задницу, копался через DNS и BIND, и не могу найти ответа на этот вопрос. Вызывает ли ответ 302-го сервера еще один DNS-поиск "Location", даже если 302 указывает на тот же URL-адрес?
Некоторая предыстория проблемы: я запускаю аппаратные балансировщики нагрузки и запускаю процесс входа в систему, который иногда застревает в «цикле»; то есть успешная аутентификация очищает поля и возвращает пустой экран входа в систему, плохая аутентификация правильно показывает «доступ запрещен». Моя рабочая теория (основанная на захвате пакетов) заключается в том, что процесс входа в систему возвращает браузеру ответ 302, что заставляет браузер выполнять еще один поиск http: //internal.prod.server/application_context/login.jsp и позволяя браузеру перейти на другой адрес GSLB.
К сожалению, в минувшие выходные это перестало быть очевидным, поэтому я не могу получить точный захват пакета, показывающий плохое поведение. К большому сожалению, я один из тех сумасшедших сетевых фанатов, которые не могут просто признать, что они больше не работают, и должны окончательно сказать, в чем заключалась первоначальная проблема ...
изменить: запрос с балансировкой нагрузки
; <<>> DiG 9.7.0-P1 <<>> ps.svc.cfx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31149
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; QUESTION SECTION:
;ps.svc.cfx. IN A
;; ANSWER SECTION:
ps.svc.cfx. 10 IN A 192.168.125.202
;; AUTHORITY SECTION:
ps.svc.cfx. 3600 IN NS gslb.cn.example.com.
;; ADDITIONAL SECTION:
gslb.cn.example.com. 21600 IN A 172.19.1.200
gslb.cn.example.com. 21600 IN A 172.18.1.200
;; Query time: 10 msec
;; SERVER: 172.18.1.2#53(172.18.1.2)
;; WHEN: Mon Aug 2 13:01:21 2010
;; MSG SIZE rcvd: 108
Ответчик 172.18.1.2 в этом примере представляет собой кластер серверов BIND, на которых выполняются внутренние / внешние представления и синхронизируются со скрытым мастером.
Нет ничего особенного в 302 ответ, который должен вызвать поиск в DNS. Однако, в зависимости от того, как настроены локальные настройки DNS, результат DNS может истечь в любое время. Таким образом, вы должны учитывать возможность поиска после первого запроса и до второго (вызванного 302).
Чтобы быть консервативным, вам нужно разрешить поиск DNS для каждого запроса.