Skip to content

▶️ 동작 원리

Sangjin Yoon edited this page Dec 10, 2024 · 7 revisions

왓치덕스는 설치가 필요없는 트래픽 분석 서비스를 제공합니다.

DNSAuthoritative Name Server 동작 원리에서 착안, 프록시 서버를 도입하여 이를 실현하였습니다.

아래 동작 흐름도 혹은 시퀀스 다이어그램을 설명과 함께 확인하면 동작 원리를 이해할 수 있습니다.

📈 동작 흐름도

WatchDucks Flow

📈 시퀀스 다이어그램

WatchDucks Sequence Diagram

용어 설명

🏛️ Client : ‘WatchDucks‘서비스를 이용하는 고객이자 Provider Server의 소유자
👨 User : Client의 Provider Server에 요청을 보내는 사용자

0. 사전 조건

  • Client는 상용 DNS 서비스 (Cloudflare, Gabia 등)을 사용해야 합니다. 단, 네임서버 변경을 지원하는 호스팅 업체를 사용해야합니다.
  • Client는 HTTPS 통신을 사용해야 하며, 반드시 프로젝트 등록전 TLS 인증서를 발급받아야합니다.

1. Client의 프로젝트 등록 (0)

  • Client의 서버 도메인네임과 IP, 메일 주소를 WatchDucks에 등록합니다.
  • 유효한 프로젝트 정보라면(도메인네임 중복이 없다면) 메일 주소로 WatchDucks의 네임서버 주소를 전송합니다.
  • Client는 발급받은 네임서버를 사용할 도메인의 네임서버로 등록합니다. (기본 제공 네임서버ex. ns1.gabia.co.kr에서 와치덕스의 네임서버ns1.watchducks-ns.site로 변경)

2. User가 Client에 서비스 요청

  • UserClient의 서비스를 사용하고자 해당 도메인네임으로 요청을 보내면, DNS는 매핑되어있는 NameServer에 DNS Query를 전송합니다. (UDP 통신) (1), (2)
  • WatchDucks의 Name Server는 등록되어 있는 도메인네임인지 확인하고, WatchDucks의 Proxy Server IP를 응답으로 전송합니다. (3), (4)
  • DNS는 User의 요청 도메인네임에 대해 Proxy Server의 IP를 전송합니다. (5), (6)

3. Proxy Server의 요청-응답 포워딩

  1. User의 요청 헤더에서 Host값(요청 도메인네임)을 통해 매핑된 Client 서버 IP로 요청을 전달합니다. (7), (8)
  2. 응답받은 Client서버의 응답을 User에게 전달합니다. (9), (10)
  3. 이 과정에서 요청 경로, 응답 코드, 응답 지연시간 등의 로그를 수집하여 Clickhouse DB에 영속화합니다. (9.1)

4. WatchDucks 콘솔

  1. 대시보드에서 Client 서버들로부터 수집된 로그를 확인할 수 있습니다.
  2. 다른 Client(캠퍼)들의 현황을 실시간으로 모니터링 가능합니다.

📚 개발 일지

개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기
개발일지 펼쳐보기

🗄️ 문서 보관함

📚 회의록
1주차
2주차
3주차
4주차
5주차
6주차
📆 데일리 스크럼
1주차
2주차
3주차
4주차
5주차
6주차
📝 그룹 회고
  • 1주차 그룹회고
  • 2주차 그룹회고
  • 4주차 그룹회고
  • 📝 멘토링 일지

    📒 릴리즈 노트

    🧑‍🧑‍🧒‍🧒 팀 및 커뮤니티

    About Team Watchducks

    📢 발표 자료

    1️⃣ 1주차: 기획 현황

    2️⃣ 2주차: 발표자료

    3️⃣ 3주차: 발표자료

    4️⃣ 4주차: 발표자료

    5️⃣ 5주차: 발표자료

    6️⃣ 6주차: 최종 발표 ✨

    Clone this wiki locally