The detection of an IPV6 available DST can be determined by DNS and external ACL helper.
It will “slow” down the first couple bytes of the connection but can be much more reliable then the basic “dst” acl.
The basic test would be something like:
nslookup -type=aaaa www.squid-cache.org -timeout=10 |grep -v '#53'|grep Address:|wc -l
if the wc -l gt 0 then try to use IPV6.
I believe it’s pretty simple and the main issue is that if a service advertises unreachable IPV6 address.
It can be either because of network misconfiguration or FW or misconfigured DNS.
I have seen all of the above happen in production services in the last year.
I can write a helper for this if required.
Eliezer
----
Eliezer Croitoru
Tech Support
Mobile: +972-5-28704261
Email: ngtech1ltd@xxxxxxxxx
Zoom: Coming soon
The dst ACL type accepts the special value of "ipv4". You can use that and the "!" operator to split traffic.
However, please be aware dst is not very reliable until *after* the outgoing connection has been created, and we are still finding some access checks that do not use it correctly. YMMV.
-------- Original message --------
From: "Walter H."
Date: Tue, 12 Jan 2021, 03:19
Hello,
is there a way, that I can do something like
if ( dst is IPv4 ) go direct
if ( dst is IPv6 ) use parent proxy xxx
The reason for my question, I'm using a IPv6-in-IPv4 tunnel,
and it would make sense to forward all traffic going to IPv6 to squid
running on tunnel end;
Thanks,
Walter