Назад | Перейти на главную страницу

быстрое переключение IP-адресов с другим сервером в Linux

У меня есть способ сделать это, но я не уверен, что он лучший.

У меня есть два сервера, назовем их «старый сервер» и «новый сервер». оба работают под разными версиями CentOS. (5.0 и 5.7) Оба они также находятся на разных IP-адресах в одной подсети, но в остальном используют одно и то же программное обеспечение, правила брандмауэра и конфигурации. Я перехожу с Xen на VMWare для этого хоста, и проще создать новый сервер.

Сервер-старый получает много-много трафика, как через статические маршруты NAT, так и напрямую на его IP (через другие серверы, подключенные к vpn)

Чтобы все прошло гладко (поскольку не все используют DNS-имя), мне нужно поменять IP-адреса как можно быстрее посреди ночи, когда трафик медленнее.

Я планирую отредактировать оба сервера / etc / sysconfig / network-scripts / ifcfg-eth0 файлы и вставить их «новые» адреса, открыв два сеанса ssh:

а затем нажмите Enter на старом сервере, а затем как можно быстрее нажмите Enter на новом сервере

Я думаю, что это самое быстрое переключение, которое я могу переключить, не вызывая конфликтов IP-адресов. Или есть лучший способ их поменять местами?

Убедитесь, что это время на обоих серверах одинаковое, настройте задание cron для запуска в 2:00 ночи (или в любое другое время, которое вы выберете «посреди ночи»), и запустите его:

service network restart

затем удалите задание cron на следующее утро или после его запуска.

... что более важно, чем быстрое подключение IP на уровне ОС, необходимо также обновить кеши протокола ARP на всех устройствах в локальной сети. Если эти два сервера получают большую часть своего трафика, скажем, от одного внешнего маршрутизатора, вы можете просто взорвать кеш arp сразу после того, как повторно подключите адреса IP. Пакеты (я предполагаю, что ethernet lan) передаются по вашей локальной сети через Ethernet-адреса (которые нацелены на физические сетевые адаптеры на проводах), если вы просто замените IP-адреса, ваш маршрутизатор и другие устройства будут продолжать адресовать пакеты неправильным сетевым адаптерам для некоторых промежуток времени. (Как долго зависит от того, как работает их кеш ARP.)

Кроме того, некоторые IP-стеки не позволяют подключать IP-адрес, который уже успешно RARP (обратный ARP) в локальной сети. Таким образом, предложение cron automagic "перезапустить сеть" (на мой взгляд) скорее всего не сработает. Когда одно поле выполняет «добавление», оно может видеть, что другое поле отвечает на RARP. Между тем, работа cron другого бокса сводится к удалению IP ... крушение поезда.

Делайте все вручную с консолей (бонус, если у вас есть удаленно доступный консольный сервер), это займет всего несколько минут.

Если вы полностью меняете ящики, я бы также сыграл в случайном порядке с подключением Ethernet-разъемов ... предварительно сконфигурируйте новый, подключенный к коммутатору (чтобы связь была установлена), и ничего больше в этой крошечной локальной сети. Затем отсоедините сетевой штекер от старого сервера, переместите новый сервер в реальную сеть LAN, а затем удалите кеши ARP.

Это самый быстрый способ если ничего не встает между ними. Так что мне больше всего нравится делать это с настоящей консоли. Плохо, когда сеть не работает и нельзя подключиться по ssh.