nftables 및 ipv6 MAC 기반 라우팅 사용

nftables 및 ipv6 MAC 기반 라우팅 사용

서버에서 들어오는 모든 트래픽을 일치시키고 싶지만 동일한 인터페이스에 있습니다.

MAC 88:7e:25:d3:90:0b > ens19 > table 147

nftables그래서 나는 이 규칙을 만들었다.

table ip filter { # handle 3
    chain input { # handle 1
            type filter hook input priority filter; policy accept;
            iif "ens19" ether saddr 88:7e:25:d3:90:0b meta mark set 0x00000093 # handle 2
            iif "ens19" ether saddr 08:05:e2:04:ce:b3 meta mark set 0x00003417 # handle 3
    }

}

그리고 라우팅 테이블의 IP 규칙을 지정합니다.

ip rule add from all fwmark 0x93 lookup 147
ip rule add from all fwmark 13335 lookup 147
ip -6 rule add from all fwmark 0x93 lookup 147
ip -6 rule add from all fwmark 13335 lookup 147

샤크 정보

그러나 나는 tshark그것이 작동하는지 확인하기 위해 그것을 사용했고 들어오는 패킷이 표시되지 않았으며 주소를 ping할 수 없었습니다. 따라서 수익 흐름을 일치시키는 것이 문제가 됩니다.

내가 사용한다면

 from all iif ens19 lookup 147

바꾸다

ip -6 rule add from all fwmark 0x93 lookup 147
ip -6 rule add from all fwmark 13335 lookup 147

nftables작동하므로 내 규칙에 문제가 있는 것 같습니다.

이유를 아는 사람 있나요?

답변1

hook inputlocalhost가 최종 목적지인 패킷을 위해 특별히 고안되었습니다.뒤쪽에라우팅 결정은 이미 이루어졌습니다. 왜냐하면 netfilter가 "후크 입력" 체인을 통해 처리되는 패킷과 "후크 전달" 체인을 통해 처리되는 패킷을 아는 방법이기 때문입니다. 따라서 그 시점에서는 정책 규칙이 더 이상 중요하지 않습니다.

대신에, 나는 당신이 그렇게 생각합니다 hook prerouting(아마도 priority raw?).

관련 정보