最近のカーネルでは、一部のICMP-Replyメッセージがユーザー空間に到達しません。

最近のカーネルでは、一部のICMP-Replyメッセージがユーザー空間に到達しません。

私は2.6.23(古いバージョンなので、移行した理由です)から3.18LTSにアプリケーションを移行しようとしています。アプリケーションはpingパケットを使用して、同じ宛先への複数のネットワークリンクを監視します。ネクストホップルーター(イーサネット)またはネットワークインターフェース(セルラーデータとも呼ばれるポイントツーポイントリンク)によって、さまざまなリンクが選択されます。異なるパスが同じ宛先に到達するように強制するために、発信パケットには異なるファイアウォールタグが表示されます。次に、ルーティングルールを使用して、同じ宛先への異なるパスを持つ異なるルーティングテーブルを選択します。発信ルートは2.6.23と3.18の両方でうまく機能します。ただし、着信ICMP応答の場合はそうではありません。彼らは来ています。 tcpdumpを見るとわかります。ただし、3.18では、一部のパケットはユーザースペースに転送されません。 100%確信できませんが、pingターゲット(ICMP応答の送信元アドレスなど)への「正常な」パスがない場合、これが発生する可能性があると思います。これは、通常のルート検索が失敗した場合にパケットを除外する誤解の一種を含む受信フィルタリングのように見えます。

私は正しい道を行っていますか?それでは、このフィルタリングを無効にする方法はありますか?そうでなければ、これらの行動の変化の原因は何ですか?

ベストアンサー1

まあ、私は自分で見つけました。

正解は/proc/sys/net/ipv4/conf/*/rp_filter。このオプションは次のとおりです。Linux財団。これは古い設定ですが、Ubuntuは07.04から14.04の間でデフォルト値を変更したようです。値を 1 から 0 に変更すると問題が解決しました。

おすすめ記事