Route Query
We need a peer service in route_query escaper. This page describes the protocol used to communicate with that peer service.
The peer service should listen on a UDP port over either IPv4 or IPv6.
vey-proxy sends requests to that port.
Each UDP packet sent by vey-proxy contains exactly one request, and each UDP
packet returned by the peer service should contain exactly one response.
Both requests and responses are structured data encoded in msgpack format.
The top-level object in both the request and the response must be a map. The supported fields are described below.
request
id
required, type: uuid binary
The request ID.
user
required, type: string
The username associated with the proxy request. This value may be an empty string if authentication is disabled on the proxy side.
host
required, type: string
The target host of the proxy request. It may be either a domain name or an IP address.
client_ip
The client IP address. This field is present only when query_pass_client_ip is enabled.
response
id
required, type: uuid binary | uuid string
The ID of the corresponding request.
nodes
optional, type: string | seq
The candidate next-hop escaper or escapers that may be selected.
If the value is a sequence, each element must be a weighted metric node name.
If the value is empty, the fallback node configuration is used.
default: empty
ttl
optional, type: u32
The TTL for this response.
If the value is 0, the
protective cache ttl
configuration is used.
Note
Expired records remain cached for a short additional period before being removed. See cache_vanish_wait for details.
default: 0