Hello, Well this is not so simple as it looks but I have made success with traceroute.
route -T1 exec '/usr/sbin/traceroute' -n route -T2 exec '/usr/sbin/traceroute' -n route -T3 exec '/usr/sbin/traceroute' -n Goes out on proper gateways so it works. For Squid things gets a little bit more complicated. For example I use squidguard which is spawned by squid so I don't know if the alternative routing table applied to this as well. |-+= 03951 root /usr/local/sbin/squid | \--- 06369 _squid (squid-1) --kid squid-1 (squid) When I start squid I get: route -T3 exec '/usr/local/sbin/squid' 2019/06/26 14:50:35| WARNING: (B) '127.0.0.1' is a subnetwork of (A) '127.0.0.1' 2019/06/26 14:50:35| WARNING: because of this '127.0.0.1' is ignored to keep splay tree searching predictable 2019/06/26 14:50:35| WARNING: You should probably remove '127.0.0.1' from the ACL named 'localhost' 2019/06/26 14:50:35| WARNING: (B) '127.0.0.1' is a subnetwork of (A) '127.0.0.1' 2019/06/26 14:50:35| WARNING: because of this '127.0.0.1' is ignored to keep splay tree searching predictable 2019/06/26 14:50:35| WARNING: You should probably remove '127.0.0.1' from the ACL named 'localhost' 2019/06/26 14:50:35| WARNING: (B) '::1' is a subnetwork of (A) '::1' 2019/06/26 14:50:35| WARNING: because of this '::1' is ignored to keep splay tree searching predictable 2019/06/26 14:50:35| WARNING: You should probably remove '::1' from the ACL named 'localhost' 2019/06/26 14:50:35| WARNING: (B) '::1' is a subnetwork of (A) '::1' 2019/06/26 14:50:35| WARNING: because of this '::1' is ignored to keep splay tree searching predictable 2019/06/26 14:50:35| WARNING: You should probably remove '::1' from the ACL named 'localhost' 2019/06/26 14:50:35| WARNING: (B) '127.0.0.0/8' is a subnetwork of (A) '127.0.0.0/8' 2019/06/26 14:50:35| WARNING: because of this '127.0.0.0/8' is ignored to keep splay tree searching predictable 2019/06/26 14:50:35| WARNING: You should probably remove '127.0.0.0/8' from the ACL named 'to_localhost' 2019/06/26 14:50:35| WARNING: (B) '0.0.0.0' is a subnetwork of (A) '0.0.0.0' 2019/06/26 14:50:35| WARNING: because of this '0.0.0.0' is ignored to keep splay tree searching predictable 2019/06/26 14:50:35| WARNING: You should probably remove '0.0.0.0' from the ACL named 'to_localhost' 2019/06/26 14:50:35| WARNING: (B) '0.0.0.0' is a subnetwork of (A) '0.0.0.0' 2019/06/26 14:50:35| WARNING: because of this '0.0.0.0' is ignored to keep splay tree searching predictable 2019/06/26 14:50:35| WARNING: You should probably remove '0.0.0.0' from the ACL named 'to_localhost' 2019/06/26 14:50:35| WARNING: (B) '::1' is a subnetwork of (A) '::1' 2019/06/26 14:50:35| WARNING: because of this '::1' is ignored to keep splay tree searching predictable 2019/06/26 14:50:35| WARNING: You should probably remove '::1' from the ACL named 'to_localhost' 2019/06/26 14:50:35| WARNING: (B) '::1' is a subnetwork of (A) '::1' 2019/06/26 14:50:35| WARNING: because of this '::1' is ignored to keep splay tree searching predictable 2019/06/26 14:50:35| WARNING: You should probably remove '::1' from the ACL named 'to_localhost' 2019/06/26 14:50:35| ERROR: Directive 'url_rewrite_concurrency' is obsolete. 2019/06/26 14:50:35| WARNING: url_rewrite_concurrency upgrade overriding url_rewrite_children settings. I see that this might be an issue of the loopback not being present on that table so I have added: route -T3 add -net 127.0.0.0/8 127.0.0.1 route -T3 add -host localhost localhost route -T3 show Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default 192.168.10.252 UGS 0 5 - 8 vio0 127/8 localhost UGS 0 1 32768 8 lo0 localhost localhost UGHS 0 0 32768 8 lo0 IPV4 I don't need. Maybe I did not add the localhost correctly?! since if I compare this with the main routing table I see different flags: 127/8 localhost UGRS 0 0 32768 8 lo0 localhost localhost UHhl 3 98 32768 1 lo0 Anyway Squid starts with the mentioned warnings but any request I try to make through it hangs. ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Monday, June 24, 2019 11:07 AM, Claudio Jeker <cje...@diehard.n-r-g.com> wrote: > On Mon, Jun 24, 2019 at 08:47:38AM +0000, slackwaree wrote: > > > Hello, > > Could you maybe provide a full case study for this as it is fairly > > uncommon task? > > Do you mean that I will also need +2 ip aliases next to the boxes main ip? > > No. You can use either option. The question is how are the proxy users > talking to those 3 different proxies? If you want to use port 8080 for all > of them you want 3 different IPs. > > > Eg instead of > > 192.168.10.1: 3128 3129 3130 > > 192.168.10.1:3128 using gateway 192.168.10.250 > > 192.168.10.2:3128 using gateway 192.168.10.251 > > 192.168.10.3:3128 using gateway 192.168.10.252 > > Try it out yourself. Create an extra table and run a proxy in it. > Use tools like tcpdump, nc, etc to check if it works. > > Start with: > route -T1 add default 192.168.10.250 > route -T1 exec "squid command to run ideal with debugging on" > > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > > :wq Claudio > > > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ > > On Friday, June 21, 2019 8:27 PM, Brian Brombacher > > brian.brombac...@planetunix.net wrote: > > > > > You’ll also need PF rules to allow incoming traffic from your squid > > > clients to go to the routing table where your squid process is running. > > > > > > > On Jun 21, 2019, at 10:28 AM, Claudio Jeker cje...@diehard.n-r-g.com > > > > wrote: > > > > > > > > > On Fri, Jun 21, 2019 at 02:11:53PM +0000, slackwaree wrote: > > > > > Hello, > > > > > I wonder if the following scenario can be solved with OpenBSD on 1 > > > > > single machine or with VMM: > > > > > I got 3 OpenBSD vms, all of them are exactly the same running squid > > > > > except they use different default routers to route their traffic out. > > > > > I would like to merge these to one VM if it is possible somehow to > > > > > tell OpenBSD to use different gateway depending on the squid process. > > > > > If not would the same thing be possible with VMMs? All the gateways > > > > > are in the same IP range. > > > > > > > > A simple way to solve this is with multiple routing tables. > > > > Create multiple routing tables with: > > > > route -T1 add default <gw1> > > > > route -T2 add default <gw2> > > > > route -T3 add default <gw3> > > > > And start the 3 squid processes with route -T1 exec, route -T2 exec. > > > > You can also use the the *_rtable variable in rc.d(8) to do that > > > > automatically. > > > > This requires that the 3 squids listen on different IPs or ports. > > > > > > > > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > > > > > > > > :wq Claudio