약속의 LAN

1 day ago 1

  • 약속의 LAN은 소규모 지인 기반의 폐쇄형 24/7 LAN 파티 네트워크
  • 각 LAN은 Backbone 네트워크를 통해 연결되어, 유지보수성과 보안성 간의 균형을 추구함
  • 독자적인 .tpl TLD와 복수의 DNS 루트 서버로 네트워크 분리와 장애 복구성 향상
  • x509 기반의 PKI 체계를 통해 TLS와 인증서 관리를 시스템화함
  • DNS와 SSH 기반의 간소화된 인증서 발급 구조로, 내부 유지보수 효율 강화

소개

  • 약속의 LAN은 폐쇄된 멤버십 네트워크로, 2021년부터 운영 중인 지속적 LAN 파티 공간
  • 공식 문서는 대부분 내부 LAN에 보관되며, 본 웹사이트는 참여 희망자와 지인들에게 네트워크 소개를 제공함

약속의 LAN 선언문(Manifesto)

  • LAN을 시작하게 된 배경, 목표, 사회적·기술적 접근법을 담은 선언문을 공개 중임
  • 선언문은 유사 구조의 LAN 구성 독려를 목적으로 하며, 기술적·사회적 측면이 긴밀하게 연결됨

Backbone 네트워크 구조

  • 각 약속의 LAN 세그먼트는 직접 연결 대신 Backbone 네트워크 노드에 접속함

    • 직접 LAN 간 연결은 IP 변경, 키 교환, 암호 협상 등 관리 복잡성 증가로 인해 비효율적임
  • 다양한 운영체제(Debian, OpenBSD)에서 각각 strongSwaniked를 사용하여 IPSec 기반 Peering 구조로 동작함

  • 선택한 알고리듬은 속도, 보안, 호환성 간의 최적 점을 찾음

    • IKE SA 인증: HMAC SHA2 512
    • IKE SA 암호화: AES 256
    • IKE SA DH: Curve25519
    • Child SA 암호화: ChaCha20 Poly1305
    • Child SA DH: Curve25519
  • /24 전용 할당 대역에서, 백본마다 Node ID 기반 IP를 부여

  • 각 백본은 IPSec 연결된 노드의 라우트만 하드코딩되어 있음

  • Default Free Zone(DFZ) 컨셉으로 동작하며, IP 연결된 후에는 BGP(bird 또는 bgpd 활용)로 전체 백본 간 사용자 LAN을 광고함

DNS 시스템

  • .tpl이라는 자체 TLD 사용하며, LAN이 가입하면 자동으로 도메인 할당함
  • 신규 도메인 요청도 가능하며, 루트 DNS 서버(ns1.tpl, ns2.tpl, ns3.tpl)는 세 개의 서로 다른 LAN의 Backbone에 설치됨
  • 단일 노드 장애에도 핵심 서비스 지속성 확보를 추구함
  • 권한 네임서버는 nsd를 사용하며, 중앙 git 저장소를 주기적으로 당겨와 설정 파일을 동기화함
  • 각 LAN은 자체 네임서버를 x.x.x.254 고정 IP에 운용하며, 자동 구성과 템플릿화를 용이하게 만듦
  • 각 LAN은 전체 루트 목록을 필수적으로 알 필요는 없음
  • Backbone들은 anycasted IP(x.x.0.1)recursive resolver(unbound) 를 구동하여, DNS 질의를 처리함

PKI 체계

  • 이미 내부적으로 충분히 보안적이지만, TLS 적용과 기존 툴 호환을 위해 PKI 체계 구축
  • root x509 CA를 3년 주기로 운용함
    • 1년: 루트를 배포/업데이트
    • 2년: 본격 인증서 발급
    • 3년: 인증서 만료/전환 기간
  • 루트는 ECDSA P-384, SHA384 서명을 사용하고, X509v3 Name Constraints 기능으로 .tpl 도메인/이메일로 제한함
  • DNS 기반 인증서 발급 프로세스 설계: 각 도메인에 대해 _pki TXT레코드에 OpenSSH 공개키 등록
  • 인증서는 SSH 인증 및 DNS 확인 후 발급되며, ACME 등의 외부 시스템 없이 내부 규칙과 자동화로 처리함

Read Entire Article