무엇이 조정되는지 이해하세요
제어 플레인은 노드 등록을 관리하고 네트워크 정보를 배포합니다. 데이터 트래픽은 연결성에 따라 직접 피어 연결 또는 릴레이를 사용할 수 있습니다. 코디네이터를 실행한다고 해서 모든 패킷이 이를 통과하는 것은 아닙니다.
가입은 의도적으로 진행하세요
관리 API을 보호하고 수명이 짧거나 적절히 범위가 지정된 등록 방법을 사용하세요. 분실되거나 폐기된 기기를 제거하세요. 메시에 참여할 수 있는 능력이 모든 서비스에 대한 접근을 의미해서는 안 됩니다.
ACL 및 경로 검토
사용자와 노드 간에 최소 권한 규칙을 적용하세요. 광고된 서브넷 경로와 출구 노드는 도달 가능한 네트워크를 확장하므로 명시적 승인이 필요합니다. 거부된 트래픽도 허용된 트래픽만큼 신중하게 테스트하세요.
복구 자료를 보관하세요
지원되는 버전의 절차에 따라 구성, 상태 및 키를 백업하세요. 메시가 실패할 경우 VPS를 관리할 방법을 유지하세요. 제어 플레인을 변경하기 전에 클라이언트 호환성과 업그레이드 노트를 확인하세요.
등록, 라우팅 및 정책은 별도의 확인 사항입니다
Headscale은 호환되는 Tailscale 클라이언트를 조정합니다. 직접 연결과 DERP 릴레이 경로는 네트워크 동작이 다릅니다. 서브넷 라우터가 범위를 알리고 제어 서버가 이를 승인하며 클라이언트가 경로를 수락해야 합니다. 라우팅 노드에서 포워딩을 활성화하고 알리는 범위를 좁게 유지하세요. 승인된 경로라도 누가 어떤 대상과 포트를 사용할 수 있는지 제한하는 접근 정책이 필요합니다.
- 제어 서버의 경로 목록 확인
- 허용된 기기에서 테스트
- 거부되어야 하는 기기에서 동일한 테스트를 반복하세요
headscale nodes list-routes공식 문서: Headscale 라우트
복구 경로를 메시 내부에만 두지 마십시오
서버 콘솔에 접근할 수 있는 두 번째 경로 또는 엄격히 제한된 관리자 경로를 유지하세요. 코디네이터, 릴레이 또는 클라이언트를 사용할 수 없을 때 어떤 일이 발생하는지 테스트하세요. 설치된 버전에 따라 제어 영역 상태와 키를 보존하세요. 프라이빗 메시는 액세스를 단순화할 수 있지만, 자체 복구를 방해하는 문서화되지 않은 의존성이 되어서는 안 됩니다.
제어 영역 ID 및 복구 경로 수정
안정적인 HTTPS 이름, 지원되는 Headscale 릴리스, 호환되는 Tailscale 클라이언트를 선택하세요. 해당 정확한 릴리스와 함께 제공되는 구성 예시를 읽으세요. 다른 릴리스에서 복사한 구성은 검증에 실패하거나 다른 정책을 조용히 설명할 수 있습니다. 컨트롤 플레인 데이터베이스와 필요한 키를 영구 저장하세요. 관리용 API를 비공개로 유지하고 별도의 콘솔 또는 제한된 SSH 경로를 보유하여, 메시를 잃어도 코디네이터를 복구할 수 없게 되지 않도록 하세요.
- 공개 제어 평면 이름에 유효한 인증서를 사용하세요.
- 등록 키는 수명을 짧게 하고 적절한 범위로 제한하십시오.
- 릴레이 설계와 DNS 네임스페이스를 명시적인 선택으로 다루세요.
공식 문서: Headscale 컨테이너 배포
네트워크를 홍보하기 전에 기기 하나를 등록하세요
업스트림 지침에 따라 서버를 구동하고 문서화된 등록 방법으로 테스트 사용자/기기를 하나 등록하세요. 기기가 예상 제어 URL에 도달하고 의도한 신원으로 표시되는지 확인하세요. 클라이언트 상태를 점검하고 출구 노드 또는 서브넷 경로를 추가하기 전에 비공개 서비스 하나를 테스트하세요. DERP 경로는 직접 경로를 사용할 수 없을 때 연결성을 유지할 수 있지만, 코디네이터가 모든 패킷을 전달한다는 의미는 아닙니다.
- 안전하게 제거할 수 있는 기기와 서비스로 시작하세요.
- 피어 트래픽이 직접인지 릴레이인지 확인하세요.
- 선택한 배포에 따라 릴레이 및 제어 엔드포인트를 보호하세요.
공식 문서: Headscale 배포 참고 자료
라우팅과 권한 부여를 독립적으로 승인하세요
서브넷 액세스를 위해서는 라우팅 노드에서 포워딩을 활성화하고, 좁은 범위를 광고하며, 제어 서버에서 승인하고, 대상 클라이언트가 이를 수락하는지 확인하세요. 반환 경로를 모호하게 만드는 중복 네트워크는 피하세요. 승인된 경로는 액세스 정책이 아닙니다. 게스트 기기를 포함하여 누가 어떤 대상과 포트에 연결할 수 있는지 정의하세요. 메시를 확장하기 전에 허용된 연결과 동일한 거부된 연결을 테스트하세요.
# Run on the control server; syntax follows the installed release:
headscale nodes list-routes
# Client-side inspection:
tailscale status공식 문서: Headscale 서브넷 및 종료 경로
정책을 변경하기 전에 문제 계층을 찾으세요
등록이 실패하면 DNS, HTTPS 및 서버 URL을 점검하세요. 기기는 연결되지만 서브넷에 도달할 수 없으면 광고, 승인, 클라이언트 경로 수락, 포워딩 및 반환 경로를 점검하세요. 하나의 서비스만 실패하면 해당 바인드 주소, 호스트 방화벽 및 메시 정책을 점검하세요. 일관된 데이터베이스/구성 백업을 유지하고, 유일한 제어 플레인을 변경하기 전에 일회용 클라이언트로 버전 업그레이드를 테스트하세요.