Hello for all you people,
I am setting in Squid-Proxy two outputs internet. Below is a “diagram”
of the final result I want to get:
SERVER1: SQUID SERVER
SERVER2: Internet2
:: Client :: ----- SERVER1 ---> INTERNET (MODEM)
v
|
| -----> SERVER2 ----> INTERNET (MODEM 2)
I’ve configured in squid.conf the following lines:
acl route_alt dstdomain .whatismyip.com
tcp_outgoing_address <IP_SERVER2> route_alt
Restarting Squid and trying to access the site, returns me the following error:
“(99) Can not assign requested address“
So googling, I found and did the following:
echo 1> / proc/sys/net/ipv4/ip_nonlocal_bind
Now trying to access the site, returns me the following error:
“(22) Invalid argument“
These errors, only “(99) Can not assign requested address” shows me in
/var/log/squid/cache.log. The other did not find it anywhere.
Strace’ing I found the following:
connect(267, {sa_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("72.233.89.199")}, 16) = -1 EINVAL (Invalid
argument)
Squid version is 3.1.19
Linux version: Fedora 15 64 bits
kernel version: 2.6.38.6-26.rc1
Any help is appreciate.
Thanks
tcp_outgoing_address must be used to specify the local IP for outgoing connections, you can’t use foreign IPs there. If you want to control the routing with Squid you should do this:
First, you need an additional IP address in SERVER1 to use for the communication via SERVER2. Then add in squid.conf:
After that you have to configure routing:
The last two lines set the routing when the packets have IP2_SERVER1 as source.