I am looking to change the destination address of a packet inside a CSR 1000v, based on source address and port.
For example:
If an external IP, say 1.2.3.4, sends a packet to 5.6.7.8 over port 80, I would like any packets that match that source address and port to have the destination changed to 9.10.11.12 AND be routed accordingly to it's new destination. I am aware you can change destination using NAT, however, I am not trying to hide this other IP.
Also, most answers to questions like this involve creating an access-list and route-map that says something like the following:
CSR(config)#ip access-list extended 101
CSR(config-ext-nacl)#permit ip 1.2.3.4 0.0.0.0 any
CSR(config)#route-map redirect
CSR(config-route-map)#match ip address 101
CSR(config-route-map)#set ip next-hop 9.10.11.12
CSR(config)#interface GigabitEthernet1
CSR(config-if)#ip policy route-map redirect
However, wouldn't that simply forward the packet to a different destination, whilst still keeping the original destination IP in the packet? This route would blackhole, as the destination would not be at the location the router sent it to. I need to COMPLETELY change the destination IP address, removing the old destination entirely and adding a new one.
Is there a way to do this?