Linux 라우팅 테이블, 터널 및 iptables

Linux 라우팅 테이블, 터널 및 iptables

저는 이러한 모든 구성요소가 어떻게 함께 작동하는지 알아내려고 노력하고 있습니다.

나의 주요 목표는 로컬 호스트(Windows 7) 네트워크에서 원격 네트워크의 원격 호스트로 트래픽(포트 80,443)을 라우팅하는 것입니다. 즉, 10.50.1.2:80으로 이동하여 원격 호스트(포트 4111)에 도달하고 싶습니다.

첫 번째 단계로 다음을 사용하여 로컬 Windows 호스트에 경로를 추가하려고 했습니다.

route ADD “10.50.1.0” MASK “255.255.255.0” “remote public ip”. 

이것은 작동하지 않았습니다. 누구든지 이유를 설명할 수 있나요??

그런 다음 주소를 로컬 Linux 서버로 라우팅하려고 시도했습니다.

route ADD “10.50.1.0” MASK “255.255.255.0” “192.168.10.78”

원격 공용 IP로 패킷을 전달하기 위해 사전 라우팅에서 iptables 및 DNAT를 사용한 것보다

iptables -t nat -A PREROUTING -d 10.50.1.2 -dport 80 -j DNAT --to-destination publicIP:80

트래픽은 192.168.10.78(tcpdump로 확인됨)에 도착했지만 원격 호스트에는 도착하지 않았습니다. 누구든지 이유를 설명할 수 있나요?? 나는 포스트라우팅에서 가장 무도회를 사용해 보기도 했습니다.

그런 다음 검색을 시작했고 터널링을 발견했습니다.

첫 번째 및 두 번째 시도가 작동하지 않는 이유와 터널링이 어떻게 도움이 될 수 있는지 설명할 수 있습니까?

답변1

첫 번째 시도: route ADD “10.50.1.0” MASK “255.255.255.0” “remote public ip”

이는 를 통해 도달할 수 있는 네트워크 10.50.0/24에 대한 경로를 설정합니다 remote public ip. 개인 IP는 일반적으로 인터넷에서 라우팅되지 않으며 이것이 작동하지 않는 이유를 알 수 있을 것입니다.

두 번째 시도: route ADD “10.50.1.0” MASK “255.255.255.0” “192.168.10.78”

호스트 192.168.10.78을 통해 10.50.1.0/24 네트워크에 대한 경로를 설정합니다. 해당 호스트가 해당 네트워크에 대한 트래픽을 라우팅하도록 구성되지 않은 경우 아무데도 가지 않으며 원격 시스템에 도달할 수도 없습니다. 해당 컴퓨터에서 이 작업을 수행할 수 있도록 NAT/DNAT를 구성했다고 하셨지만 올바른 구성이 무엇인지 잘 모르겠습니다. 웹 트래픽에만 관심이 있다면 대신 프록시 사용을 고려해 보세요.

터널링의 경우 원래 요청을 다른 연결 내에 캡슐화하는 프로세스입니다. 그러나 큰 차이를 만드는 뉘앙스가 있을 수 있으므로 어떤 맥락에서 이를 사용하고 있는지 더 구체적으로 설명해야 합니다.

관련 정보