-
Notifications
You must be signed in to change notification settings - Fork 2
▶️ 동작 원리
Sangjin Yoon edited this page Dec 10, 2024
·
7 revisions
왓치덕스는 설치가 필요없는 트래픽 분석 서비스를 제공합니다.
DNS
와 Authoritative Name Server
동작 원리에서 착안, 프록시 서버를 도입하여 이를 실현하였습니다.
아래 동작 흐름도
혹은 시퀀스 다이어그램
을 설명과 함께 확인하면 동작 원리를 이해할 수 있습니다.
🏛️ Client
: ‘WatchDucks‘서비스를 이용하는 고객이자 Provider Server의 소유자
👨 User
: Client의 Provider Server에 요청을 보내는 사용자
-
Client
는 상용 DNS 서비스 (Cloudflare, Gabia 등)을 사용해야 합니다. 단, 네임서버 변경을 지원하는 호스팅 업체를 사용해야합니다. -
Client
는 HTTPS 통신을 사용해야 하며, 반드시 프로젝트 등록전 TLS 인증서를 발급받아야합니다.
-
Client
의 서버 도메인네임과 IP, 메일 주소를 WatchDucks에 등록합니다. - 유효한 프로젝트 정보라면(도메인네임 중복이 없다면) 메일 주소로 WatchDucks의 네임서버 주소를 전송합니다.
- Client는 발급받은 네임서버를 사용할 도메인의 네임서버로 등록합니다. (기본 제공 네임서버
ex. ns1.gabia.co.kr
에서 와치덕스의 네임서버ns1.watchducks-ns.site
로 변경)
-
User
가Client
의 서비스를 사용하고자 해당 도메인네임으로 요청을 보내면, DNS는 매핑되어있는 NameServer에 DNS Query를 전송합니다. (UDP 통신)(1)
,(2)
- WatchDucks의
Name Server
는 등록되어 있는 도메인네임인지 확인하고, WatchDucks의Proxy Server
IP를 응답으로 전송합니다.(3)
,(4)
- DNS는
User
의 요청 도메인네임에 대해Proxy Server
의 IP를 전송합니다.(5)
,(6)
-
User
의 요청 헤더에서 Host값(요청 도메인네임)을 통해 매핑된Client
서버 IP로 요청을 전달합니다.(7)
,(8)
- 응답받은
Client
서버의 응답을User
에게 전달합니다.(9)
,(10)
- 이 과정에서
요청 경로
,응답 코드
,응답 지연시간
등의 로그를 수집하여 Clickhouse DB에 영속화합니다.(9.1)
- 대시보드에서
Client
서버들로부터 수집된 로그를 확인할 수 있습니다. - 다른
Client
(캠퍼)들의 현황을 실시간으로 모니터링 가능합니다.
🔗 Project Links
📦 Repository •
🌐 Live Site •
📚 Wiki •
📋 Team Notion
📞 Contact & Support
✉️ Email: watchducks3535@gmail.com • 🐛 Create Issue • 🕒 Updated: 2024-12-03