У меня есть два сервера, назовем их Майло и Отис. Теперь Майло и Отис настроены как активно-пассивная пара высокодоступных серверов, где Майло обычно является главным, а Отис находится в режиме ожидания, ожидая маловероятного отказа Майло, когда Отис возьмет на себя общий виртуальный IP-адрес. У меня вопрос, что происходит с SSL-соединением во время сбоя.
Учтите следующее:
Подхватывает ли Отис сеансы SSL, которые были у Майло, автоматически? Мой браузер начинает взаимодействовать с Отисом, и Отис говорит: «Эй, мы, наверное, сначала должны пожать руку»? Приветствуются любые комментарии / ответы по этому поводу.
Когда происходит аварийное переключение, текущие активные соединения разрываются. Однако это произойдет на уровне TCP, поэтому SSL / TLS даже не войдет в сцену. TCP-соединение требует, чтобы обе конечные точки знали о соединении и имели правильную информацию (порядковые номера, размеры окон и т. Д.), И поэтому, когда IP-адрес выходит из строя, резервная машина не будет знать TCP-соединения, которые установил мастер. . Когда резервная машина получает пакеты, которые являются частью предыдущих TCP-соединений, она ответит пакетом RST, который заставит клиента закрыть соединение.
Даже если TCP-соединения были восстановлены, аналогичная ситуация возникла бы с SSL / TLS. Каждый сеанс требует состояния на каждом конце, включая сеансовый ключ (который на самом деле защищает данные приложения). На резервной машине не будет этого состояния сеанса, поэтому существующие сеансы будут прерваны.