Traefik UDP 라우터 규칙과 우선순위 문서
본문
Rules & Priority
라우터는 들어오는 요청을 처리할 수 있는 서비스에 연결하는 일을 맡아요.
TCP와 마찬가지로 UDP는 전송 계층이기 때문에 요청이라는 개념이 없어서, 들어오는 UDP 패킷을 매칭할 URL 경로 접두사 같은 것도 없어요. 게다가 현재 여러 호스트를 위한 TLS 지원이 잘 마련되어 있지 않아서, 매칭할 Host SNI 개념도 없어요. 그래서 들어오는 패킷을 라우팅하기 위해 규칙으로 사용할 수 있는 기준이 없어요. 따라서 지금 시점의 UDP 라우터는 거의 어떤 형태로든 로드 밸런서일 뿐이에요.
Tip
UDP 라우터는 UDP 서비스만 대상으로 삼을 수 있어요 (HTTP나 TCP 서비스는 안 돼요).
세션과 타임아웃
UDP는 비연결성이기 때문에 (그리고 바로 그 이유로),
Traefik에서 UDP 라우터의 구현은 우리가(그리고 다른 몇몇 구현에서도) session이라고 부르는 것에 의존해요.
즉, 클라이언트와 백엔드 사이의 진행 중인 통신에 대한 어떤 상태를 유지한다는 뜻이에요.
특히 프록시가 백엔드에서 온 응답 패킷을 어디로 전달할지 알 수 있게 해주죠.
예상대로 각 세션에는 timeout이 연관되어 있어서,
주어진 시간보다 더 오래 비활성 상태로 지나가면 정리돼요.
타임아웃은 EntryPoints 문서에 설명된 대로 entryPoints.name.udp.timeout 옵션으로 설정할 수 있어요.
EntryPoints
지정하지 않으면 UDP 라우터는 정의된 모든 (UDP) 엔트리포인트에서 패킷을 받아들여요. 라우터의 범위를 특정 엔트리포인트 집합으로 제한하고 싶다면 entryPoints 옵션을 설정하면 돼요.
설정 예시
모든 엔트리포인트에서 수신하기
Structured (YAML)
udp:
routers:
Router-1:
# By default, routers listen to all UDP entrypoints
# i.e. "other", and "streaming".
service: "service-1"
Structured (TOML)
[udp.routers]
[udp.routers.Router-1]
# By default, routers listen to all UDP entrypoints,
# i.e. "other", and "streaming".
service = "service-1"
Labels
labels:
- "traefik.udp.routers.Router-1.service=service-1"
Tags
{
//...
"Tags": [
"traefik.udp.routers.Router-1.service=service-1"
]
}
특정 엔트리포인트에서 수신하기
Structured (YAML)
udp:
routers:
Router-1:
# does not listen on "other" entry point
entryPoints:
- "streaming"
service: "service-1"
Structured (TOML)
[udp.routers]
[udp.routers.Router-1]
# does not listen on "other" entry point
entryPoints = ["streaming"]
service = "service-1"
Labels
labels:
- "traefik.udp.routers.Router-1.entryPoints=streaming"
- "traefik.udp.routers.Router-1.service=service-1"
Tags
{
//...
"Tags": [
"traefik.udp.routers.Router-1.entryPoints=streaming",
"traefik.udp.routers.Router-1.service=service-1"
]
}
Service
UDP 라우터 하나당 반드시 하나(그리고 오직 하나)의 UDP 서비스가 참조되어야 해요. 서비스는 라우터의 대상이에요.
프로덕션에서 Traefik OSS를 사용 중인가요?
업무에서 Traefik을 사용한다면 엔터프라이즈급 API 게이트웨이 기능이나 Traefik OSS용 상용 지원을 고려해 보세요.
-
API Gateway 데모 영상 보기
-
24/7/365 OSS 지원 요청하기
Traefik OSS에 API 게이트웨이 기능을 추가하는 건 빠르고 매끄러워요. 대체(rip and replace)가 필요 없고 모든 구성이 그대로 유지돼요. 이 짧은 영상으로 직접 확인해 보세요.