
좋습니다. 저는 네트워크, 로드 밸런싱, 터널링 또는 VPN 연결에 있어서 전문가는 아니지만 이 이론적 개념이 작동하도록 하기 위해 몇 가지 시도를 했지만 분명히 성공하지 못했습니다.
달성하려는 목표: 공용 VPN을 만들고(인터넷의 외부 연결을 위해 열려 있음) 클라이언트를 로드 밸런서 서버에 연결한 다음 동일한 네트워크에 없는 백엔드 서버에 대한 최소 연결을 기반으로 트래픽을 전달합니다. 인터넷을 통해서만 액세스할 수 있으며(안타깝게도 이를 변경할 수 있는 방법이 없습니다) 클라이언트(DSR)에 직접 응답하여 대역폭이 로드 밸런서가 아닌 주로 백엔드 노드에서 발생하므로 병목 현상이 발생하지 않습니다. 로드 밸런서에서.
그래서 내 생각은 다음과 같았습니다. 우리 호스팅 업체는 개인 네트워크를 제공하지 않기 때문에 함께 로드 밸런싱을 위해 여러 서버를 원격으로 연결해야 합니다. 따라서 테스트 목적으로 다음을 만들었습니다.
- 서버를 개인적으로 연결하고 동일한 서브넷에 배치하려면 네트워크를 생성하기 위해 내부 VPN 서버 역할도 하는 로드 밸런서 서버가 필요하다고 생각했습니다.
- 로드 밸런서에 연결한 다음 "최소 연결"을 사용하여 노드 중 하나로 트래픽을 전달한 다음 노드를 직접 연결한다는 의미에서 로드 밸런서 서버 "뒤에" 있는 첫 번째 외부 VPN 서버 노드 로드 밸런서에서 모든 대역폭이 다시 발생하지 않도록 클라이언트에(직접 서버 반환)
- 가상 IP(10.8.0.250)
VPN을 성공적으로 생성하고 노드를 연결하면 다음과 같은 IP를 갖게 됩니다.
10.8.0.1 (Load Balancer and internal VPN Server)
10.8.0.10 (First external VPN Server node)
Load Balancer에서 IP 전달을 활성화하고 다음 DNAT 항목을 생성했습니다.
sudo iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1194 -j DNAT --to-destination 10.8.0.250
다음 IPVS 항목:
ipvsadm -A -u 10.8.0.250:1194 -s wlc
ipvsadm -a -u 10.8.0.250:1194 -r 10.8.0.10:1194 -g -w 1
또한 가상 IP로 들어오는 트래픽을 허용할 수 있도록 외부 VPN 서버 노드의 루프백 인터페이스에 가상 IP를 추가했습니다.
그것은 기본적으로 내가 한 일이고 작동하지 않습니다.
이제 내 질문은 이렇습니다. 이것이 전혀 작동할 가능성이 있습니까? 아니면 단순히 제가 하는 방식으로는 불가능한 일을 시도하고 있는 것입니까? 그렇다면: 서버가 인터넷을 통해서만 연결되고 동일한 개인 네트워크에서 함께 그룹화할 수 있는 방법이 없다는 점을 고려할 때 가장 좋은 방법은 무엇입니까?
어떤 힌트라도 미리 감사드립니다!