When you need to migrate a linux VM from one network to another, you should configure proper routing so that during transition, when the host is dual homed, traffic goes out via the right interface.
Suppose your VM sits in network A, and has this configuration:
Code Block |
---|
iface eth0 inet static address 192.87.38.10 netmask 255.255.255.192 gateway 192.87.38.1 iface eth0 inet6 static address 2001:610:148:cafe::10 netmask 64 gateway 2001:610:148:cafe::1 dev eth0 pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/autoconf |
Now you want to move it to network B, so that its configuration in the end would look like:
Code Block |
---|
iface eth0 inet static address 192.87.30.10 netmask 255.255.255.192 gateway 192.87.30.1 iface eth0 inet6 static address 2001:610:148:dead::10 netmask 64 gateway 2001:610:148:dead::1 dev eth0 pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/autoconf |
To transition, add another network interface to the VM, and make that use the same network as the old interface.
Install the iproute package and add a new entry to the tables:
Code Block |
---|
echo "1 temp" >> /etc/iproute2/rt_tables |
Then configure the interfaces like this:
Code Block |
---|
iface eth0 inet static address 192.87.30.10 netmask 255.255.255.192 gateway 192.87.30.1 iface eth0 inet6 static address 2001:610:148:dead::10 netmask 64 gateway 2001:610:148:dead::1 dev eth0 pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/autoconf auto eth1 iface eth1 inet static address 192.87.38.10 netmask 255.255.255.0 up ip route add 192.87.38.0/24 dev eth1 src 192.87.38.10 table temp up ip route add default via 192.87.38.1 dev eth1 table temp up ip rule add from 192.87.38.10/32 table temp up ip rule add to 192.87.38.10/32 table temp iface eth1 inet6 static address 2001:610:148:cafe::10 netmask 64 gateway 2001:610:148:cafe::1 dev eth1 pre-up echo 0 > /proc/sys/net/ipv6/conf/eth1/autoconf up ip -6 route add 2001:610:148:cafe::/64 dev eth1 src 2001:610:148::cafe::10 table temp up ip -6 route add default via 2001:610:148:cafe::1 dev eth1 table temp up ip -6 rule add from 2001:610:148:cafe::10/128 table temp up ip -6 rule add to 2001:610:148:cafe::10/128 table temp |
If this is in place, test if you can reach the system from remote on both addresses.
If that also works, change DNS to point to the new addresses.
After DNS has propagated and there is no traffic on the old interface any more,