Mac IKEv2 프로파일에서 IncludeAllNetworks는 무엇을 하는가?
이 키는 명명된 예외와 함께 트래픽을 터널로 제한합니다. 기본 경로가 아니며 EnforceRoutes를 무시하고, 게이트웨이는 허용한 트래픽을 전달해야 합니다.
네이티브 IKEv2 프로파일에서 흥미로운 키는 체크박스가 아니라 IncludeAllNetworks이며, 그것이 바꾸는 것은 시스템이 터널 밖으로 보낼 수 있는 범위입니다. 이 값을 1 으로 설정하면 macOS는 터널을 사실상 모든 IP 트래픽의 경로로 취급하되, 자체적으로 정의하고 사용자가 확장할 수 있는 예외 집합은 제외합니다. 이 키는 메뉴가 아니라 프로파일 사전에 있기 때문에, 모든 트래픽 보내기라는 구절을 읽을 때 대부분의 사람이 가정하는 의미도 아닙니다.
이 키가 네트워크 스택 안에서 바꾸는 것
이 키가 없으면 터널은 경로가 연결된 네트워크 인터페이스처럼 동작합니다. 그 인터페이스를 지나는 기본 경로가 대부분의 트래픽을 붙잡고, 다른 인터페이스의 더 구체적인 경로는 자기 프리픽스에 대해서는 여전히 우선합니다. 이것은 정상적인 라우팅이며, 분할 터널링이 거의 우연히 일어나는 이유이기도 합니다.
키가 활성화되면 범위는 라우팅 선호가 아니라 터널 이외의 무엇을 통해 나갈 수 있는 트래픽에 대한 정책이 됩니다. 시스템은 연결을 유지하기 위해 여전히 네트워크에 도달해야 하므로, 정책은 예외가 없다고 가장하는 대신 예외를 함께 제공합니다. 활성화해도 머신에 작동하는 경로가 전혀 없는 상태가 되지는 않습니다. 얻는 것은 예상보다 짧은 경로 목록이며, 그 목록은 문서화되어 있습니다.
실질적인 결과는 경로를 추가하는 것이 더 이상 결과를 설명하지 못한다는 것입니다. 대상에 여전히 직접 도달한다면, 질문은 어느 경로가 이겼는지가 아니라 예외가 그것을 덮는지입니다.
예외는 설정의 일부이다
Apple은 기본 키 옆에 여러 제외를 문서화하며, 로컬 네트워크, Apple Push Notification 트래픽, 셀룰러 서비스, 기기 통신을 포함합니다. 각각 자체 플랫폼 및 버전 조건이 있으므로 같은 프로파일도 macOS 릴리스마다 다르게 동작할 수 있습니다.
그 제외 중 일부는 본질적입니다. 캡티브 포털 처리를 포함해 네트워크 접근을 설정하고 유지하는 데 필요한 트래픽은 허용되어야 하며, 그렇지 않으면 머신이 아무것에도 연결되지 않은 채 고칠 수 없는 상태가 될 수 있습니다.
다음은 의도적인 선택입니다. 가정용 프린터를 허용하는 것은 업무 리소스 프리픽스를 허용하는 것과 같은 결정이 아니며, 둘 다 알림이 계속 도착하도록 APNs를 도달 가능하게 두는 것과 다릅니다. 어떤 것을 활성화했는지는 나중에 버그 보고서에서 알아내는 대신 프로파일 자체에 기록하십시오.
기본 경로와 같지 않은 이유
기본 경로는 라우팅 테이블 항목이며, 라우팅 테이블은 집니다. 더 구체적인 프리픽스가 그것을 이기고, 애플리케이션에 한정된 연결이 그것을 우회할 수 있으며, 더 나은 메트릭을 가진 두 번째 인터페이스가 아무도 VPN 구성을 건드리지 않고 넘겨받을 수 있습니다.
Apple의 라우팅 지침은 그 차이를 분명히 하며, 일반적인 기본값은 더 구체적인 경로로 재정의될 수 있지만, 더 넓은 범위 설정은 터널이 운반해야 하는 트래픽과 그에서 제외되는 것을 정의합니다. 하나는 선호이고, 다른 하나는 규칙에 더 가깝습니다.
이 차이는 누출을 진단하는 방식도 바꿉니다. 기본 경로에서는 경로와 메트릭을 검사하고, 범위 키에서는 프로파일 개정, 설치된 예외, 버전별 동작을 검사합니다. 라우팅 테이블은 더 앞서 내려진 결정의 하류에 있기 때문입니다.
EnforceRoutes는 다른 스위치이다
EnforceRoutes 같은 아이디어의 엄격한 버전처럼 들리며, 더 많은 키가 더 많은 적용 범위를 뜻한다고 믿고 둘을 겹쳐 놓는 사람들이 있습니다. Apple은 IncludeAllNetworks 가 활성화되면 이 키가 무시된다고 문서화하므로, 그 조합에서 두 번째 키는 아무것도 사지 않습니다.
더 넓은 범위를 사용하지 않는 구성의 대안으로 취급하고, 보강으로 취급하지 마십시오. 각 키가 단독으로 무엇을 하는지 설명할 수 없다면, 둘 다 추가하는 것은 프로파일 검토를 더 어렵게 만들 뿐입니다.
게이트웨이와 프로파일 소유자가 합의해야 하는 것
클라이언트 설정은 서버가 전달하도록 구성된 적 없는 트래픽을 전달하게 강제할 수 없습니다. 게이트웨이는 세션을 수락하고, 주소를 할당하고, 도달하려는 프리픽스에 대한 반환 경로를 제공하고, 선택한 구성으로 DNS를 제공해야 합니다. 하나의 프리픽스만 라우팅한다면 클라이언트의 넓은 범위는 도착했다가 죽는 트래픽을 만들어냅니다. 게이트웨이 경로 밖의 대상에 대한 요청 하나면 일 분 안에 그것이 증명됩니다.
앱이 소유한 터널은 다시 별개의 사례이며, 공급자는 지원되는 동작을 구현하거나 노출해야 합니다. 두 번째 네이티브 IKEv2 프로파일을 설치해도 다른 앱이 이미 관리하는 터널은 바뀌지 않으며, IKEv2 키는 다른 클라이언트가 읽을 OpenVPN 지시문이 아닙니다.
현재 키 목록과 버전 조건은 몇 년 전에 누군가 복사한 프로파일이 아니라 Apple의 IKEv2 페이로드 참조 를 읽으십시오.
프로파일 개정을 전체로 받아들이기
원격으로 관리되는 Mac을 변경하기 전에 대상 macOS 버전, 의도한 인터넷 출구, 도달 가능하게 유지해야 하는 사설 프리픽스, 활성화하는 모든 제외를 적어 두십시오. 그런 다음 변경하려는 터널에 의존하지 않는 복구 경로를 보존하십시오.
새로운 공개 요청, 사설 요청, 두 주소 체계, 이름 확인을 테스트하고, 설계 파일이 아니라 설치된 개정을 확인하십시오. 여전히 직접 통과하는 것이 있다면, 그것이 문서화된 예외인지, 다른 연결 컨텍스트인지, 실제 구성 오류인지 판단하고, 무관한 키를 넓히는 대신 그 셋 중 하나를 바꾸십시오.