web-dev-qa-db-ja.com

SquidにIPv6ではなくIPv4を介してサイトに接続するように強制する

acl他の別の方法を経由するかどうかにかかわらず、選択した量のドメインにSquidでのIPv6ではなくIPv4接続を使用するように強制する実行可能な方法はありますか?

dns_v4_first構成値を知っていますが、ここでは役に立ちません。

私が抱えている問題は、IPv6がハリケーンエレクトリック(トンネル)によって提供されていることです。ハリケーンエレクトリック(トンネル)は、地理ベースのさまざまな検出を最終的に混乱させ、サイトがIPv6を展開したときに私は米国(私はそうではありません、私は英国です)だと思います。これは、Netflixのようなストリーミングサービスに問題をもたらします。これは、米国ベースのリストを表示しますが、ほとんどの場合、実際に英国にいることを検出します。 (DNSハックなしでUS Netflixを入手する方法についてのネタバレ!)

そのようなサービスを制御し、それらがIPv4を経由することを確認する方法が必要です。これはIPv6のシナリオ全体に反しますが、IPv6を完全に無効にしない限り、実際には選択の余地はありません。

1
James White

送信元アドレスの選択に関する私の経験では、それを正しく行うことは困難です。通常、私は数回の試行の後、成功せずに諦めます。

デュアルスタックマシン(Linuxでテスト済み)でIPv4を強制するようにWebプロキシを構成する方法は次のとおりです。

  • インターフェイスに未使用のRFC1918 IPv4アドレスを作成します。たとえば、10.2.3.4eth0を作成します。ネットマスクはおそらくそれほど重要ではありませんが、私は32を選びます。
  • このディレクティブを使用してsquidを構成します。

    tcp_outgoing_address 10.2.3.4 [your acl]
    
  • パケットの送信元アドレスが10.2.3.4の場合、ファイアウォールルールをNATマスカレード]に設定します。これは、実際のIPv4アドレスに変換されます。

送信元アドレスが明示的にIPv4に設定されているため、squidがIPv6アドレスに接続することはありません。

tcp_outgoing_addressディレクティブで実際のIPを使用することもできましたが、ISPは動的IPを使用しており、このアプローチでは、新しいIPを取得するたびに構成を変更する必要がありません。

1
Leo