ARP 간섭 또는 사용자 정의 TCP / IP 스택과의 IP 충돌 해결


0

약간 흥미로운 수수께끼, 나는 동일한 고정 IP 주소로 효과적으로 하드 코딩 된 15-20 개의 임베디드 장치로 구성된 네트워크를 가지고 있지만 모두 다른 MAC ID를 가지고 있습니다. 원격으로 구성하려면 개별적으로 해결해야하며 플러그 / 플러그를 뽑는 것이 지속 가능한 솔루션이 아닙니다.

장치에 대한 루트 액세스 권한이 있지만 미리 IP를 고유 주소로 설정할 수는 없지만 세션에 맞게 다시 구성하고 전원을 껐다 켜면 다시 설정할 수 있지만 TCP / IP를 통해 장치를 주소 지정해야합니다. .

이상적으로는 네트워크의 모든 MAC을 열거하고 (이 임베디드 장치 만 보장한다고 가정) ARP 테이블을 수정하거나 리피터에서 이더넷 패킷 헤더에 도달하여 수정합니다 (예 : 수정 된 IP 스택을 실행하는 라즈베리) . 이상적으로이 핵은 장치에 연결하고 자신의 IP를 고유 한 주소로 설정하기에 충분할 정도로 오래 지속되어야합니다. 내가하고 싶은 일의 본질은 ARP 서비스를 맞춤형 해상도 프로토콜로 교체하는 것입니다.

커널, 저수준 및 드라이버 개발에 정통하지만 OSI에서 레벨 2 이상의 이더넷을 사용하면 약간 손실됩니다. 이런 종류의 방해가 더 높은 수준의 프로토콜에 어떤 영향을 미칩니 까? 이 기능을 달성하기 위해 Linux에서 ARP 데몬을 간단히 교체 할 수 있습니까?


장치를 열거하는 방법을 모르지만 올바르게 이해하면 맥 주소를 arp 테이블에 하드 코딩하면 해당 IP에 대한 요청이 원하는 시스템으로 강제 전송됩니다 .OSI 모델의 상위 계층은 실제로 다음과 같이 신경 쓰지 않습니다. 낮은 수준이 행복하다면.
davidgo

답변:


0

장치가 원하는 장치와 동일한 서브넷에 있다고 가정하면 IP 패킷을 "조향"하면서 올바른 MAC 및 IP 주소로 고유 한 이더넷 패킷을 작성할 수 있습니다. 응답은 컴퓨터로 보내질 것이지만 OS 시스템이 올바르게 정렬하지 못할 수 있으므로 직접 선택하여 처리해야 할 것입니다.

이렇게하려면 다음이 필요합니다.

  • 데이터는 이더넷, IP 및 TCP 패킷 구성 것의 대략 이해 (도움이되어야 구글, 이것은 전체적인 패킷 구조에 대해 간략히)
  • 그것들을 조립하고 와이어로 가져 오는 방법 ( 이것은 기본 사항을 설명합니다)
  • 응답 패킷을받는 방법 ( 이것이 도움 될 것입니다)
  • 수신 된 패킷을 유용한 것으로 조립하는 방법 (원시 이더넷 패킷을 수신하기 때문에 TCP 스트림이 사용자를 위해 조립 또는 주문되지 않기 때문에 데이터를 직접 버퍼링하고 조립해야합니다. TCP 프로토콜의 다른 부분; 위의 항목이 작동하면 TCP 스트림에 대해 충분히 알아야합니다.

Wireshark 는 네트워크 스니핑을위한 도구이며 네트워크에서 발생하는 내용, 패킷의 내용을 이해하는 데 도움이되는 많은 세부 사항을 가지고 있으므로 학습 한 내용과 일치시키고 소프트웨어를 디버깅 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.