WiFi Udp.remoteIP() problema indirizzo esterno/port forwarding

Ciao, ho realizzato uno sketch per poter dialogare, attraverso il modulo wifi, con arduino tramite protocollo UDP.

Utilizzando l'esempio della libreria ufficiale, riesco a rispondere al client con il seguente codice:

  int packetSize = Udp.parsePacket();

  if (packetSize) {
        Serial.print("Receveid packet of size ");
        Serial.print("From ");
        IPAddress remoteIp = Udp.remoteIP();
        Serial.print(", port ");
        Serial.println(Udp.remotePort());
        ....
  

        int len = Udp.read(packetBuffer, 255);
        if (len > 0) {
           packetBuffer[len] = 0;
        }
  }

...

void sendUdpPacket(char ReplyBuffer[]) {
  Udp.beginPacket(Udp.remoteIP(), Udp.remotePort() );
  Udp.write(ReplyBuffer);
  Udp.endPacket();
}

All'interno della lan Udp.remotePort() restituisce correttamente l'indirizzo che ha inviato il messaggio, potendogli così rispondere. Al contrario, se provo ad inviare un messaggio da un indirizzo esterno arduino riceve correttamente il messaggio, ma remotePort() restituisce l'indirizzo del router (192.168.1.254), non riuscendo quindi a spedire il messaggio al client esterno alla rete.

Il port forwarding sul router dovrebbe essere corretto, tant'è che il messaggio viene ricevuto e facendo altri test con TCP sembra andare sia in entrata che in uscita