Router
UDP 路由器¶
UDP 路由器负责将传入的 UDP 数据包交给能够处理它们的服务。与 HTTP 和 TCP 路由器不同,UDP 路由器工作在传输层,并因 UDP 的无连接特性而具有独特行为。
UDP 路由器特性
- UDP 无连接,因此没有可用于匹配的请求 URL 路径或 Host SNI 概念
- UDP 路由器本质上是将数据包分配给后端服务的负载均衡器
- UDP 路由器只能以 UDP 服务为目标(不能指向 HTTP 或 TCP 服务)
- 通过可配置的超时跟踪会话,以维护客户端与后端之间的状态
配置示例¶
udp:
routers:
my-udp-router:
entryPoints:
- "udp-ep"
- "dns"
service: my-udp-service[udp.routers]
[udp.routers.my-udp-router]
entryPoints = ["udp-ep", "dns"]
service = "my-udp-service"labels:
- "traefik.udp.routers.my-udp-router.entrypoints=udp-ep,dns"
- "traefik.udp.routers.my-udp-router.service=my-udp-service"{
"Tags": [
"traefik.udp.routers.my-udp-router.entrypoints=udp-ep,dns",
"traefik.udp.routers.my-udp-router.service=my-udp-service"
]
}配置选项¶
| 字段 | 说明 | 默认值 | 必填 |
|---|---|---|---|
entryPoints |
路由器附加到的入口点列表。如果未指定,UDP 路由器会附加到所有 UDP 入口点。 | 所有 UDP 入口点 | 否 |
service |
处理匹配 UDP 数据包的服务名称。UDP 服务通常是将数据包分配给多个后端服务器的负载均衡服务。详见 UDP 服务。 | 是 |
会话与超时¶
尽管 UDP 无连接,Traefik 的 UDP 路由器实现仍依赖会话,维护客户端与后端之间正在进行的通信状态。这样代理才能知道应将后端的响应数据包转发到哪里。
每个会话都有关联的超时,用于在指定的不活动时长后清理不活动会话。
可以通过静态配置中的 entryPoints.name.udp.timeout 选项配置会话超时。详见入口点文档。
路由器命名¶
- 路由器名称中不允许使用字符
@ - 路由器名称应具有描述性,并遵循你的命名约定
- 在特定提供者的配置(Docker、Kubernetes)中,路由器名称通常根据服务名称自动生成