# Основная идея: используем директиву tcp_outgoing_address
# Пример для двух адресов:
# Говорим squid слушать нужные порты
# http_port 20000
# http_port 20001
# Создаём ACL правила
# acl p20000 myport 20000
# acl p20001 myport 20001
# С помощью созданных ACL правил выбираем нужный исходящий IP
# tcp_outgoing_address 78.109.20.226 p20000
# tcp_outgoing_address 78.109.20.227 p20001
# Важное замечание: директива tcp_outgoing_address должна быть указана после того
# как был разрешён доступ с помощью http_access правил.
# Проще всего указать вышеописанные правила в конце конфига.
# Для генерации конфига можно воспользоваться скриптом
#!/usr/bin/env python
start_port = 2000
start_ip = (192, 16, 12, 0)
ip_count = 2
chunks = ([], [], [])
for x in xrange(ip_count):
port = start_port + x
ip = list(start_ip)
ip[3] += x
chunks[0].append('http_port %d' % port)
chunks[1].append('acl p%d myport %d' % (port, port))
chunks[2].append('tcp_outgoing_address %s p%d' % ('.'.join(map(str, ip)), port))
for group in chunks:
for line in group:
print line
print