IP 지리 정보
IP 위치 서비스는 독립적으로 설정할 수 있는 두 데이터 원본으로 구성됩니다. 하나는 공인 IP 하나를 식별하고 다른 하나는 지역 조건을 CIDR로 변환합니다. 세션, 허용 목록, 요청·WAF 로그, 이벤트 센터, 스캐너 차단, SSH 보안 및 게이트웨이 접근 범위에 표시 정보나 규칙 데이터를 제공합니다.
위치 결과는 판단을 돕는 참고 정보일 뿐 정확한 위치 추적이 아니며, 보안이 중요한 엔드포인트의 유일한 인증 조건으로 사용해서도 안 됩니다.
두 가지 API
| API | 용도 |
|---|---|
| IP 조회 데이터베이스 | 공인 IP 하나를 국가, 광역·기초 지역 및 통신사 등의 정보로 변환 |
| CIDR 데이터베이스 | 광역·기초 지역 목록을 제공하고 지역·통신사 조건을 규칙에 사용할 CIDR로 변환 |
두 API는 각각 공식 온라인 서비스 또는 사용자 지정 서비스를 선택할 수 있고 서로 다른 방식을 조합할 수도 있습니다. 예를 들어 IP 조회에는 공식 서비스를 사용하고 CIDR 조회에는 LAN에 자체 호스팅한 서비스를 사용할 수 있습니다.
공식 온라인 서비스
‘공식 온라인 서비스’를 선택하면 다음 주소를 사용합니다.
- IP 조회:
https://ipaddress.fnknock.cn/api/v1 - CIDR 데이터베이스:
https://cidr.fnknock.cn/api/v1
공식 서비스는 설정할 항목이 가장 적고 지역 데이터가 자동으로 관리됩니다. 다만 fn-knock 실행 환경에서 도메인을 해석하고 해당 HTTPS 서비스에 접속 가능한지 확인합니다. 오프라인 네트워크나 외부 접속이 제한된 환경에서는 사용자 지정 서비스를 사용합니다.
사용자 지정 서비스
페이지에서 권장하는 호환 구현은 다음과 같습니다.
| 서비스 | 프로젝트 | 기본 입력값 |
|---|---|---|
| IP 조회 데이터베이스 | go-ipaddress-api | http://127.0.0.1:30661 |
| CIDR 데이터베이스 | go-cidr-api | http://127.0.0.1:30662 |
시스템 설정 → 위치에서 ‘사용자 지정 서비스’를 선택하고 서비스 루트 주소를 입력합니다. 주소는 http:// 또는 https://로 시작하는 형식만 허용하며 저장할 때 마지막 슬래시는 제거됩니다.
https://example.test 같은 도메인 루트 주소를 입력하면 fn-knock가 /api/v1 API 경로를 자동으로 추가합니다. 주소에 https://example.test/custom/처럼 사용자 지정 경로가 이미 있으면 해당 경로 아래의 ip/lookup, provinces 등의 API를 직접 요청합니다.
Docker에서 127.0.0.1은 fn-knock 컨테이너 자체를 가리킵니다. 자체 호스팅 서비스가 다른 컨테이너나 호스트에 있다면 같은 Docker 네트워크의 서비스 이름, 컨테이너에서 접속할 수 있는 호스트 주소 또는 명시적으로 공개한 포트를 사용합니다.
테스트 및 저장
‘연결 테스트’는 현재 입력값을 사용하므로 먼저 저장할 필요가 없습니다.
- IP 조회 테스트는
8.8.8.8을 조회하고 응답에 성공 상태와 조회 결과가 있는지 확인합니다. - CIDR 테스트는 광역 지역 목록을 가져오고 통신사 필터 지원 여부도 계속 확인합니다.
두 테스트가 모두 통과한 뒤 저장합니다. 테스트 성공은 API와 응답 형식을 사용할 수 있다는 뜻일 뿐 모든 주소와 지역 데이터가 완전하다는 보장은 아닙니다.
지역 선택에서 China Telecom, China Unicom 또는 China Mobile 통신사별 CIDR을 필터링할 수 있습니다. 자체 호스팅 CIDR 데이터베이스에서 통신사 필터를 사용하려면 0.1.3 이상이 필요합니다. 이전 버전에서는 연결 테스트 시 업그레이드 안내가 나오지만 일반 광역·기초 지역 조회는 계속 사용할 수 있습니다.
페이지에 데이터가 표시되는 과정
IP 위치 조회는 백그라운드 큐에서 비동기로 실행되고 캐시됩니다. 세션, 로그, 허용 목록 또는 이벤트 세부 정보를 처음 열면 먼저 ‘위치 확인 중’으로 표시된 뒤 위치 정보가 채워질 수 있습니다. 사설망과 루프백 주소는 공인 IP 위치 조회를 건너뜁니다.
기존 레코드의 위치는 생성할 때 기록된 데이터이거나 이후 캐시에서 채운 데이터일 수 있습니다. 따라서 데이터 원본을 바꿔도 모든 과거 레코드가 즉시 같은 정보로 새로 고쳐진다고 가정하면 안 됩니다.
검증 및 제한
저장한 뒤 다음 위치에서 같은 공인 IP를 표본 확인합니다.
- 요청 로그 또는 WAF 로그
- 세션 레코드, 허용 목록 또는 일반 차단 목록
- 이벤트 센터
- SSH 로그인 로그
서로 다른 위치에서도 같거나 비슷한 결과가 표시되는지 확인합니다. 실패하면 기본 URL, 프로토콜, DNS, 컨테이너 네트워크, TLS 인증서, 서비스 응답 형식 및 fn-knock 백엔드 로그를 확인합니다.
모든 요청이 CDN, 리버스 프록시, 사설망 또는 루프백 주소로 표시된다면 위치 데이터베이스를 조정하기 전에 실제 클라이언트 IP를 먼저 수정합니다.
위치 데이터베이스는 최신 정보 반영이 늦을 수 있고 통신사가 IP를 재사용할 수도 있습니다. 지역 규칙은 여행, 로밍 또는 기업 인터넷 출구 사용자를 잘못 차단할 수 있습니다. 보안이 중요한 접근의 유일한 조건으로 사용하지 말고 CIDR, 로그인 인증 및 로그 관찰과 함께 사용합니다.
