KR존 네트워크 토폴로지 및 APISIX 설정 업데이트

- OpenWrt 포트포워딩: hp2:9080/9443 경유 APISIX로 변경
- incus proxy device 설정 반영
- APISIX 오사카/서울 인스턴스 분리 기술
- nocodb BunnyCDN 우회 처리 반영
- OVN 네트워크, DNS rebind 예외 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
kappa
2026-03-15 09:32:33 +09:00
parent b19186d17a
commit e914b7c564
2 changed files with 48 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
---
title: APISIX 설정 및 운영
updated: 2026-03-14
updated: 2026-03-15
---
## 아키텍처
@@ -17,18 +17,21 @@ BunnyCDN(inouter, ID 5316471) → apisix-osaka(172.233.93.180) → 백엔드
### 서울 (incus-hp2)
```
BunnyCDN(actions, ID 5330178) → OpenWrt(220.120.65.245) → incus-hp2 APISIX(10.179.99.126) → 백엔드
인터넷 → OpenWrt(:80/:443) → hp2(:9080/:9443, incus proxy device) → APISIX(10.179.99.126) → 백엔드
```
- 용도: 고객 웹사이트 리버스 프록시 + 일부 인프라 서비스
- upstream: incus-kr2 내부(10.179.99.x), K3s Traefik
- 고객 도메인: fkwm.kr, igv.kr, inbest.kim, ntf.kr, sarm.kim, tonghakbus.com, yonghak.com, cando.kr, iksung.kim, leewell.com 등
- 용도: KR존 리버스 프록시
- upstream: K3s Traefik (192.168.9.134/214/135:443)
- 라우트: nocodb.inouter.com (nocodb, nocodb-nuxt)
- SSL: cert-manager wildcard `*.inouter.com` 인증서
- SafeLine WAF 연동 (chaitin-waf 플러그인)
- Admin API: `incus exec apisix -- curl http://127.0.0.1:9180/apisix/admin`
### BunnyCDN Pull Zone 매핑
| Zone | Origin | 방향 | 주요 Hostnames |
|---|---|---|---|
| inouter (5316471) | 172.233.93.180 | → 오사카 | anvil.it.com, hcv.inouter.com, gitea, n8n, kroki |
| actions (5330178) | 220.120.65.245 | → 서울 | actions.it.com, nocodb.inouter.com, nas.inouter.com |
| actions (5330178) | 220.120.65.245 | → 서울 | actions.it.com (nocodb는 BunnyCDN 우회, 직접 연결) |
## ironclad.it.com 라우트
@@ -54,9 +57,11 @@ APISIX 라우트 ID: twilio-jp-inouter-com → [[twilio]]
APISIX 라우트 hcv-inouter-com → K3s Traefik (192.168.9.134/214/135:443, roundrobin, scheme https). upstream ID: hcv-inouter-com. [[vault]] UI/API 서빙. BunnyCDN pull zone inouter (ID 5316471)에 hostname 추가 완료 (2026-03-12). K3s 노드 IP 변경 반영 (2026-03-14).
## nocodb.inouter.com 라우트 (서울 이전 완료)
## nocodb.inouter.com 라우트
트래픽 흐름: Cloudflare DNS → BunnyCDN (pull zone **actions**, ID 5330178) → OpenWrt(220.120.65.245) → incus-hp2 APISIX(10.179.99.126, 라우트 nocodb) → K3s Traefik (192.168.9.134/214/135:443, roundrobin, scheme https) → nocodb svc:8080 (namespace tools).
트래픽 흐름: Cloudflare DNS (A 220.120.65.245, BunnyCDN 우회) → OpenWrt(:443) → hp2(:9443, incus proxy device) → APISIX(10.179.99.126, 라우트 nocodb/nocodb-nuxt) → K3s Traefik (192.168.9.134/214/135:443, roundrobin, scheme https) → nocodb svc:8080 (namespace tools).
BunnyCDN WAF가 NocoDB JS를 오탐 차단하여 CDN 우회 처리 (2026-03-15).
## CrowdSec 로그 연동

View File

@@ -1,6 +1,7 @@
---
title: 인프라 호스트 및 네트워크
updated: 2026-03-14
updated: 2026-03-15
tags: [infra, network, kr-zone, openwrt]
---
## SSH 접속 정보
@@ -24,7 +25,8 @@ updated: 2026-03-14
| 서비스 | 위치 | 접근 방법 |
|--------|------|-----------|
| [[apisix]] | apisix-osaka + kr1 | SSH 직접 접속 / Admin API |
| [[apisix]] (오사카) | apisix-osaka (Linode) | SSH 직접 접속 / Admin API |
| [[apisix]] (서울) | hp2 incus 컨테이너 (10.179.99.126) | incus exec apisix / Admin API(:9180) |
| NocoDB | K3s 클러스터 (kr2), namespace tools | kubectl, nocodb.inouter.com |
| Anvil, Ironclad | K8s 클러스터 (kr1) | kubectl |
| Prometheus, Grafana | jp1 (monitoring) | incus exec --project monitoring |
@@ -39,6 +41,37 @@ updated: 2026-03-14
- **kr1**: default, inbest, karakeep, security
- **kr2**: default
## KR존 네트워크 토폴로지
```
인터넷
└── OpenWrt 라우터 (공인 IP: 220.120.65.245, 내부: 192.168.9.1)
├── incus-kr1 (192.168.9.214)
├── incus-kr2 (192.168.9.135)
└── incus-hp2 (192.168.9.134) ← K3s control-plane
└── APISIX (incus 컨테이너, 10.179.99.126)
외부 트래픽 흐름:
인터넷 → OpenWrt → APISIX(10.179.99.126:9080/9443) → K3s/Traefik → pods
내부 트래픽 흐름:
LAN → K3s/Traefik(192.168.9.x:80/443) → pods 직접
```
- **게이트웨이**: OpenWrt 라우터 (root@192.168.9.1)
- **OpenWrt 포트포워딩**:
- TCP 80 → hp2(192.168.9.134):9080
- TCP 443 → hp2(192.168.9.134):9443
- UDP 443 → hp2(192.168.9.134):9443 (QUIC/HTTP3)
- **hp2 incus proxy device** (9080/9443 → APISIX 컨테이너):
- proxy-http: tcp:0.0.0.0:9080 → tcp:127.0.0.1:9080
- proxy-https: tcp:0.0.0.0:9443 → tcp:127.0.0.1:9443
- proxy-quic: udp:0.0.0.0:9443 → udp:127.0.0.1:9443
- **APISIX etcd**: apisix-etcd (incus 컨테이너, 10.179.99.101)
- **OVN 네트워크**: ovn1 (10.165.246.0/24) — hp2↔kr2 간 오버레이
- **DNS rebind 예외**: inouter.com (OpenWrt dnsmasq)
- 공인 IP `220.120.65.245`는 OpenWrt 라우터의 IP
## 네트워크 대역
네트워크 대역: 100.0.0.0/8 (Tailscale VPN), 10.253.0.0/16 (incus-jp1 내부), 10.19.0.0/16 (incus-kr1 내부), 10.179.99.0/24 (incus-kr2 내부), 10.42.0.0/16 (k8s 파드), 10.43.0.0/16 (k8s 서비스 ClusterIP), 172.17.0.0/16 (Docker 브릿지, 무시), 192.168.9.0/24 (kaffa 로컬 LAN)