IPv6のrp_filter緩和(#2)モードを有効にします。

IPv6のrp_filter緩和(#2)モードを有効にします。

誰にも解決策はありますか?リバースパスフィルタリング(緩いモードでは)次にも動作します。IPv6IPv4だけでなく?

私の設定は、マシン1がマシン2に直接接続され、マシン1も外部ネットワークに接続されることです。

宛先トラフィックは次のとおりです。 外部ネットワークのクライアントは machine1 に要求を送信し、machine1 が要求を machine2 に転送します。

明らかな質問:パケットが machine1 によって処理されると、machine2 に接続されたポートに転送されますが、クライアントの送信元 IP が使用されます。これは一般的にIPをなりすましと見なされます。しかし、これがまさにrp_filterの目的です。そうですか?

通常、machine1はこれを行います(IPv4の場合)。 echo 2 > /proc/sys/net/ipv4/conf/<interface_to_outside_net>/rp_filter すべてが機能しますが、IPv6の場合、rp_filterはまだIPv6用のカーネルに実装されていないため、そうではありません。私が知っている唯一の解決策はip6tablesを設定することです。

現在の設定: ip6tables -t raw -N RPFILTER ip6tables -t raw -A RPFILTER -m rpfilter -j RETURN ip6tables -t raw -A RPFILTER -m rpfilter --loose -j ACCEPT ip6tables -t raw -A PREROUTING -j RPFILTER

ただし、何らかの理由でトラフィックが machine2 に到達できず、クライアント側でタイムアウトが発生します。

machine1でtcpdumpを使用すると、TCPハンドシェイクのSYNのみが取得されます。

14:18:50.390292 IP6 fd11:3456:789a:1::4.34184 > fd12:3456:789a:1::1.1111: Flags [S], seq 701159610, win 28800, options [mss 1440,sackOK,TS val 6066549 ecr 0,nop,wscale 7], length 0

他の人はいません...

どんな提案がありますか?

ベストアンサー1

スポイラー

/etc/network/interfaces/問題は、実際にIPv6アドレスを使用せずに「のみ」を設定することに関連していましたip a a ...。違うとは思わなかったのですが今回はそうですね。

解決に達するステップ:

調査中にmachine2からmachine1への簡単なping6を実行しましたが、奇妙なことに私が経験していた問題を修正しました。

その後TCPハンドシェイクが正しく生成され、私がやりたかったcurl -g -6 ..ターゲットコマンドを実行できるようになり、いよいよ同意するようになりました!

ところで考えてみると…それは言えないことなのになぜICMPv6がこれを処理しないのか?これにより、私はip -6 neigh showmachine1のエントリが実際にあることを示すndp()テーブルをチェックする必要があると思いました。失敗

これは、何らかの理由でICMPv6がネイバーリクエスト/広告を交換できないことを意味します。

最後に、単にコンピュータを再起動すると、一般的にすべての問題が解決されることを覚えていました。ただし、ip a a ...インターフェイスでこの設定のみを使用したため、設定が更新されたため、/etc/network/interfaces/正しいIPv6アドレスを設定してコンピュータを再起動しました。

これがすべての問題の源です;)

解決策:

IPv6の緩いモードでは、rp_filterで何もしないでください。 ==>デフォルトで有効になっています。

インターフェイスが正しく設定されていることを確認してください。 :)

PS:私が何を台無しにしたのか知っている人はいますか?なぜ単に使用できないのですかip address add....?ありがとうございます。

おすすめ記事