While migrating Linux hosts to a different location with different IP addresses, you change the DNS RRs (resource records) to reflect those changes. Before you do that, you make sure that the TTL (Time To Live) of those RRs is set to a low value. And you do that enough in advance for any caches to have expired. This should be enough. But, in reality, there will always be caching resolvers that have overridden policespolicies, or there might be some hosts accessing your service using hardcoded literal IP addresses. After you've migrated the contents/service from the old box to the new box, kill any service that it used to run on the old box, then run this simple iptables script:
...