docs: add network topology and IP allocation map
This commit is contained in:
82
docs/network.md
Normal file
82
docs/network.md
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# 네트워크 구성
|
||||||
|
|
||||||
|
## 물리 / 호스트 인터페이스
|
||||||
|
|
||||||
|
| 인터페이스 | IP | 용도 |
|
||||||
|
|---|---|---|
|
||||||
|
| LAN | `172.30.1.41` | 외부 접근 (공유기 내부망) |
|
||||||
|
| Podman bridge (proxy) | `10.89.0.1` | 컨테이너 → 호스트 게이트웨이 |
|
||||||
|
|
||||||
|
## Podman 네트워크
|
||||||
|
|
||||||
|
| 네트워크명 | 서브넷 | 용도 |
|
||||||
|
|---|---|---|
|
||||||
|
| `proxy` | `10.89.0.0/24` | 주요 서비스 간 통신 |
|
||||||
|
| `asr` | 별도 브리지 | ASR 서비스 격리 |
|
||||||
|
| `podman` (기본) | — | 미사용 |
|
||||||
|
|
||||||
|
## proxy.network IP 할당
|
||||||
|
|
||||||
|
| IP | 서비스 | 역할 |
|
||||||
|
|---|---|---|
|
||||||
|
| `10.89.0.1` | 호스트 (브리지 게이트웨이) | 호스트 네이티브 서비스 접근점 |
|
||||||
|
| `10.89.0.2` | `asr` | ASR Whisper |
|
||||||
|
| `10.89.0.3` | `jellyfin` | Jellyfin 미디어 서버 |
|
||||||
|
| `10.89.0.5` | `filebrowser` | FileBrowser |
|
||||||
|
| `10.89.0.6` | `npm-app` | Nginx Proxy Manager |
|
||||||
|
| `10.89.0.7` | `sftpgo` | SFTPGo |
|
||||||
|
| `10.89.0.8` | `gitea` | Gitea |
|
||||||
|
| `10.89.0.20` | `authentik-server` | Authentik Server + Embedded Outpost |
|
||||||
|
| `10.89.0.21` | `authentik-worker` | Authentik Worker |
|
||||||
|
| `10.89.0.22` | `reservation` | Reservation App |
|
||||||
|
| `10.89.0.30` | `prometheus` | Prometheus |
|
||||||
|
| `10.89.0.31` | `cadvisor` | cAdvisor |
|
||||||
|
| `10.89.0.40` | `postgres-main` | PostgreSQL |
|
||||||
|
| `10.89.0.41` | `authentik-redis` | Redis (Authentik) |
|
||||||
|
| `10.89.0.42` | `nextcloud-app` | Nextcloud |
|
||||||
|
| `10.89.0.43` | `onlyoffice-docs` | OnlyOffice |
|
||||||
|
| `10.89.0.44` | `redis-nextcloud` | Redis (Nextcloud) |
|
||||||
|
|
||||||
|
## 외부 포트 노출 현황
|
||||||
|
|
||||||
|
| 포트 | 프로토콜 | 서비스 | 비고 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `80` | TCP | NPM | HTTP → HTTPS 리다이렉트 |
|
||||||
|
| `443` | TCP | NPM | HTTPS 진입점 (모든 서브도메인) |
|
||||||
|
| `228` | TCP | SSHd | SSH (비표준 포트) |
|
||||||
|
| `2222` | TCP | Gitea SSH | Git SSH 클론 (`172.30.1.41` 바인드) |
|
||||||
|
| `3306` | TCP | MariaDB | ⚠️ 방화벽/네트워크 레벨 차단 필요 |
|
||||||
|
| `8080` | TCP | SFTPGo Web | `172.30.1.41` 바인드 |
|
||||||
|
| `8188` | TCP | ComfyUI | `0.0.0.0` — Authentik Proxy 필수 |
|
||||||
|
| `10080` | TCP | SFTPGo WebDAV | `172.30.1.41` 바인드 |
|
||||||
|
| `11434` | TCP | Ollama API | `0.0.0.0` — 접근 제어 필요 |
|
||||||
|
| `18100` | TCP | ASR Gateway | `172.30.1.41` 바인드 |
|
||||||
|
| `19000` | TCP | Authentik | `0.0.0.0` — NPM 경유 |
|
||||||
|
| `19090` | TCP | Prometheus | `0.0.0.0` — ⚠️ Authentik 보호 후 제거 권장 |
|
||||||
|
|
||||||
|
## 트래픽 흐름
|
||||||
|
|
||||||
|
```
|
||||||
|
Internet
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
[NPM :443] ─── TLS 종료, 도메인 기반 라우팅
|
||||||
|
│
|
||||||
|
├── auth.du5t.xyz → 10.89.0.20:9000 (Authentik)
|
||||||
|
├── git.du5t.xyz → 10.89.0.8:3000 (Gitea)
|
||||||
|
├── cloud.du5t.xyz → 10.89.0.42:80 (Nextcloud)
|
||||||
|
├── grafana.du5t.xyz → 172.30.1.41:3000 (Grafana)
|
||||||
|
├── ai.du5t.xyz → 172.30.1.41:8079 (Open WebUI)
|
||||||
|
├── media.du5t.xyz → 10.89.0.3:8096 (Jellyfin)
|
||||||
|
├── jupyter.du5t.xyz → 172.30.1.41:8000 (JupyterHub)
|
||||||
|
├── asr.du5t.xyz → 172.30.1.41:18100 (ASR)
|
||||||
|
├── reservation.du5t.xyz → 10.89.0.10:3000 (Reservation)
|
||||||
|
├── sftp.du5t.xyz → 172.30.1.41:8080 (SFTPGo Web)
|
||||||
|
├── webdav.du5t.xyz → 172.30.1.41:10080 (SFTPGo WebDAV)
|
||||||
|
├── ollama.du5t.xyz → 172.30.1.41:11434 (Ollama)
|
||||||
|
│
|
||||||
|
│ ── Authentik Proxy (인증 후 포워딩) ──
|
||||||
|
├── prometheus.du5t.xyz → 10.89.0.20:9000 → 10.89.0.30:9090
|
||||||
|
├── file.du5t.xyz → 10.89.0.20:9000 → 10.89.0.5:8080
|
||||||
|
└── comfy.du5t.xyz → 10.89.0.20:9000 → 10.89.0.1:8188
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user