nftables - 受信チェーンなしでレイヤ2ブロードキャスト(DHCP)を転送しますか?

nftables - 受信チェーンなしでレイヤ2ブロードキャスト(DHCP)を転送しますか?

私は今調査Docker ブリッジの背後に DHCP サーバーを設定します。私のdockerブリッジが使用しています。着信要求をブリッジされたネットワークにdocker compose転送する方法を探しています。確認に使用する予定のDHCPDISCOVERIPSがモードに設定されています。NFQUEUE変化*)いくつかのDHCPパケット。チェーンやチェーンqueue numでは使用できません。ingressegress

チェーンfwdで使用できることを知っていますが、これは2つの問題を引き起こします。ingress

  • パケットfwdエドNF_STOLEN 重要性これ以上パスが発生しないため、パケットは IPS に送信されません。
  • fwdルールとingressチェーンには名前付きNICが必要です。 Dockerはこれらのインタフェースを動的に提供するため、これはきちんとした解決策のようには見えず、後でテーブルとチェーンを追加する必要があるオーバーヘッドを追加します。

このために、以下を試しました。

table inet nat {
    chain prerouting {
        type nat hook prerouting priority -100; policy accept;

        ether daddr ff:ff:ff:ff:ff:ff udp sport 68 ip daddr 255.255.255.255 dnat to 172.25.10.5;
    }
}

そして

table netdev filterearly_lan {
    chain ingress {
        type filter hook ingress device enp1s0.10 priority -500; policy accept;
    
        ether daddr ff:ff:ff:ff:ff:ff udp sport 68 ip daddr set 172.25.10.5;
    }
}

しかし、の出力には何も表示されないようですtcpdump -i br-a039f83f0bc5 port 67 and port 68 or arp -nne

NICを指定せずにこの種の配信を実行できますか?ありがとう

* nftablesはパケットの奥深くに到達できないため、DHCPサーバーのIP(オプション54)フィールドを変更します。

関連情報