Por que vale a pena, o Squid tem isso nativo.
Eu usei 'acl outbound0 req_header .2 $' para definir uma ACL chamada 'outbound0' para o IP externo .2. Gerei as ACLs restantes com um script e codifiquei-as no arquivo de configuração.
Em seguida, combinei com tcp_outgoing_address, que escolhe um IP externo com base em ACLs. O resultado parece:
acl outbound0 req_header TS-Outbound-IP \.20$
acl outbound1 req_header TS-Outbound-IP \.21$
acl outbound2 req_header TS-Outbound-IP \.22$
acl outbound3 req_header TS-Outbound-IP \.23$
acl outbound4 req_header TS-Outbound-IP \.24$
acl outbound5 req_header TS-Outbound-IP \.25$
tcp_outgoing_address 192.168.1.20 outbound0
tcp_outgoing_address 192.168.1.21 outbound1
tcp_outgoing_address 192.168.1.22 outbound2
tcp_outgoing_address 192.168.1.23 outbound3
tcp_outgoing_address 192.168.1.24 outbound4
tcp_outgoing_address 192.168.1.25 outbound5
Por enquanto, isso funciona perfeitamente para o que precisamos. Vou manter a questão em aberto porque esse método parece meio desajeitado e estou interessado em alternativas.