iptables/netfilter에서 터널 패킷의 압축을 풀고 터널 패킷을 처리하는 방법

iptables/netfilter에서 터널 패킷의 압축을 풀고 터널 패킷을 처리하는 방법

Linux netfilter/iptables 상호 작용에 대한 구체적인 질문이 있습니다. 다른 IP 패킷 P2 안에 IP 패킷 P1이 있다고 가정합니다(즉, P1이 터널링됨).

이제 질문은 "외부" 패킷 P2의 특정 헤더 필드(예: MAC 소스 주소)를 확인한 다음 "내부" 패킷 P1을 해당 iptables 체인을 기반으로 하는 특정 iptables 체인으로 보내는 것이 가능합니까? 확인해야 할 부분은?

작은 예: FORWARD 테이블에 C1부터 C3까지 3개의 체인이 있다고 가정합니다. 이제 P2의 MAC 소스 주소 값이 17이면 "내부" 패킷 P1을 C1로 보내고 싶습니다. MAC 소스 주소가 28이면 P1을 C2로 보내고 싶습니다. 그렇지 않으면 P2를 C3으로 보내고 싶습니다.

이것이 iptables에서 가능한지 확실하지 않습니다. 어쩌면 일부 C 코드를 특정 netfilter 후크에 연결하여 이를 달성할 수도 있습니다.

나는 이것이 일종의 이상한 사용 사례라는 것을 알고 있지만 단지 궁금할 뿐입니다.

미리 감사드립니다!

관련 정보