Можем ли мы выполнить балансировку сетевой нагрузки между серверами с разными IP-адресами подсети, присутствующими в локальной сети. В основном у меня есть свой веб-сайт на этих двух серверах, и имя веб-сайта отображается на виртуальный IP-адрес. Какой тип балансировщика нагрузки может этого добиться. Если это возможно с NAT.
Вы можете использовать практически любой обычный балансировщик нагрузки. Входящие запросы для ваших служб необходимо направлять на балансировщик нагрузки, а не на ваши серверы, а балансировщик нагрузки должен иметь возможность достигать внутренних серверов.
Балансировщик нагрузки будет источник нац (снат) входящие пакеты, то есть он заменит исходный адрес своим собственным адресом, прежде чем передать их на один из ваших серверов.
Таким образом, внутренние серверы будут отвечать балансировщику нагрузки, а не исходному клиенту. Для ответных пакетов балансировщик нагрузки снова выполнит замену адреса, на этот раз заменив целевой адрес исходным адресом клиента.
Чтобы служба внутреннего сервера могла получить информацию об исходном адресе клиента, балансировщик нагрузки часто, но не всегда, настроен на введение этого адреса в качестве поля приложения, которое может интерпретироваться и / или регистрироваться серверной службой. Для http это может быть, например, заголовок http, такой как x-forwarded-for или x-client-ip или аналогичный.
Балансировщик нагрузки можно настроить с несколькими внутренними серверами для каждой службы, и они могут быть размещены в разных подсетях, если это позволяют требования серверного приложения. Балансировщику нагрузки обычно безразлично, где находятся серверные ВМ, пока они доступны.
Вы можете попробовать это, настроив haproxy, nginx или apache httpd, или любой другой из имеющихся на рынке балансировщиков нагрузки с открытым исходным кодом и коммерческих.
Предостережение: существуют подсистемы балансировки нагрузки, использующие несколько иной подход, например Microsoft Windows NLB. NLB обычно устанавливается на фактических внутренних серверах для интеграции балансировки нагрузки с серверной частью. Это создает требование, чтобы внутренние серверы обычно находились в одной подсети для работы внутрикластерного взаимодействия NLB. NLB также можно комбинировать с IIS ARR для обеспечения более обычного внешнего интерфейса балансировки нагрузки (например, с другими балансировщиками нагрузки), в котором внутренние узлы могут быть размещены в разных подсетях.