Автор TMeter
Резервирование Интернет-канала для сервера
Техническое задание, вариант решения которого описывается
в данной статье, выглядит таким образом: "Есть сервер в офисе. В офис заходят
две выделенные линии Интернет от двух независимых провайдеров (ISP1 и ISP2). Необходимо,
чтобы сервер был подключен к двум интернет провайдерам ISP1 и ISP2 одновременно.
При обращении к серверу через провайдера ISP1 ответ уходил через ISP1. А при обращении
через ISP2 ответ уходил через ISP2. При этом, в сервере может быть только
один шлюз по-умолчанию."
Решение. Ставим два роутера R1 и R2 (Linux, FreeBSD, Cisco - не важно).
Подключаем их к двум провайдерам
ISP1 и ISP2. Соответственно, у нас есть два разных IP-адреса, выданных разными
провайдерами (IP1 и IP2).
Конфигурация роутера R1 предельно проста: обычный NAT, поднятый на внешнем
сетевом интерфейсе роутера. Шлюз по-умолчанию на сервере настроен на адрес внутренней
сетевой карты роутера R1. В настройках NAT прописан port-mapping сетевых служб
севрера, "торчащих" наружу. Классический случай, добавить нечего.
С роутером R2 все гораздо сложнее. В-первых, NAT поднимаем не на внешнем
сетевом интерфейсе R2, а на внутреннем!
Но это еще пол-дела. Вторая половина заключается в переписывании другого адреса
в заголовке пакета. Тут нужно рассмотреть два случая:
- Входящий пакет из Интернета через ISP2. Необходимо просто изменить (не NAT!!!)
IP адрес назначения (он равен IP2) на 192.168.2.2.
- Исходящий пакет от сервера через ISP2. В этом пакете источник - 192.168.2.2,
а назначение - 192.168.1.1. NAT'ом, работающем на R2 будет меняться адрес назначения 192.168.2.1
на реальный IP адрес клиента. В дополнении необходимо, чтобы адрес источника 192.168.2.2
тупо менялся на IP2.