<div dir="ltr"><div><span style="color:rgb(0,0,0);font-family:Arial;font-size:medium;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">I've setup a simplisti UDP load balancing as follow :</span></div><div><span style="color:rgb(0,0,0);font-family:Arial;font-size:medium;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><font color="#000000" face="Arial" size="3"><div>stream {</div><div>  upstream dtls_udp_upstreams {</div><div>    hash $remote_addr:remote_port;</div><div>    server <a href="http://preprod.mycorp.com:5684">preprod.mycorp.com:5684</a>;</div><div>  }</div><div><br></div><div>  server {</div><div>    listen 5684 udp;</div><div>    proxy_pass dtls_udp_upstreams;</div><div>    proxy_responses 1;</div><div>  }</div><div>}</div><div><br></div><div>I notice that the balancing is correctly done and the response is received by the client. Unfortunately, the destination port on the response reaching the client is not the initial source port, and as a consequence, the DTLS frame is discarded and a new DTLS handshake is initiated. </div><div><br></div></font></span></div><span style="color:rgb(0,0,0);font-family:Arial;font-size:medium;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">When proxying UDP packets through Nginx, is there a way for Nginx to preserve its initial source port for subsequent packets?</span><br><div><span style="color:rgb(0,0,0);font-family:Arial;font-size:medium;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(0,0,0);font-family:Arial;font-size:medium;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">In my case using Transparent proxying is not possible because my hoster doesn't allow IP spoofing.</span></div><div><span style="color:rgb(0,0,0);font-family:Arial;font-size:medium;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="color:rgb(0,0,0);font-family:Arial;font-size:medium;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Thank you !</span></div><div><span style="color:rgb(0,0,0);font-family:Arial;font-size:medium;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Sekine</span></div></div>