본문 바로가기
WIKI 기술 지식 베이스

Traefik UDP 라우터 문서

원문 보기 위키 갱신

출처: Traefik UDP Routers Documentation

본문

Router

UDP Router

UDP 라우터는 들어오는 UDP 패킷을 처리할 수 있는 서비스에 연결하는 일을 맡아요. HTTP, TCP 라우터와 달리 UDP 라우터는 전송 계층에서 동작하며, UDP가 비연결성(connectionless)이라는 특성 때문에 고유한 특징들을 갖고 있어요.

UDP 라우터의 특징

  • UDP는 비연결성이라서 매칭할 요청 URL 경로나 Host SNI 개념이 없어요

  • UDP 라우터는 본질적으로 패킷을 백엔드 서비스에 분배하는 로드 밸런서예요

  • UDP 라우터는 UDP 서비스만 대상으로 삼을 수 있어요 (HTTP나 TCP 서비스는 불가)

  • 클라이언트와 백엔드 사이의 상태를 유지하기 위해 세션을 설정 가능한 타임아웃으로 추적해요

설정 예시

Structured (YAML)

udp:
  routers:
    my-udp-router:
      entryPoints:
        - "udp-ep"
        - "dns"
      service: my-udp-service

Structured (TOML)

[udp.routers]
  [udp.routers.my-udp-router]
    entryPoints = ["udp-ep", "dns"]
    service = "my-udp-service"

Labels

labels:
  - "traefik.udp.routers.my-udp-router.entrypoints=udp-ep,dns"
  - "traefik.udp.routers.my-udp-router.service=my-udp-service"

Tags

{
  "Tags": [
    "traefik.udp.routers.my-udp-router.entrypoints=udp-ep,dns",
    "traefik.udp.routers.my-udp-router.service=my-udp-service"
  ]
}

설정 옵션

| Field | Description | Default | Required | | entryPoints | 라우터가 연결되는 엔트리포인트 목록이에요. 지정하지 않으면 UDP 라우터는 모든 UDP 엔트리포인트에 연결돼요. | All UDP entry points | No | | service | 매칭된 UDP 패킷을 처리할 서비스의 이름이에요. UDP 서비스는 보통 여러 백엔드 서버에 패킷을 분배하는 로드 밸런서 서비스예요. 자세한 내용은 UDP Service 문서를 참고하세요. | | Yes |

세션과 타임아웃

UDP는 비연결성이지만, Traefik의 UDP 라우터 구현은 클라이언트와 백엔드 사이의 진행 중인 통신에 대한 상태를 유지하기 위해 세션에 의존해요. 이 덕분에 프록시가 백엔드에서 온 응답 패킷을 어디로 전달해야 할지 알 수 있어요.

각 세션에는 연관된 타임아웃이 있어서, 지정된 시간 동안 비활성 상태인 세션을 정리해요.

세션 타임아웃은 정적 구성의 entryPoints.name.udp.timeout 옵션으로 설정할 수 있어요. 자세한 내용은 EntryPoints 문서를 참고하세요.

라우터 이름 짓기

  • 라우터 이름에는 @ 문자를 쓸 수 없어요

  • 라우터 이름은 설명적으로 짓고 여러분의 명명 규칙을 따르는 게 좋아요

  • 프로바이더별 구성(Docker, Kubernetes)에서는 라우터 이름이 서비스 이름을 바탕으로 자동 생성되는 경우가 많아요

더 알아보기