Linux에서 계층 2 구현을 사용자 정의하기 위한 지침

Linux에서 계층 2 구현을 사용자 정의하기 위한 지침

동일한 네트워크에서 실행되는 일부 컴퓨터가 있습니다. 노드는 해당 노드에 도달하는 트래픽을 다른 노드로 분산시키는 제어 노드입니다. 문제는 MAC 헤더와 수신 제어 노드의 IP(또는 기타) 페이로드 사이에 사용자 정의 프로토콜 헤더를 갖고 싶다는 것입니다.

제어 노드는 다음과 같은 패킷을 수신합니다.

------------------------------------------------
| Layer 2 | IP(or whatever protocol) | Payload |
------------------------------------------------

이 패킷은 다음과 같이 다른 노드에 배포되어야 합니다.

----------------------------------------------------------------
| Layer 2 | Custom Header | IP(or whatever protocol) | Payload |
----------------------------------------------------------------

이와 같은 작업을 수행하기 위한 몇 가지 지침을 원합니다. 현재 사용할 수 있는 솔루션이 있습니까? 커널을 처음부터 해킹해야 합니다. 비슷한 접근 방식은 L2TP를 사용하는 것이지만 IP 계층에서 실행되므로 그렇게 하고 싶지 않습니다.

또한 이 통신이 Linux에서 물리적 eth0 인터페이스 외에 tun0과 같은 별도의 인터페이스로 표시되기를 바랍니다.

답변1

레이어 "2.5"가 없습니다. 이는 전체 OSI 모델을 위반하는 것이므로 누구도 이에 대한 목적을 갖고 있거나 이를 활용하기 위해 무언가를 조정하고 싶어할 것 같지 않습니다. 또한 많은 커널 해킹이 수반되며 제어 노드에서 네트워크 다운스트림에 액세스하는 모든 장치는 수정된 커널을 사용해야 합니다.

계층 3(네트워크 계층)의 목적은 주소 지정/라우팅입니다. 하드웨어(Layer 2)와 소프트웨어(Layer 3) 이외의 데이터는 주소를 지정하기 때문에 Layer 2와 Layer 3 사이에 삽입하기에 적합한 데이터가 없습니다.페이로드의 일부입니다.

레이어 3 IP를 들어오는 패킷을 변환하는 자체 소프트웨어 라우팅 프로토콜로 대체할 수 있지만 그렇게 하는 이유가 무엇인지 알기는 어렵습니다.

물론, 달성하려는 목표를 더 구체적으로 설명하면 누군가 제안을 할 수도 있습니다.

관련 정보