I'll try to fix this up while adding the IPV6 feature.
This looks like we need to conditionally check for local addresses (to dsiprouter serverside) and change the record route.
Clientside NAT logic shouldn't be effected by this.
Use cases would be:
internal UAC <-> dsip internal net
external UAC -> dsip internal net
external UAC <- dsip internal net
external UAC <-> dsip external addr
Basically in psedocode:
if src in dsip subnet and dst in dsip subnet:
record route internal to internal
else if src not in dsip subnet and dst in dsip subnet:
record route external to internal
else if src in dsip subnet and dst not in dsip subnet:
record route to internal to external
I added some checks for this in v0.70 but i'll make sure to validate these use cases.