FreeBSD 10.0リリースとIP転送の問題

IPスタックv4を操作するメカニズムでは、FreeBSD 10.0の新しいリリースで多くの変更が行われました。

ip fordwardingのメカニズムが含まれるように変更されました。 特に、リリースのアップデートで説明されているように、カーネルオプションオプションIPFIREWALL_FORWARDは削除されました。 現在、この機能は常にオンになっており、このようなオプションの必要性はなくなりました。 しかし、わずかなニュアンスがあります。



その本質は次のとおりです-ipfwルールが使用される場合、1つを除きすべてが機能しますが、よく使用されるケースです。

ipfw fwd XXXX all from AAAA to BBBBエラーが発生する条件は、ソースパケットがルーティングのルールに従ってインターフェイスint_1に移動する必要があり、アドレスXXXXが別のインターフェイスint_2の背後にある必要があることです。





X.X.X.X.が元のパケットとは異なるインターフェイス上にある場合、ipfw fwd XXXXルールはパケットを/ dev / nullに送信します

このようなルールは、複製のために並列物理チャネルを編成したり、パケットの送信元アドレスに基づいて異なるルートを編成したりするためによく使用されます。

パケットはログに届きますが、出力インターフェイスにはありません。

判明したように、この問題は他の人に現れました。 ここに問題を解決する方法があります。 不足している行を1つ追加すると、現在のリリースの問題が解決します。 カーネルを再構築した後、ルールは予測どおりに動作し、機能しますが、工業用バージョンで開始するには早すぎます-他の場所で検証チェックを完了していません。

興味深いことに、この問題に関する資料はほとんどありません。この動作に出会ったとき、ipfwは何が起こっているのかすぐには理解しませんでした。



PS。 場合によっては、発信パケットの重複がipfw fwdルールを通過することがありますが、これは一般に害はありませんが、動作は依然として奇妙です。 特にバックドアが時々あるという事実のために。 これまでのところ、私はロジックを見つけていません。



PPS また、このIPスタックエラーが修正された10.0.Stableにアップグレードすることも推奨されました。 しかし、リリースはまだリリースです。 「開発中」の動的バージョンは、明らかに作業に適したものではありません。 さて、結論は、残念ながら、商業運用には10はまだ推奨されていません...これは非常に残念です。



All Articles