Andar de bicicleta pelos endereços IP de saída com lula

2

Um servidor Squid no trabalho está sendo usado para rotear solicitações através de vários endereços IP externos. Eu estou fazendo o roteamento de IP nomeado com a solução em minha própria pergunta sobre o Unix.SE . Outra parte do quebra-cabeças que preciso adicionar agora é a seleção aleatória, se o cabeçalho personalizado não estiver definido.

Eu sei que há uma diretiva "aleatória" que definirá uma ACL com base em uma probabilidade, mas os exemplos on-line são incompletos na melhor das hipóteses.

Eu preciso de uma maneira de dividir todo o meu tráfego aleatoriamente em 20 endereços IP, a menos que um cabeçalho específico seja definido, ponto no qual o cabeçalho (também conhecido como ACL) deve ter prioridade e forçar um endereço IP de saída. Como posso fazer isso com o ACL no squid?

    
por Bryan Boettcher 04.06.2013 / 00:56

1 resposta

4

Eu não sou um especialista em lulas, mas usei um pouco e achei que isso poderia funcionar.

acl random1 random 1/20
acl random2 random 1/20
acl random3 random 1/20
acl random4 random 1/20
acl random5 random 1/20
acl random6 random 1/20
acl random7 random 1/20
acl random8 random 1/20
acl random9 random 1/20
acl random10 random 1/20
acl random11 random 1/20
acl random12 random 1/20
acl random13 random 1/20
acl random14 random 1/20
acl random15 random 1/20
acl random16 random 1/20
acl random17 random 1/20
acl random18 random 1/20
acl random19 random 1/20
acl random20 random 1/20
acl prio1 req_header priohdr 1
acl prio2 req_header priohdr 2
acl prio3 req_header priohdr 3
acl prio4 req_header priohdr 4
acl prio5 req_header priohdr 5
acl prio6 req_header priohdr 6
acl prio7 req_header priohdr 7
acl prio8 req_header priohdr 8
acl prio9 req_header priohdr 9
acl prio10 req_header priohdr 10
acl prio11 req_header priohdr 11
acl prio12 req_header priohdr 12
acl prio13 req_header priohdr 13
acl prio14 req_header priohdr 14
acl prio15 req_header priohdr 15
acl prio16 req_header priohdr 16
acl prio17 req_header priohdr 17
acl prio18 req_header priohdr 18
acl prio19 req_header priohdr 19
acl prio20 req_header priohdr 20
tcp_outgoing_address 10.0.0.1 random1
tcp_outgoing_address 10.0.0.2 random2
tcp_outgoing_address 10.0.0.3 random3
tcp_outgoing_address 10.0.0.4 random4
tcp_outgoing_address 10.0.0.5 random5
tcp_outgoing_address 10.0.0.6 random6
tcp_outgoing_address 10.0.0.7 random7
tcp_outgoing_address 10.0.0.8 random8
tcp_outgoing_address 10.0.0.9 random9
tcp_outgoing_address 10.0.0.10 random10
tcp_outgoing_address 10.0.0.11 random11
tcp_outgoing_address 10.0.0.12 random12
tcp_outgoing_address 10.0.0.13 random13
tcp_outgoing_address 10.0.0.14 random14
tcp_outgoing_address 10.0.0.15 random15
tcp_outgoing_address 10.0.0.16 random16
tcp_outgoing_address 10.0.0.17 random17
tcp_outgoing_address 10.0.0.18 random18
tcp_outgoing_address 10.0.0.19 random19
tcp_outgoing_address 10.0.0.20 random20
tcp_outgoing_address 10.0.0.1 prio1
tcp_outgoing_address 10.0.0.2 prio2
tcp_outgoing_address 10.0.0.3 prio3
tcp_outgoing_address 10.0.0.4 prio4
tcp_outgoing_address 10.0.0.5 prio5
tcp_outgoing_address 10.0.0.6 prio6
tcp_outgoing_address 10.0.0.7 prio7
tcp_outgoing_address 10.0.0.8 prio8
tcp_outgoing_address 10.0.0.9 prio9
tcp_outgoing_address 10.0.0.10 prio10
tcp_outgoing_address 10.0.0.11 prio11
tcp_outgoing_address 10.0.0.12 prio12
tcp_outgoing_address 10.0.0.13 prio13
tcp_outgoing_address 10.0.0.14 prio14
tcp_outgoing_address 10.0.0.15 prio15
tcp_outgoing_address 10.0.0.16 prio16
tcp_outgoing_address 10.0.0.17 prio17
tcp_outgoing_address 10.0.0.18 prio18
tcp_outgoing_address 10.0.0.19 prio19
tcp_outgoing_address 10.0.0.20 prio20

Altere 10.0.0.X para seus endereços IP para suas conexões de saída, obviamente esses endereços precisam estar disponíveis no sistema, então eles precisarão ser ips estáticos.

Altere 10.0.0.1 no final para qualquer conexão que você deseja que o tráfego com o cabeçalho seja definido.

O cabeçalho do navegador precisa ter o nome especificado e ter um conteúdo que corresponda ao regex.

Novamente, eu não sou um especialista, mas vale a pena ir.

Além disso, esta é 20, 1 em 20 chances de coincidir com as probabilidades aleatórias, teoricamente deve coincidir com uma, mas não é garantida, então a primeira linha deve definir a conexão padrão.

Editar:

Atualizado para permitir a seleção da conexão, ele precisa ser testado, porque não posso ter 100% de certeza de que funcionará conforme necessário.

    
por 29.08.2013 / 08:30

Tags