OpenVPN 서버 도우미: 네트워크와 넷마스크, 절대 CIDR 아님
IPv4 서버 도우미는 정렬된 네트워크와 점 표기 마스크를 받으며 CIDR 접미사는 받지 않습니다. 범위를 확인하고 로그에서 풀을 확인한 다음 안전하게 크기를 조정하세요.
CIDR 접미사를 점 표기 마스크와 섞은 서버 줄은 데몬이 포트를 열기도 전에 멈춥니다. IPv4용 server 도우미는 정렬된 네트워크 주소와 그다음 점 표기 형식의 넷마스크라는 두 개의 별도 인수를 원합니다. 그 줄에서 나머지는 모두 추론이며, 풀 크기와 클라이언트 마스크가 틀어지는 곳이 바로 그 추론입니다.
도우미가 받는 두 인수
네트워크를 먼저 쓰고 마스크를 다음에 쓰며, 주소에 아무것도 붙이지 않습니다:
server 10.72.16.0 255.255.240.0이것이 /20의 형식입니다. 아래 줄이 실수이며, 실행 시가 아니라 옵션 구문 분석 단계에서 실패합니다:
server 10.72.16.0/20 255.255.240.0이것을 디버깅할 때는 두 개념을 분리하세요. 접두사 길이와 점 표기 마스크는 같은 범위를 설명하지만 도우미는 둘을 동시에 받지 않으며, 거부된 줄은 산술이 아니라 지시자를 지목하는 옵션 오류를 냅니다.
마스크를 입력하기 전에 네트워크를 정렬하세요
첫 주소는 범위의 네트워크 주소이지 그 안의 편한 클라이언트 주소가 아닙니다. /20의 범위는 10.72.16.0에서 10.72.31.255까지이며, 그중 첫 번째만 유효한 네트워크 인수입니다. /21은 255.255.248.0을 사용하고 10.72.16.0부터 10.72.23.255까지 포괄하므로 그 줄은 server 10.72.16.0 255.255.248.0입니다.
접두사를 바꾸면 범위가 바뀔 뿐 그 밖의 것은 바뀌지 않으며, 클라이언트 하나가 받는 주소 수는 바뀌지 않습니다. 그것은 이 줄의 마스크가 아니라 토폴로지의 속성이기 때문입니다.
서버 쪽에서 풀을 확인하세요
자세한 로깅과 함께 인스턴스를 포그라운드에서 시작하고 도우미가 내보내는 줄을 읽으세요. 도우미가 만든 풀은 시작 시 출력되며, 이는 손으로 산술을 계산하는 것보다 신뢰할 수 있습니다:
openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195출력 상단 근처에서 풀 요약을 찾으세요. 도우미가 예약한 범위가 나열되며, 그 범위가 의도와 맞지 않으면 마스크 산술이 무엇을 말하든 줄의 인수가 잘못된 것입니다.
그다음 클라이언트 하나를 연결하고 그 클라이언트에 부여된 주소를 기록한 줄을 찾으세요. 풀 범위 옆에 있는 그 하나의 주소가, 클라이언트가 예약된 블록 안에 들어왔는지 아니면 예상하지 못한 곳에 들어왔는지를 알려 줍니다. 둘이 어긋나면 클라이언트가 아니라 인수를 고치세요. 둘이 일치하는데도 클라이언트가 아무것도 도달하지 못한다면, 풀은 처음부터 문제가 아니었습니다.
토폴로지를 염두에 두고 클라이언트의 마스크를 읽으세요
클라이언트가 터널 인터페이스에 /30을 표시한다고 해서 풀이 깨졌다는 증거는 아닙니다. 지점 간 주소 지정에서는 각 클라이언트가 작은 블록을 받고 그 인터페이스의 마스크가 그 블록을 나타내며, 서버의 풀은 전체를 포괄합니다. 서브넷 토폴로지에서는 대신 클라이언트의 마스크가 풀의 마스크와 일치합니다. 따라서 마스크만으로는 어떤 토폴로지가 적용 중인지 알 수 있을 뿐, 풀이 올바르게 작성되었는지는 알 수 없습니다.
결론을 내리기 전에 설정된 토폴로지와 할당된 주소를 함께 확인하세요:
ip -4 addr show tun0주소가 풀 안에 있고 마스크가 풀보다 좁다면 그것은 토폴로지가 제 일을 하는 것입니다. 주소가 풀 밖에 있다면 풀이 잘못된 것이며, 클라이언트 쪽 점검으로는 고칠 수 없습니다.
운영 중인 풀 변경
현재 풀, LAN, 또는 이미 클라이언트로 푸시된 경로와 겹치지 않는 범위를 고르세요. 겹침은 재시작을 견디고 며칠 뒤 한 사이트가 한 방향에서 도달 불가능한 모습으로 나타나는 장애입니다.
줄을 바꾸고 재시작한 뒤 사용자를 다시 들이기 전에 시작 시 풀을 다시 읽으세요. 새 범위가 무엇인가와 충돌하면 같은 시작 출력이 즉시 보여 주며, 되돌리는 것은 한 줄 편집과 한 번 더 재시작입니다.
변경 후 한동안 이전 범위를 예약된 상태로 두세요. 늦게 다시 연결하는 클라이언트는 이전 풀의 주소를 아직 들고 있을 수 있고, 그 주소를 재사용하는 새 범위는 라우팅 장애처럼 보이는 중복 할당을 만듭니다. OpenVPN 2.6 설명서는 도우미의 인수와 그 확장을 문서화하며, 어떤 지시자가 이웃과 같은 표기를 쓴다고 가정하기 전에 읽어 볼 가치가 있습니다.