Linux 전달 엔진 구성

Linux 전달 엔진 구성

나는 인터페이스 eth0에서 들어오는 모든 네트워크 패킷을 eth1로 전달하도록 데비안 컴퓨터를 구성하려고 합니다. 내 하드웨어 설정은 다음과 같습니다.

발신자 머신 A (eth0) ----> (eth0) 포워딩 머신 B (eth1) ----> (eth0) 수신 머신 C

머신 A는 원시 소켓을 사용하여 다양한 유형의 네트워크 패킷(UDP, TCP, ICMP)을 생성하고 이를 머신 B의 eth0 인터페이스에 직접 연결된 인터페이스 eth0을 통해 보냅니다.

이제 머신 B가 대상 IP 주소에 관계없이 eth0에서 수신하는 모든 수신 패킷을 eth1로 전달하여 머신 C가 결국 인터페이스 eth0에서 이러한 패킷을 수신하게 되기를 원합니다. 제가 이 일을 하고 싶었던 이유는 대학에서의 실험 때문이었습니다.

그러나 B 머신의 기본 게이트웨이가 C 머신의 IP로 설정되어 있어도 패킷이 전달되지 않습니다. 흥미롭게도 시스템 A에서 시스템 C로의 직접 ping이 제대로 작동합니다(라우팅이 올바르게 설정됨). 또한 /proc/sys/net/ipv4/ip_forward는 1로 설정되고 인터페이스 eth0(머신 B의 "수신" 인터페이스)은 무차별 모드로 설정되므로 대상 MAC 주소는 문제가 되지 않습니다.

왜 이것이 작동하지 않는지 아는 사람이 있습니까? 흥미롭게도 컴퓨터 B가 Debian 대신 FreeBSD를 실행하고 있다면 잘 작동합니다...

일부 세부정보:

  • 머신 B는 Raspberry Pi 2이고 두 번째 인터페이스는 USB 이더넷 어댑터입니다.
  • 전송된 모든 패킷은 IPv4입니다.

미리 감사드립니다!

관련 정보