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