
첫째, 문제의 배경: 저는 몇 개의 웹 서버의 로드 밸런싱을 위해 사용하고 있는 Cisco CSS11501을 가지고 있습니다. 이러한 웹 서버에는 두 개의 네트워크 인터페이스(내부 및 외부)가 있으며 우리는 내부 인터페이스로 요청을 보냅니다.
웹 서버가 클라이언트의 IP 주소를 확인해야 하므로 NAT를 수행하도록 CSS를 구성했습니다.
TCP 패킷이 인터넷의 소스 주소를 사용하여 웹 서버에 도달하기 때문에 웹 서버는 로드 밸런서를 통하지 않고 외부 인터페이스를 통해 클라이언트에 패킷을 다시 보내려고 합니다. 이러한 요청이 외부 인터페이스를 통해 인터넷으로 다시 전송되는 것을 막기 위해 인터넷의 소스 주소가 있는 모든 트래픽이 로드 밸런서를 게이트웨이로 사용하도록 이 상자에 라우팅 규칙을 추가했습니다. 이 부분은 잘 작동합니다.
또한 제가 원하는 것은 CSS를 MySQL 슬레이브와 같은 내부 서비스의 로드 밸런서로 사용하는 것입니다.
이렇게 하면 비슷한 문제가 발생합니다. TCP 연결은 웹 서버에서 로드 밸런서로, 그런 다음 로드 밸런서에서 MySQL 슬레이브로 이동하지만 CSS는 원래 웹 서버의 소스 주소를 스푸핑합니다. 그런 다음 MySQL 슬레이브는 로드 밸런서를 통하지 않고 내부 네트워크를 통해 웹 서버에 직접 응답을 보내려고 합니다.
이상적인 해결책은 내부 네트워크에서 소스 주소 스푸핑을 수행하지 않고 인터넷에서 발생하는 요청에 대해서만 수행하도록 CSS에 지시하는 것입니다. 이것이 가능한가 ?
이것이 실패할 경우, 다른 트래픽(예: SSH)을 내부 네트워크에만 유지하면서 로드 밸런싱된 트래픽을 로드 밸런서를 통해 다시 전달하는 방법이 있습니까?
내부 서비스의 부하를 분산하기 위해 CSS11501을 사용하는 다른 방법이 있습니까?
답변1
CSS는 원래 웹 서버의 소스 주소를 스푸핑합니다. 그런 다음 MySQL 슬레이브는 로드 밸런서를 통하지 않고 내부 네트워크를 통해 웹 서버에 직접 응답을 보내려고 합니다.
CSS가 소스 IP를 스푸핑하는 경우 mysql은 CSS IP를 소스로 확인하고 IP가 스푸핑된 경우 웹 서버가 아닌 CSS에 응답해야 한다는 점을 이해하지 못합니다.
아무튼, 한번 살펴보세요그룹 명령, 이를 통해 하나 이상의 서비스에 대해 다른 서비스 요청의 소스 주소를 숨길 수 있습니다.
mysql 로드 밸런싱에 꼭 필요한 것 같아요.