회의 중에 게이트웨이 A를 죽이면 일 분 뒤 터널이 B를 통해 돌아오지만, 연결은 작동해도 영상 통화는 아닐 수 있다. 이것이 독립된 주소를 가진 두 IPsec 게이트웨이 사이의 콜드 페일오버의 정직한 모습이다. 클라이언트는 엔드포인트를 다시 선택하고 새 관계를 구축하며, 이는 이전 세션의 암호화 상태를 옮기지 않고 도달 가능성을 복원한다. 순서를 따라가면 설계가 지킬 수 있는 약속이 분명해진다.

장면 설정: 두 개의 주소, 플로팅 IP 없음

게이트웨이 A는 하나의 도달 가능한 주소에서 응답하고 게이트웨이 B는 다른 주소에서 응답한다. A가 사라졌을 때 B를 선택하는 승인된 방법이 클라이언트에 있고, 두 게이트웨이가 주장하는 공유 외부 주소는 없다. 이 설계에서 가상 IP는 바로 그 공유 진입점을 뜻하며, 원격 접속 클라이언트에 할당된 내부 주소가 아니다.

이 정의가 중요한 이유는 두 아이디어가 티켓에서 뒤섞이고, 하나의 수정이 다른 하나의 수정이 아니기 때문이다. 공유 진입점이 게이트웨이를 따라가지 않았다는 보고는 하나의 설계를 설명한다. 노트북이 내부 주소를 잃었다는 보고는 클라이언트의 임대를 설명한다. 다른 소유자, 다른 로그, 다른 수리.

실패를 따라가기: 감지한 다음 다시 선택

먼저 무언가가 A가 응답을 멈췄음을 알아차린다. 터널 계층의 데드 피어 감지일 수도, 경로를 철회하는 라우팅 프로토콜일 수도, 결국 재연결을 강제하는 애플리케이션 타임아웃일 수도 있다. 각각 시간 규모가 다르며, 가장 느린 것이 보통 사용자가 얼마나 기다리는지를 결정한다.

그다음 클라이언트는 배포가 지원하는 메커니즘, 즉 두 번째로 구성된 원격, 정상 주소로 확인되는 DNS 이름, 또는 이제 다른 경로를 선호하는 라우팅으로 B를 선택한다. 선택은 정책 단계이며 실패 전에 존재해야 하고, 그렇지 않으면 우연히 일어난다.

B가 물려받을 수 있는 것과 없는 것

B는 A와 구성 템플릿, 인증 기관, 인증 정책을 공유할 수 있다. 살아 있는 보안 연관은 물려받을 수 없다. 세션 키, 보안 매개변수 색인, 시퀀스 상태는 A와 클라이언트가 수립한 관계에 속하며 B에는 그중 어느 것도 없다.

그 상태를 게이트웨이 사이에서 옮기는 것은 진짜 엔지니어링 문제이며, 그래서 strongSwan의 고가용성 문서는 이를 구성 플래그가 아니라 클러스터 설계로 다룬다. 특정 클러스터 레시피는 클라우드 네트워크를 위한 일반적인 답이 아니며, 뒷받침 인프라 없이 복사하면 연속성 대신 복잡성을 산다.

새 관계 수립

B가 선택되면 클라이언트는 새 IKE 교환, 즉 새로운 nonce, 새로운 Diffie-Hellman 값, 결과 연관을 위한 새로운 식별자를 수행한다. 인증은 B에서 다시 일어난다. 설계가 머신 자격 증명에 의존하면 재연결은 무인으로 진행될 수 있고, 인간 요소가 필요하면 페일오버가 완료되기 위해 누군가가 있어야 한다.

그 사용자 경험은 장애 중이 아니라 장애 전에 정의하라. 클라이언트가 무엇을 하고 얼마나 시도하며 포기할 때 무엇을 보여줄지 분명히 말해야 하는 것은 일 분의 재연결과 지원 전화의 차이가 보통 문서와 시험된 프로필이기 때문이다.

같은 내부 주소를 유지하는 것은 안정적인 로컬 신원을 기대하는 애플리케이션에 도움이 되지만 그 세션을 유지하지는 않는다. NAT 바인딩은 만료되고 TCP 연결은 재설정되며, 자체 타임아웃이 있는 모든 것은 재시도할지 스스로 결정한다.

병렬의 두 터널은 다른 설계

두 터널을 동시에 실행하는 것은 두 게이트웨이와 라우팅 설계가 지원할 때 유효한 패턴이다. 그러면 경로 선택이 활성 경로를 고르고, 반환 경로도 일치해야 하며, 그렇지 않으면 트래픽이 한 게이트웨이로 나가 다른 게이트웨이로 돌아오면서 이를 맞출 상태가 없다.

겹치는 터널 정책은 그 자체로 질서 있는 페일오버를 만들지 않는다. 두 후보를 만들 뿐이며, 그 사이에서 무언가, 즉 라우팅 메트릭, 정책 우선순위, 또는 클라이언트의 명시적 선호가 결정적으로 결정해야 한다.

어떤 형태를 선택하든 실패가 어떻게 감지되고, 대안이 어떻게 선택되며, 대안이 어떤 인증을 요구하고, 재연결이 얼마나 걸릴 것으로 예상되는지 계약을 적어라. 공유 IP는 발견을 단순화할 수 있지만 지속 상태의 동의어가 아니며, 가용성은 어느 쪽이든 설계다.

관련 글