IP 주소를 변경하지 않고 LAN을 통해 로컬 IP 트래픽을 강제합니다.

IP 주소를 변경하지 않고 LAN을 통해 로컬 IP 트래픽을 강제합니다.

Linux 시스템의 로컬 IP 트래픽이 LAN(WireShark를 통해 트래픽을 캡처하는 네트워크)을 통과하도록 강제하는 방법에 대한 몇 가지 스레드가 있다는 것을 알고 있지만 모든 솔루션에는 IP 주소 수정이 포함됩니다.

이제 내 설정은 다음과 같습니다.

  • 하나의 인터페이스와 두 개의 IP(192.168.1.2(eth0:0) 및 192.168.1.3(eth0:1))가 있는 Linux PC
  • 192.168.1.2를 수신하는 서버
  • 192.168.1.2에 연결된 클라이언트(192.168.1.3에 바인딩됨)

내 질문은: Linux 커널이 IP 주소와 포트를 변경하지 않고 IP 패킷이 네트워크(스위치 + Wireshark가 있는 PC)를 통과하도록 강제하여 WireShark가 192.168.1.2 및 192.168.1.3을 소스 및 대상으로 인식하도록 할 수 있습니까? (그리고 그 반대도 마찬가지)?

앞서 말했듯이 여기에서 IP 변경에 대한 몇 가지 답변을 찾았습니다.네트워크 세그먼트에서 로컬 TCP 패킷 강제 캡처그리고 또 다른 것이 있습니다:로컬 IP 트래픽을 외부 인터페이스로 강제 적용

드라이버나 커널을 수정하지 않고서는 불가능할까요? 저는 C 프로그래머이므로 커널 수정을 추구해야 한다면 이것이 가능한 해결책일 수 있습니다.

-

몇 가지 조사를 마친 후:

sysctl 매개변수인 accept_local과 rp_filter를 결합하여 가능한 솔루션을 찾았습니다. "로컬 소스 주소가 있는 패킷을 허용합니다. 적절한 라우팅과 결합하면 두 로컬 인터페이스 패킷 간의 유선을 통해 데이터를 전달하고 올바르게 허용하는 데 사용할 수 있습니다." 시도해 보고 하나의 인터페이스와 가상 IP에서만 작동하는지 알려 드리겠습니다.

여러 경로 테이블 대안을 시도했지만 하나의 인터페이스에서는 이것이 가능하지 않다고 생각합니다.

답변1

Linux를 사용하는 경우 lo(루프백) 인터페이스에서 패킷을 캡처할 수 있습니다. 트래픽을 회선에 강제로 연결할 필요가 없습니다.

관련 정보