Так получилось, что наши сервера должны были переехать в другой датацентр в течение суток. Занятие получилось очень геморройное, поскольку меняется вся конфигурация сети — IP-адреса, шлюзы по умолчанию, даже маска сети. Так вот появилась задача, настроить сеть так, чтобы в старом ДЦ могли выключить сервера, привезти в новый ДЦ, там тупо включить – «и чтоб все заработало». У всех серверов статические айпишники, так что вариант с получением адресов с сервера DHCP здесь не пройдет.
Задача решается, если известна новая конфигурация сети. Есть старый добрый способ сделать несколько IP адресов на сетевой карте, с помощью алиасов. В CentOS можно прописать свой default gateway для каждого алиаса.
Пример старой конфигурации:
$ cat /etc/sysconfig/networking/devices/ifcfg-eth0
# Intel Corporation 82541GI Gigabit Ethernet Controller
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:11:22:22:44:55
NETMASK=255.255.255.0
IPADDR=1.2.3.4
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
GATEWAY=1.2.3.254
DNS1=4.2.2.2
DNS2=8.8.8.8
Создаем новый алиас для этой же сетевой карты с параметрами сети нового ДЦ:
$ cat /etc/sysconfig/networking/devices/ifcfg-eth0:1
# Intel Corporation 82541GI Gigabit Ethernet Controller
DEVICE=eth0:1
BOOTPROTO=none
BROADCAST=5.6.7.255
IPADDR=5.6.7.8
NETMASK=255.255.255.0
NETWORK=5.6.7.0
TYPE=Ethernet
PEERDNS=yes
GATEWAY=5.6.7.254
DNS1=4.2.2.2
DNS2=8.8.8.8
Вуаля. Сервер можно выключать и перевозить.