9


8

ネットワークを維持するとき、それはしばしば透過的なプロキシを実行するためにするのが得策です。 透過プロキシとは、発信接続を「ハイジャック」してローカルサービスを介して実行するプロキシのことです。 具体的には、ポート80で転送されるすべてのtcp / ip接続がsquidによってプロキシされるように、squidを設定してLinuxファイアウォールを実行します。

これはiptablesの 'nat’テーブルを使って、IPv4を使って達成されます。

しかし、IPv6用のiptablesには「nat」テーブルがないので、同じ実装を使用することはできません。 IPv6接続のトラフィックを透過的にプロキシするために使用できる技術は何ですか?

6 Answer


8


これを実行する実行可能な方法はiptablesのTPROXYルールを使うことです。ドキュメントはここにあります:

これはSquid(> = version 3.2)をサポートするはずです。 `-enable-linux-netfilter +`と ` iptables -t mangle -j TPROXY +`ルールを使用します。


2


iptablesにはQUEUEターゲットがあり、これを使用してユーザースペースにパケットを配信できます。 よくわかりませんが、おそらく何かがそこに実装される可能性があります。

それを過ぎて、あなたはリダイレクションをするために何かをカーネルに追加することに突き刺すことができました。


2


できません。 squid-cache.orgからの引用:

_ _ NATは単にIPv6には存在しません。 意図的に。

透過性/傍受は、実際にはNATルートをひそかにひねって自分自身に戻すことによって得られる機能です。 NATを使わないプロトコルがそのように透明性と傍受をすることができないのは非常に論理的です。 _ _


2


これが実装です。


0


別の種類の醜いハック:

  • すべてのトラフィックをiptablesでマークします(IPv6用のCONNMARKターゲットがあるようです)。

  • マーク付けされたすべてのトラフィックをtunデバイスにルーティングする

  • tunデバイスで待機しているデーモンでユーザースペースNATを実行します。

  • …​


-2


あなた自身のNAT実装をIPv6スタックに書いてください。