답변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은아니요라우터(그렇다면)는 양쪽이 동일한 네트워크로 둘러싸여 있기 때문에 잘못 구성된 것입니다. 저는 전자가 아니라 후자가 아닐까 싶습니다.