VPN을 통해 다른 서버로 트래픽을 다시 라우팅하는 방법

VPN을 통해 다른 서버로 트래픽을 다시 라우팅하는 방법

현재 2개 사이트에 환경을 설정하고 있습니다. 모든 서버는 linux/ubuntu입니다. 첫 번째 사이트는 내 사무실이고 두 번째 사이트는 AWS입니다. 사이트 간 VPN이 있는 VPC 내의 AWS에 2개의 서버가 있습니다. Web01 - 172.31.24.106 Revproxy01 - 172.31.17.216

사무실에 서버 1대와 IP 카메라 1대가 있습니다. Server1 - 192.168.102.1 Camera1 - 192.168.102.79

VPN은 Server1(IPSec Strongswan)에 있으며 AWS 측에서 AWS 사이트 간 VPN에 연결하도록 구성됩니다.

많은 연구와 시간을 통해 모든 것을 준비하고 Web01 및 Revproxy01은 Server1을 핑할 수 있고 Server1은 Web01 및 Revproxy01을 핑할 수 있습니다.

다음 단계는 Web01 및 RevProxy01에서 Camera1을 ping할 수 있는 것입니다. 결국 web01 및 Revproxy01에서 카메라 http 피드에 액세스하고 싶습니다.

Server1을 통해 Web01에서 Camera01로 데이터를 전달하려면 (Server01에서) 라우팅을 설정해야 할 것 같습니다.

누군가의 도움에 감사하고 이를 수행하는 방법을 배우겠습니까?

답변1

좋습니다. 라우팅이 어떻게 작동하는지 여러분이 얼마나 이해하고 있는지 모르겠습니다. 따라서 설명하려고 노력하고 여러분이 제 설명을 얼마나 이해하는지 살펴보겠습니다. 실제로는 더 많은 바퀴가 회전하기 때문에 설명이 정확히 정확하지는 않지만 충분할 것입니다.

네트워크의 각 홉에서 IP 스택은 들어오는 각 IP 패킷을 살펴봅니다. 그것은목적지라우팅 테이블이 있는 IP 주소입니다. 으로 라우팅 테이블을 볼 수 있습니다 ip route.

먼저 패킷의 IP가 자체 인터페이스 중 하나와 일치하는지 확인합니다. 그렇다면 패킷은 홉 자체로 향하게 되고 홉은 패킷을 "삼키게 됩니다"(예를 들어 TCP 스택을 향해 스택 위로 푸시합니다).

패킷의 목적지가 홉 자체가 아닌 경우 홉은 자체 라우팅 테이블을 확인하고 가장 중요한 경로에서 가장 중요하지 않은 경로로 통과합니다. A는 /2432비트 중 24비트가 중요하다는 것을 알려줍니다. 그러면 A는 /16덜 중요할 것입니다. IP 스택 의 경우 ip route패킷의 IP 주소를 아래에서 위로 표시된 경로와 비교합니다. 패킷의 IP와 일치하는 첫 번째 경로가 승리합니다. 따라서 대상 IP가 192.168.102.10인 라우팅 테이블을 통과하면 경로 192.168.0.0/16이 패킷과 일치합니다. 192.0.0.0/16 경로는 그렇지 않습니다. 이 sipcalc도구를 사용하여 네트워크 주소 정보를 표시할 수 있습니다.

마지막으로 일치하는 경로가 모든 것과 일치하는 기본 경로가 됩니다.

각 경로에는 패킷이 전송될 다음 홉이 포함되어 있습니다. 에서 다음 홉을 더 잘 볼 수 있습니다 /sbin/route -n. 경로가 나타내는 네트워크가 홉에 있는 네트워크 인터페이스에 직접 연결되는지 여부에 따라 "라우터" 열 또는 "인터페이스" 열입니다.

패킷이 VPN 터널을 통과할 때 IP 패킷은 다른 패킷으로 래핑됩니다. 따라서 VPN 항목의 내부 IP와 종료 지점만 계산됩니다. 패킷은 진입점으로 들어갔다가 "마법처럼" 출구점에서 튀어나옵니다.

이제 소스 및 대상 홉을 포함하여 패킷이 어떤 경로를 택해야 하는지 각 홉에서 결정할 수 있습니다. 원하는 경로가 선택되지 않으면 해당 경로를 추가해야 합니다. 이는 단일 호스트 경로 192.168.102.79/32(모든 부분이 중요합니다. 단일 호스트에만 일치합니다!)일 수 있습니다. 에 대한 몇 가지 예를 찾아보세요 ip route add.

또한 당신이 원하는 것은 홉을 통과하는 패킷을 관찰하는 것입니다. tcpdump -n -i interface이를 위해 사용할 수 있습니다 (f.ex. tcpdump -n -i eth0). 따라서 hop1을 통과하는 패킷을 보고 hop2로 이동해야 한다고 생각하지만 hop2를 통과하는 것을 볼 수 없다면 hop1의 경로가 잘못되었을 수 있으며 패킷을 잘못된 대상으로 보내는 것입니다.

이렇게 하면 소스에서 대상까지 각 라우팅 테이블을 홉 단위로 분석하고 패킷이 어떤 경로로 전달되는지 확인할 수 있습니다.~해야 한다각 홉을 취하고, 패킷이 올바른 경로를 선택하도록 경로를 추가하고 실제로 tcpdump.

소스에서 대상까지의 경로가 모두 있다는 점에 유의하세요.그리고다시 올바르게 구성해야 합니다.

경로가 잘못되면 네트워크를 통해 컴퓨터에 연결할 수 없게 될 수 있다는 점에 유의하세요. 따라서 네트워크를 통하는 것보다 독립적인 메커니즘을 사용하여 시스템을 재부팅하는 방법이 필요할 수 있습니다.

라우팅이 작동하면 재부팅 후에도 지속되는지 확인하세요. F.ex. 새 경로를 작성합니다 /etc/network/interfaces(등록해야 하는 위치는 해당 시스템에서 네트워크 스택이 구성되는 방식에 따라 다릅니다. 이는 Unix, Linux 배포판 등에 따라 매우 다릅니다).

이것이 당신에게 더 도움이 되기를 바랍니다.

관련 정보