<div dir="ltr">I have the following setup:<div><br></div><div>squid -v<br>Squid Cache: Version 4.8<br>Service Name: squid<br>201909121340<br><br>This binary uses OpenSSL 1.0.2k-fips  26 Jan 2017. For legal restrictions on distribution see <a href="https://www.openssl.org/source/license.html">https://www.openssl.org/source/license.html</a><br><br>configure options:  '--enable-ssl-crtd' '--enable-build-info=201909121340' '--disable-arch-native' '--with-large-files' '--enable-wccpv2' '--enable-delay-pools' '--enable-icap-client' '--with-openssl' '--enable-ssl' '--enable-ltdl-convenience' '--enable-linux-netfilter' '--enable-auth' '--with-libcap' '--with-default-user=squid' '--sysconfdir=/etc/squid' '--with-logdir=/var/log/squid' '--with-swapdir=/var/spool/squid'<br><br></div><div>squid.conf</div><div>     qos_flows mark<br></div><div><br></div><div>iptables</div><div>     target     prot opt in     out     source               destination<br>     CONNMARK   tcp  --  interface2  *       <a href="http://0.0.0.0/0">0.0.0.0/0</a>            <a href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:443 CONNMARK xset 0x6b0000/0x7fff0000<div><br></div><div>DNAT       tcp  --  *      *       <a href="http://0.0.0.0/0">0.0.0.0/0</a>            <a href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:443 mark match 0x6b0000 to:IP:9443<br></div><div><br></div><div>ip rule show</div><div>     204:    from all fwmark 0x6b0000/0x7fff0000 lookup 107<br></div><div><br></div><div>ip route show table 107<br>     <a href="http://10.0.0.0/8">10.0.0.0/8</a> dev interface2 scope link<br>     127.0.0.1 dev lo scope link<br>     <a href="http://172.16.0.0/12">172.16.0.0/12</a> dev interface2 scope link<br>      <a href="http://192.168.0.0/16">192.168.0.0/16</a> dev interface2 scope link<br></div><div><br></div><div>I do see the packet in squid log which appears to have the mark<br></div><div><br></div><div>2020/05/26 17:22:20.557 kid3| 28,3| Eui48.cc(516) lookup: id=0x17b20b4 192.168.128.2 NOT found<br><br></div><div>2020/05/26 17:22:20.557 kid3| 17,3| QosConfig.cc(148) getNfmarkCallback: 0x6b0000<br><br></div><div><br></div><div>2020/05/26 17:22:20.557 kid3| 51,3| fd.cc(198) fd_open: fd_open() FD 26 HTTP Request<br>2020/05/26 17:22:20.557 kid3| 5,5| TcpAcceptor.cc(301) acceptOne: Listener: local=localIP remote=[::] FD 23 flags=33 ac<br>cepted new connection local=websiteIP remote=<a href="http://192.168.128.2:59769">192.168.128.2:59769</a> FD 26 flags=33 handler Subscription: 0xee7580*1<br><div><br></div></div></div><div>It doesn't seem to preserve the mark when making the request to the server.</div><div><br></div><div>I have two questions</div><div><br></div><div>Is it better to use tproxy versus dnat when trying to preserve the mark? </div><div><br></div><div>It also appears even though I mark the packet and have a separate routing table the packet never seems to make it to squid unless I have a route for the source address in the main table, is there a way to make squid use the second routing table?</div><div><br></div><div>Thanks,</div><div><br></div><div><br></div></div>