我正在尝试设置一个 squid 代理,它将接受一个 IPv4 上跨一系列端口的多个入站连接,并让每个端口连接连接到唯一的 IPv6 地址。
我已命名每个端口连接,并根据连接名称指定 ACL,然后尝试为每个端口定义一个传出 IPv6。下面的脚本可以正常工作,因为它接受不同端口上的连接并通过 IPv6 路由出去,但是,所有传出连接都使用相同的 IPv6(用户 5),即使每个用户定义的 ipv6 不同 - 奇怪的是,即使我从 squid.conf 中注释掉该用户 5 IPv6,它仍会用于传出连接。
有人能看出这里出了什么问题吗?(在 Centos 6 64 位上使用 Squid 3.1.1)
## declare an acl that is true for all ipv6 destinations
acl to_ipv6 dst ipv6
##tell Squid to listen on sequential ports and to designate a name for each inbound connection.
http_port 241.xxx.xxx.101:3128 name=3128
http_port 241.xxx.xxx.101:3129 name=3129
http_port 241.xxx.xxx.101:3130 name=3130
http_port 241.xxx.xxx.101:3131 name=3131
http_port 241.xxx.xxx.101:3132 name=3132
## designate acl based on inbound connection name
acl user1 myportname 3128
acl user2 myportname 3129
acl user3 myportname 3130
acl user4 myportname 3131
acl user5 myportname 3132
## define outgoing IPv6 per user
tcp_outgoing_address [2001:::::::ipv61] user1
tcp_outgoing_address [2001:::::::ipv62] user2
tcp_outgoing_address [2001:::::::ipv63] user3
tcp_outgoing_address [2001:::::::ipv64] user4
##tcp_outgoing_address [2001:::::ipv65] user5
##this last IPv6 always gets used for all outbound connections, even if commented out
答案1
在 Squid 3.1 中,您需要to_ipv6
在每个 tcp_outgoing_address 行后添加该指令。如果您升级到 3.2,则不会遇到此问题。
参考:http://www.squid-cache.org/Doc/config/tcp_outgoing_address/