IP 전달을 구성하는 방법

IP 전달을 구성하는 방법

네트워크 구조

DEV1통신할 장치가 있는데 DEV3중간에 뭔가가 있습니다 DEV2.

제가 이해한 바는 IP 전달을 사용 DEV2하고 라우팅 테이블을 편집해야 한다는 것입니다.DEV1DEV3

DEV2IP 전달을 활성화했기 때문에 :

-> sysctl net.ipv4.ip_forward

net.ipv4.ip_forward = 1

나머지 항목을 설정할 수 없습니다. 작동하게 하려면 어떻게 해야 합니까?

답변1

두 라우터 모두 양쪽에서 모든 연결이 통과하도록 허용하므로 가장 간단한 방법은 DEV2의 두 인터페이스에 새 IP 주소를 추가하는 것입니다. 이렇게 하면 DEV2가 전송된 패킷과 통과하는 패킷을 쉽게 구별할 수 있습니다.

ip addr add 192.168.2.3/24 dev INTERFACE2
ip addr add 10.12.0.218/24 dev INTERFACE3

(INTERFACE2/3을 실제 인터페이스 이름으로 바꾸고 이 주소가 올바른지 확인하십시오.아니요받아, 그냥 그렇게 해핑 -c 192.168.2.3예를 들어, 응답을 받았는지 확인하세요. 또한 이 두 마스크는 /24인 것으로 추측됩니다. 그렇지 않은 경우 적절하게 조정하세요.) 이제 192.168.2.3부터 10.12.0.218까지의 모든 항목이 DEV1/3에 적용되고 192.168.2.1~10.12.0.217의 모든 항목이 DEV2에 적용됩니다.

이제 우리는 다음 두 개의 새로운 주소에 도착하는 모든 것을 전달합니다.

iptables -A FORWARD -j ACCEPT
iptables -A PREROUTING -t nat -d 192.168.2.3 -j DNAT --to 10.10.3.154
iptables -A PREROUTING -t nat -d 10.12.0.218 -j DNAT --to 192.168.2.2
iptables -t nat -A POSTROUTING -j MASQUERADE

첫 번째 규칙은 패킷이 한 인터페이스에서 다른 인터페이스로 마이그레이션되도록 허용합니다(규칙net.ipv4.ip_forward = 1필요하지만 충분하지는 않음), 마지막 규칙은 응답이 DEV2를 통해 다시 라우팅되도록 나가는 인터페이스에서 오는 것처럼 모든 패킷 헤더를 다시 작성합니다. 중간 두 규칙은 패킷이 DEV1에서 DEV3으로 오도록 패킷 헤더를 다시 작성합니다(규칙 n.2 ) 및 DEV3에서 DEV1로(규칙 n.3).

이 설정의 장점은 깔끔하다는 것입니다. 불필요한 복잡성을 추가하지 않고 모든 프로토콜과 모든 포트가 동시에 라우팅됩니다.

경고하다: DEV1의 인터페이스1과 DEV2의 인터페이스2는 동일한 서브넷에 속합니다. 두 개가 라우터로 분리되어 있다고 말씀하셨기 때문에 이상합니다. 정의에 따르면 라우터는 두 개를 연결합니다.분명히서브넷. 따라서 router1은아니요라우터(그렇다면)는 양쪽이 동일한 네트워크로 둘러싸여 있기 때문에 잘못 구성된 것입니다. 저는 전자가 아니라 후자가 아닐까 싶습니다.

관련 정보