<div dir="ltr">Hi,<div><br></div><div>This question has been asked many times before, but unfortunately the ones I checked did not seem to have a solution for me.</div><div><br></div><div>I am trying to setup squid as transparent proxy, but I keep getting the error Forwarding loop detected.</div><div><br></div><div>I have the following setup:</div><div>Client [172.24.30.11] <-> Router [172.24.30.253 && 172.24.10.253 ] <-> Squid Server [172.24.10.13]</div><div><br></div><div>The configuration for squid is as following:</div><div><div>http_port 8080</div><div>http_port 3129 intercept</div><div>http_access allow all</div></div><div><br></div><div>The iptables rule on my router is as follow:</div><div>iptables -t nat -I PREROUTING -s 172.24.30.11 -p tcp --dport 80 -j DNAT --to <a href="http://172.24.10.13:3129">172.24.10.13:3129</a><br></div><div><br></div><div>Now when the client tries to download something I get the following logs:</div><div>---- access.log ----</div><div><div>1451303118.327      0 172.24.10.13 TCP_MISS/403 3751 GET <a href="http://74.125.136.94/">http://74.125.136.94/</a> - HIER_NONE/- text/html</div><div>1451303118.327      0 172.24.30.11 TCP_MISS/403 3915 GET <a href="http://74.125.136.94/">http://74.125.136.94/</a> - HIER_DIRECT/<a href="http://172.24.10.13">172.24.10.13</a> text/html</div></div><div><br></div><div>---- cache.log ----<br></div><div><div>2015/12/28 12:45:14 kid1| Starting Squid Cache version 3.3.8 for x86_64-redhat-linux-gnu...</div><div>2015/12/28 12:45:14 kid1| Process ID 776</div><div>2015/12/28 12:45:14 kid1| Process Roles: worker</div><div>2015/12/28 12:45:14 kid1| With 16384 file descriptors available</div><div>2015/12/28 12:45:14 kid1| Initializing IP Cache...</div><div>2015/12/28 12:45:14 kid1| DNS Socket created at [::], FD 7</div><div>2015/12/28 12:45:14 kid1| DNS Socket created at 0.0.0.0, FD 8</div><div>2015/12/28 12:45:14 kid1| Adding domain <a href="http://int-mgt.bitcube.nl">int-mgt.bitcube.nl</a> from /etc/resolv.conf</div><div>2015/12/28 12:45:14 kid1| Adding domain <a href="http://int-prd.bitcube.nl">int-prd.bitcube.nl</a> from /etc/resolv.conf</div><div>2015/12/28 12:45:14 kid1| Adding domain <a href="http://dmz-prd.bitcube.nl">dmz-prd.bitcube.nl</a> from /etc/resolv.conf</div><div>2015/12/28 12:45:14 kid1| Adding nameserver 172.24.10.253 from /etc/resolv.conf</div><div>2015/12/28 12:45:14 kid1| Logfile: opening log daemon:/var/log/squid/access.log</div><div>2015/12/28 12:45:14 kid1| Logfile Daemon: opening log /var/log/squid/access.log</div><div>2015/12/28 12:45:14 kid1| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec</div><div>2015/12/28 12:45:14 kid1| Store logging disabled</div><div>2015/12/28 12:45:14 kid1| Swap maxSize 0 + 262144 KB, estimated 20164 objects</div><div>2015/12/28 12:45:14 kid1| Target number of buckets: 1008</div><div>2015/12/28 12:45:14 kid1| Using 8192 Store buckets</div><div>2015/12/28 12:45:14 kid1| Max Mem  size: 262144 KB</div><div>2015/12/28 12:45:14 kid1| Max Swap size: 0 KB</div><div>2015/12/28 12:45:14 kid1| Using Least Load store dir selection</div><div>2015/12/28 12:45:14 kid1| Current Directory is /</div><div>2015/12/28 12:45:14 kid1| Loaded Icons.</div><div>2015/12/28 12:45:14 kid1| HTCP Disabled.</div><div>2015/12/28 12:45:14 kid1| Squid plugin modules loaded: 0</div><div>2015/12/28 12:45:14 kid1| Adaptation support is off.</div><div>2015/12/28 12:45:14 kid1| Accepting HTTP Socket connections at local=[::]:8080 remote=[::] FD 11 flags=9</div><div>2015/12/28 12:45:14 kid1| Accepting NAT intercepted HTTP Socket connections at local=<a href="http://0.0.0.0:3129">0.0.0.0:3129</a> remote=[::] FD 12 flags=41</div><div>2015/12/28 12:45:15 kid1| storeLateRelease: released 0 objects</div><div>2015/12/28 12:45:18 kid1| WARNING: Forwarding loop detected for:</div><div>GET / HTTP/1.1</div><div>User-Agent: curl/7.29.0</div><div>Host: 74.125.136.94</div><div>Accept: */*</div><div>Via: 1.1 srv-proxy01.xxxxxxxxxxxx (squid/3.3.8)</div><div>X-Forwarded-For: 172.24.30.11</div><div>Cache-Control: max-age=259200</div><div>Connection: keep-alive</div></div><div><br></div><div>If I configure the client to use a proxy (on port 8080) it all works fine.</div><div><br></div><div>I have a feeling i'm forgetting something simple :(</div><div>Hopefully someone can point me into the right direction?<br></div><div><br></div><div>Thanks !</div><div><br></div><div>Richard</div></div>