사이트가 충돌하기 전에 프라이빗 VPN 주소 범위를 계획하세요
겹치는 프라이빗 범위는 터널이 생기기 전에 라우팅을 깨뜨립니다. 프리픽스를 목록화하고 클라이언트 풀을 사이트 LAN과 분리해 설계하며 먼 쪽에서 테스트하세요.
둘 다 192.168.1.0/24를 쓰는 두 사이트가 각각 인터넷에는 도달하면서 서로에게는 도달하지 못할 수 있습니다. 게이트웨이는 오류를 내지 않고, 해당 프리픽스에 경로 하나를 설치해 모든 패킷을 먼저 요구한 피어로 보냅니다. 핸드셰이크, 암호 목록, 인터페이스 메트릭 어디에도 어느 피어가 잘못됐는지는 나오지 않습니다. 주소 계획은 누군가 접속하기 전에 이 문제를 정리하는 설계의 일부입니다.
도달 가능해야 하는 모든 공간을 목록화하세요
설정 중인 범위만이 아니라 라우팅해야 하는 범위를 적으세요. 사이트 LAN, VPN 클라이언트 풀, 클라우드 서브넷, 관리 및 대역 외 네트워크, 랩 세그먼트, 그리고 사용자가 집에서 흔히 접속하는 네트워크가 포함됩니다. 192.168.1.0/24로 출고되는 가정용 라우터는 가상의 이야기가 아니며 같은 프리픽스가 호텔과 회의장에도 나타납니다. 목록은 프리픽스, 소유자, 목적의 표이고 같은 범위를 두 번 배정하지 못하게 하는 유일한 산출물입니다.
| Prefix | Purpose | Owner |
|---|---|---|
| 10.20.0.0/16 | site LANs | network team |
| 10.20.100.0/22 | VPN client pool | remote access |
| 10.20.200.0/24 | management | operations |
오늘만 다루는 계획은 첫 신규 사이트에서 무너지므로 내년에 예상하는 프리픽스도 추가하세요. 각 행에는 누가 소유하는지만이 아니라 누가 바꿀 수 있는지를 표시하세요.
재사용이 이 일을 어렵게 만듭니다. 프라이빗 공간은 유한하고 모든 조직이 10.0.0.0/8을 자기 것으로 여깁니다. 계획은 미래의 게스트 LAN이 당신의 프리픽스에 떨어지지 않는다고 약속할 수 없으므로, 설계는 그런 일이 생겼을 때 무엇이 일어나는지 말해야 합니다. 대부분의 일은 클라이언트 풀을 요약할 수 있는 하나의 연속 블록에 두고 다른 팀이 이미 라우팅하는 범위는 절대 할당하지 않는 두 규칙이 해냅니다. 나머지는 누군가 최신으로 유지하는 기록입니다.
겹침이 라우팅 테이블을 이기는 이유
경로는 프리픽스와 다음 홉이며, 포워딩은 가장 긴 일치 프리픽스를 고릅니다. 두 피어가 같은 192.168.1.0/24를 요구하면 테이블에는 그 항목이 하나뿐이므로 두 사이트의 트래픽이 같은 터널로 나갑니다. 두 번째 사이트는 설정 오류가 아니라, 첫 번째가 같은 주소에 응답하기 때문에 도달할 수 없을 뿐입니다. 일치는 메트릭을 보기 전에 일어나므로 어떤 메트릭도 둘을 분리하지 못합니다.
실패는 비대칭이고 잘못 읽기 쉽습니다. 사이트 A의 호스트는 게이트웨이와 일부 서비스에 도달하지만 사이트 B의 호스트는 아무 응답도 하지 않으며, 로그는 양방향으로 건강한 터널을 보여 줍니다. 그 패턴은 인증이나 방화벽 고장이 아니라 주소 충돌이며, 확인하려면 목록과 대조한 테이블 덤프 하나가 필요합니다.
클라이언트 풀과 사이트 범위를 의도적으로 설계하세요
VPN 클라이언트 풀은 게이트웨이가 한 번에 하나씩 주소를 내주는 범위이므로 그 크기가 동시 접속을 제한합니다. /24는 254개의 사용 가능한 주소를 담아 작은 팀에는 넉넉하고 컨테이너를 돌리는 지점에는 빠듯하며, /22는 프라이빗 공간 안에서 추가 비용이 없어 논쟁을 없앱니다. 풀은 연속으로 두고 모든 사이트 LAN과 떨어뜨려, 클라이언트 쪽 요약 경로가 사이트를 삼키지 않게 하세요. 적히지 않은 범위를 다음 엔지니어가 할당하므로 풀이 비어 있어도 범위는 예약하세요.
사이트는 예상 호스트와 성장에 맞춰 측정된 범위를 받고, 깔끔하게 요약되는 경계에 정렬됩니다. 할당 사이의 의도적 간격은 비용이 없고 나중에 집계할 여지를 삽니다.
그다음 사람들이 잊는 방향인 돌아오는 경로를 확인하세요. 각 사이트 라우터에는 클라이언트 풀로 가는 경로가, 집중 장치에는 자신이 서비스하는 모든 사이트 프리픽스로 가는 경로가 필요합니다. 풀로 돌아가는 경로가 없는 깔끔한 프리픽스 표는 여전히 깨진 설계이며, 증상은 아무것도 응답하지 않는 단방향 연결입니다. 두 방향을 같은 표에 두고 사이트가 추가될 때마다 검토하세요.
변환과 재번호는 서로 다른 문제를 해결합니다
겹침이 이미 있으면 정직한 선택 두 가지와 부정직한 선택 하나가 있습니다. 재번호는 충돌을 영구히 없애지만 유지보수 시간과 잊고 있던 하드코딩된 주소 전부를 치러야 합니다. 주소 변환은 한쪽의 프라이빗 범위를 터널 경계에서 다른 범위로 매핑하며, 두 사이트를 그대로 두지만 상태를 더하고 주소를 내장한 프로토콜을 깨며 로그를 읽기 어렵게 만듭니다. 부정직한 선택은 단일 서버로 가는 호스트 경로이며, 한 가지 테스트만 통과하고 나머지 전부에서 실패합니다.
통제와 수명으로 고르세요. 소유하고 일정을 잡을 수 있는 사이트는 재번호 경로에 속하고, 건드릴 수 없는 파트너 네트워크로 하나의 애플리케이션에 쓰는 것은 문서화된 매핑과 함께 변환 후보입니다. 설정 파일 안에만 존재하는 변환은 파일이 교체되는 순간 사라지므로 그 매핑을 적어 두세요.
배포 전에 먼 쪽에서 테스트하세요
게이트웨이 자체 LAN이 대부분의 라우팅 실수를 감추므로 게이트웨이를 호스팅하지 않는 네트워크에서 테스트하세요. 평범한 가정용 라우터 뒤에 클라이언트를 연결하고, 각 사이트의 서비스와 클라이언트 풀 안의 서비스에 도달하세요. 돌아오는 경로는 독립적으로 실패하므로 반대 방향도 사이트 호스트에서 클라이언트로 테스트하세요. 게이트웨이에 핑만 하는 테스트는 터널이 살아 있음을 증명할 뿐입니다.
범위, 소유자, 변환 매핑을 하나의 공유 기록에 두고 다음 사이트가 무엇이든 할당하기 전에 읽게 하세요. 사이트가 추가될 때 검토하고, 문서화되지 않은 범위를 놀라움이 아니라 결함으로 다루세요.
기록이 곧 결과물입니다. 세 사람의 기억에 사는 계획은 그중 한 사람이 휴가를 간 첫 순간 무너지고, 운영 환경에서 발견된 겹침은 표보다 더 큰 비용을 치르게 합니다.