NF_STOLEN パケットに対する応答が NAT ルールに準拠していません。

NF_STOLEN パケットに対する応答が NAT ルールに準拠していません。

現在、DockerブリッジネットワークにDHCPサーバーをデプロイしています。パケットが通過することを確認するには、次のものが必要です。

table netdev filterearly_lan10{
    chain ingress {
        type filter hook ingress device enp1s0.10 priority -500; policy accept;
    
            meta nftrace set 1
            ether daddr ff:ff:ff:ff:ff:ff udp sport 68 fwd to "br-a039f83f0bc5";            
    }

以下を使用してnft monitor trace最初のパケットを表示できます。

trace id e0907bbc netdev filterearly_lan10 ingress packet: iif "enp1s0.10" ether saddr 08:00:27:65:d0:37 ether daddr ff:ff:ff:ff:ff:ff vlan pcp 0 vlan dei 0 vlan id 10 ip saddr 0.0.0.0 ip daddr 255.255.255.255 ip dscp 0x04 ip ecn not-ect ip ttl 128 ip id 0 ip protocol udp ip length 328 udp sport 68 udp dport 67 udp length 308 @th,64,96 0x1010600e7f4d81b000d0000
trace id e0907bbc netdev filterearly_lan10 ingress rule meta nftrace set 1 (verdict continue)
trace id e0907bbc netdev filterearly_lan10 ingress rule ether daddr ff:ff:ff:ff:ff:ff udp sport 68 fwd to "br-a039f83f0bc5" (verdict stolen)

これには次のような回答が続きました。

trace id a119cb52 inet filter forward packet: iif "br-a039f83f0bc5" oif "enp1s0.10" ether saddr 02:42:ac:19:0a:05 ether daddr 02:42:29:21:39:06 ip saddr 172.25.10.5 ip daddr 192.168.1.134 ip dscp cs6 ip ecn not-ect ip ttl 63 ip id 38372 ip protocol udp ip length 328 udp sport 67 udp dport 68 udp length 308 @th,64,96 0x2010600e7f4d81b000d0000
trace id a119cb52 inet filter forward rule meta nftrace set 1 (verdict continue)
trace id a119cb52 inet filter forward verdict continue
trace id a119cb52 inet filter forward policy accept
trace id a119cb52 inet customblock block packet: iif "br-a039f83f0bc5" oif "enp1s0.10" ether saddr 02:42:ac:19:0a:05 ether daddr 02:42:29:21:39:06 ip saddr 172.25.10.5 ip daddr 192.168.1.134 ip dscp cs6 ip ecn not-ect ip ttl 63 ip id 38372 ip protocol udp ip length 328 udp sport 67 udp dport 68 udp length 308 @th,64,96 0x2010600e7f4d81b000d0000
trace id a119cb52 inet customblock block verdict continue
trace id a119cb52 inet customblock block policy accept

ただし、これは応答パケットが取得する範囲に過ぎず、応答パケットのIPをなりすますために必要なNATチェーンには到達しません。では見ることができますが、tcpdump -i br-a039f83f0bc5 port 67 and port 68 or arp -nneでは見ることができませんtcpdump -i enp1s0.10 -nn port 67 or port 68

情報として私のpostroutingものは次のとおりです。

    chain postrouting {
        type nat hook postrouting priority 100; policy accept;
        
        meta nftrace set 1
        iifname "br-a039f83f0bc5" oifname "enp1s0.10" masquerade;
        oifname "ppp0" masquerade;

    }

これnetfilter 文書状態:

  1. NF_STOLEN: パケットを引き継ぎ、引き続きナビゲートしません。

これが応答パケットにも影響を与えるかどうか疑問に思います。

応答パケットが通常どおりネットフィルタを通過するようにするにはどうすればよいですか?ありがとう

ベストアンサー1

おすすめ記事