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

Как настроить отказоустойчивое решение для SMTP-сервера Windows 2003?

В настоящее время я использую Windows SMTP Server на арендованной виртуальной машине Windows 2003 Server. Бывают случаи, когда сеть моей хостинговой компании не работает, и мои клиенты не могут отправлять свои электронные письма через хост SMTP-сервера, который я им предоставляю, например smtp.mycompany.com.

Я хочу предоставить решение аварийного переключения, чтобы, если мой основной SMTP-сервер Windows 2003 не работает, весь SMTP-трафик автоматически перенаправлялся на другую виртуальную машину (smtp2.mycompany.com), расположенную в другом центре обработки данных. Можно ли это сделать с помощью Windows? Я знаю, что есть HA-прокси и Nginx, но иметь дело с Linux не в моих силах - это очевидно, иначе я не буду задавать такой вопрос новичку. :) Тем не менее, я открыт для возможности аренды службы, которая обрабатывает аварийное переключение. Спасибо.

Вы слишком задумываетесь над проблемой. У DNS уже есть решение для вас: несколько записей MX. Добавьте smtp2.mycompany.com в качестве другой записи MX для вашего домена, но установите для нее более высокое значение предпочтения, чем существующие записи MX. Отправители обычно предпочитают сервер с меньшими предпочтениями.

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

Но если это внутренние почтовые серверы для обработки исходящей почты, то записи MX вам не помогут. Возможные варианты:

  • балансировщики нагрузки (но таким образом вы не получите живучесть центра обработки данных, только живучесть хоста)
  • Отработка отказа на основе DNS (вам придется подождать, пока истечет время ожидания репликации DNS и таймаутов кеширования DNS клиента)
  • Балансировка нагрузки DNS (ваш клиент должен быть достаточно умен, чтобы повторять DNS-запрос для каждой попытки SMTP)