web-dev-qa-db-ja.com

squidは発信ネットワークインターフェイスを指定します

Squidを実行している多くのネットワークインターフェイス(venet0:1〜venet0:5)を備えたLinux Debianマシンを使用しています。インターフェースvenet0:2に接続した場合、squidはvenet0:0を発信トラフィックに使用しますが、Squidが接続に同じネットワークインターフェースを使用するようにします。したがって、venet0:1のIPアドレスに接続する場合、プロキシは送信トラフィックにも同じ同じインターフェースを使用する必要があります。

現在、私は次の構成を使用しています:

http_port 200
forwarded_for off
uri_whitespace encode
visible_hostname localhost
via off
collapsed_forwarding on
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users
auth_param basic children 5
auth_param basic realm Proxy
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl ncsa_users proxy_auth REQUIRED
access_log none
cache_store_log none
cache_log /dev/null
acl all src all
http_access allow ncsa_users
header_access From deny all
header_access Referer deny all
header_access Server deny all
header_access User-Agent allow all
header_access WWW-Authenticate deny all
header_access Link deny all
header_access Accept-Charset deny all
header_access Accept-Encoding deny all
header_access Accept-Language deny all
header_access Content-Language deny all
header_access Mime-Version deny all

私は http://www.tastyplacement.com/squid-proxy-multiple-outgoing-ip-addresses からチュートリアルを試しましたが、ユーザーを認証しているので使用できないと思いますソースIPアドレスではなく、ncsaを使用します。

イカが正しいネットワークインターフェースを使用する可能性はありますか? 1つのIPアドレスを変更するたびに設定を変更する必要があるため、ACLルールを回避できればいいですね。

5
user2626702

最善の解決策は、インターフェイスごとにACLを作成し、そのインターフェイスに着信するすべての要求をそのグループに属させ、そのグループを特定の発信インターフェイスにリダイレクトすることです。

例:
サーバーXには次のIPがあります。

  • 10.0.0.1
  • 10.0.0.2
  • 10.0.0.3

したがって、squid.confファイルは次のようになります。

acl 10_0_0_1 localip 10.0.0.1
tcp_outgoing_address 10.0.0.1 10_0_0_1 

acl 10_0_0_2 localip 10.0.0.2
tcp_outgoing_address 10.0.0.2 10_0_0_2 

acl 10_0_0_3 localip 10.0.0.3
tcp_outgoing_address 10.0.0.3 10_0_0_3

次に、「10.0.0.1」への要求はすべて「10.0.0.1」インターフェースを使用し、「10.0.0.2」への要求はすべて「10.0.0.2」インターフェースを使用します。

これは古い質問であることは知っていますが、これはまだ最初のGoogle検索結果なので、正しい答えを投稿することは依然として有効です。

6
Honux

これはACLで構成されているため、次の行の後にあります。

acl youracl src IP.Ad.Res.Of venet:0:2

次のものを追加します。

tcp_outgoing_address 192.168.1.1 youracl

2
Roy Verrips

リストしたリンクに似ているが、異なるアプローチが必要です。 VEIP1はvenet0:1のIPアドレスを意味すると仮定します。

acl ncsa_users proxy_auth REQUIRED http_access deny!ncsa_users

acl ve1acl localip VEIP1 http_access allow ve1acl ncsa_users tcp_outgoing_address VEIP1 ve1acl

acl ve2acl localip VEIP2 http_access allow ve2acl ncsa_users tcp_outgoing_address VEIP2 ve2acl

(パターンの残りの部分は理解できると思います。)

また、ユーザーを認証して特定のIPの1つに接続する必要があるため、上記のhttp_access allow ncsa_users行を削除する必要があると思います。

追伸私はイカを設定したことがないので、これは完全な答えです。しかし、ドキュメントを読むことから、これは正しい方向であると私は安心しています。幸運を祈ります。

0
etherfish