Windows VPN 게이트웨이: 세 가지 일, 세 명의 소유자
터널을 끝내고, 네트워크 사이를 전달하고, 주소를 다시 쓰는 것은 별개의 결정입니다. 또 하나의 NAT 계층을 더하기 전에 각각에 소유자를 지정하십시오.
누군가 VPN 서버라고 말할 때마다 세 가지 기능이 함께 묶입니다. 암호화된 터널을 끝내는 일, 네트워크 사이로 패킷을 옮기는 일, 그리고 선택적으로 주소를 다시 쓰는 일입니다. Windows에서는 한 대의 장비가 셋을 모두 수행하더라도 이들은 스택의 서로 다른 부분에 있습니다. 각각은 고유한 입력과 고유한 실패 방식을 가지며, 각각을 다른 제품에 맡길 수 있습니다. 이를 종이 위에서 분리하는 것이 작은 배포를 이해 가능하게 유지하는 가장 저렴한 방법입니다.
읽기 좋은 설계는 기계를 역할로 묘사하는 대신 각 흐름의 소유자를 지명합니다.
끝내기, 전달하기, 변환하기
RRAS는 Windows 네이티브 경우에 터널을 처리합니다. 사용자를 인증하고, 풀에서 주소를 할당하며, 어떤 목적지가 허용되는지 결정합니다. 다른 VPN 제품이 수신기와 가상 어댑터를 대신 소유하고, Windows에는 복호화된 패킷 전달만 맡길 수도 있습니다. Microsoft의 Remote Access 문서는 VPN, 사이트 간, 라우팅 역할을 분리하며, 라우팅 역할을 설치해도 두 번째 VPN 정체성이 생기지 않습니다. 또 다른 VPN 애플리케이션을 추가해도 그 어댑터가 기존의 모든 게이트웨이 기능에 넘어가지는 않습니다.
변환은 세 번째이자 가장 선택적인 일입니다. 전달 뒤에 위치하며 원격 네트워크가 보는 출발지 주소를 바꿉니다. 그것이 필요한지는 목적지 네트워크가 출발지로 무엇을 받아들이는지에 달려 있으며, 그 장비가 VPN 게이트웨이라고 불리는지와는 무관합니다.
어댑터와 풀의 소유자는 누구인가
여러 제품이 호스트를 공유할 때 네 가지에는 각각 하나의 소유자가 필요합니다. 수신 포트, 어댑터의 수명, 클라이언트 주소 풀, 그리고 경로입니다. 어댑터가 까다로운데, VPN 서비스가 이를 동적으로 만들고 연결이 끊길 때 파괴할 수 있기 때문입니다. 그 인터페이스를 영구히 이름 붙은 네트워크 카드로 취급하고 그 이름에 대해 규칙을 쓰는 방식은 다음 재연결까지만 작동합니다. 인터페이스 이름을 하드코딩하는 대신 제품이 지원하는 통합 지점을 사용하십시오.
주소 풀이 두 번째 충돌입니다. 겹치는 범위를 나눠 주는 두 제품은 올바르게 보이지만 아무것도 전달하지 않는 라우팅을 만듭니다. 풀을 경로와 같은 문서에 두어 한쪽의 변경이 다른 쪽에 대해 보이게 하십시오.
출발지를 보존할 것인가, 다시 쓸 것인가
클라이언트의 출발지 주소를 보존하면 사용자별 가시성이 유지됩니다. 로그, 할당량, 방화벽 규칙이 한 사용자를 다른 사용자와 구별할 수 있습니다. 대가는 목적지 LAN이 게이트웨이를 향한 반환 경로를 필요로 하고 누군가 그것을 유지해야 한다는 것입니다. NAT로 출발지를 다시 쓰면 그 요구가 사라지고 가시성도 함께 사라집니다. 의도적으로 선택하고 다시 쓰기가 어떤 정보를 숨기는지 적어 두십시오.
사설 네트워크 접근, 인터넷 출구, 게이트웨이 자체에서 끝나는 연결은 서로 다른 세 경로입니다. 모두 같은 처리가 필요한 것은 아닙니다.
흐름을 한 문장으로 설명하기
한 문장이 설계를 설명해야 합니다. 이 서비스가 어떤 클라이언트를 받아들이고, 그 전달 정책이 어떤 자원을 허용하며, 반환 경로가 어떻게 흐름을 완성하는지입니다. 그 문장이 참이 되려고 두 번째 NAT 계층이 필요하다면, 그것은 보통 앞의 조각들이 정리되지 않았다는 신호입니다. 호스트는 또한 공유된 장애 및 신뢰 경계이므로 라우팅 변경이 사용자 접근과 관리 모두에 영향을 줄 수 있습니다. 후자를 위해 독립적인 복구 경로를 유지하십시오.
구성 옆에 역할 목록을 유지하십시오. 어떤 제품이 끝내고, 어느 것이 전달하고, 어느 것이 변환하며, 각각을 누가 바꿀 수 있는지입니다. 그 목록이 다음 변경을 검토 가능하게 만듭니다.
그 문장이 불분명해질 때 또 하나의 변환 계층을 더하는 것은 좀처럼 명확하게 하지 못합니다. 하나를 제거하는 쪽이 보통은 명확하게 합니다.