패킷을 두 개의 다른 서버로 전달하도록 ubuntu vps 구성

패킷을 두 개의 다른 서버로 전달하도록 ubuntu vps 구성

iptables세 개의 별도 우분투 VPS 서버(A,B,C)가 있습니다. 이전에는 들어오는 패킷을 11.22.33.44포트 443의 IP 주소(서버 B) 로 전달 55.66.77.88하고 서버 A를 게이트웨이로 사용하는 서버 A 와 연결된 IP 주소가 하나만 있었습니다. 클라이언트 영역에서 차단을 우회하기 위한 내 TCP 연결

PREROUTIN다음을 사용하여 규칙을 추가하여 이 작업을 수행했습니다.

$ iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 55.66.77.88:443

그리고 규칙을 추가하세요 POSTROUTING.

$ iptables -t nat -A POSTROUTING -j MASQUERADE

99.10.11.12서버 A( )의 VPS 공급자로부터 eth1해당 주소에 연결하고 서버 C( 13.14.15.16) 로 패킷을 전달할 다른 IP 주소를 구입 하고 싶습니다 .여기에 이미지 설명을 입력하세요.

그러나 두 번째 IP를 구입하고 활성화하면 모든 것이 작동을 멈추고 들어오는 패킷도 11.22.33.44서버 B에 도달 할 수 없습니다.

내가 원하는 것을 얻기 위해 규칙을 어떻게 구성해야 하는지 잘 모르겠고, 이해하려고 iptables하면 더 혼란스러워집니다.

답변1

서버에 두 개 이상의 네트워크 인터페이스가 있으면 비대칭 라우팅이 문제가 됩니다. 예를 들어, 패킷은 eth0을 통해 server A전달 될 수 있습니다 server B. 반환 패킷이 server B에서 로 돌아올 때 인터넷으로 server A탈출을 시도할 수 있습니다. eth1인터넷이 기본 게이트웨이를 가리키기 때문입니다(또는 그 반대).

이 예에서는 server A4개의 인터페이스가 구성됩니다.

eth0 - 1.0.0.1 (WAN-1 facing)
eth1 - 1.1.1.1 (WAN-2 facing)
eth2 - 10.2.2.1/24 (LAN-B facing)
eth3 - 10.3.3.1/24 (LAN-C facing)

Server B10.2.2.2/24서버 A의 eth2 인터페이스(10.2.2.1)를 가리키는 기본 게이트웨이가 있는 IP 주소가 있습니다.

Server C10.3.3.2/24서버 A의 eth3 인터페이스(10.3.3.1)를 가리키는 기본 게이트웨이가 있는 IP가 있습니다.

IP 주소 는 server A4개이고 기본 게이트웨이는 한 번에 하나만 있을 수 있으므로 비대칭 라우팅 문제가 발생할 수 있습니다.

에서는 server A다음 명령을 실행하여 트래픽을 제어할 수 있습니다.

eth2(LAN-B를 향함)를 통한 트래픽은 eth0(1.0.0.1)의 공용 IP로 변환되어야 합니다.

$ sudo iptables -t nat -A POSTROUTING -o eth2 -s 10.2.2.0/24 -j SNAT --to-source 1.0.0.1

eth3(LAN-C를 향한)을 통한 트래픽은 인터넷으로 가는 도중 eth1의 공용 IP(1.1.1.1)로 변환되어야 합니다.

$ sudo iptables -t nat -A POSTROUTING -o eth3 -s 10.3.3.0/24 -j SNAT --to-source 1.1.1.1

관련 정보