Балансировка нагрузки + проблема NAT на передаче BNT GBE 2-7
У меня проблемы с настройкой аппаратного балансировщика нагрузки с функциями NAT.
У меня есть следующая архитектура:
Интернет ===> VIP (общедоступный) LB (частный ip) ====> частные адресные серверы
Когда соединение инициализируется извне (через Интернет), LB правильно перенаправляет пакет SYN на один из частных серверов. Но когда эти серверы хотят ответить SYN/ACK, возникает проблема.
исходный пакет SYN имел заголовок ip: VIP => Private_server_Address
Но частные серверы не могут связаться с VIP со своей стороны (это нормально, так как он существует), а затем предоставить правильный ответ.
Ребята, есть ли у вас какое-либо решение для правильной пересылки пакетов в их правильное место назначения?
Примечание: Балансировщик нагрузки, который является gw по умолчанию для серверов, также имеет правило NAT для "маскировки" (на самом деле больше SNAT, чем реального маскировки)
С Уважением,
Клеман.
1 ответ
Есть много способов настроить балансировщик нагрузки, и вы не даете понять, как вы хотели, чтобы ваш балансировщик вел себя - или, скорее, вы даете противоречивые сценарии.
Исходя из описанной вами архитектуры, ваш LB должен "разорвать" TCP-соединение - тогда он откроет новое TCP-соединение с вашим частным сервером и отправит только данные через него. Это означает, что когда соединение достигает вашего частного сервера, оно должно видеть не внешний VIP в качестве исходного адреса соединения, а внутренний частный IP-адрес загрузочного балансировщика. Это противоречит тому, что вы описали.
IIRC, в этом режиме (некоторые поставщики называют его "режим прокси", отличный от "режима DSR"), NAT не требуется, поэтому маскировка может быть отключена.
Поэтому сначала я бы предложил вам подтвердить, какой IP-адрес источника видит ваш частный пользователь - это не должен быть внешний VIP-адрес, я думаю.