Use duas redes para acessar recursos diferentes pela Internet

0

Eu tenho o seguinte problema.

Na minha empresa, temos um proxy e não consigo acessar alguns recursos que eu preciso desenvolver para que eles me forneçam um roteador 4g externo. Posso conectar as conexões de forma que quando não puder acessar um recurso via ethernet, tente com o 4g sem trocar as conexões toda vez?

Eu tenho:

Ambas as conexões estão no intervalo de IPs diferentes.

  • LAN ethernet que passa pelo proxy corporativo e pelo firewall.
  • Conexão WLAN 4g para quando eu tiver que acessar diretamente ou de um IP externo para um recurso.

Eu quero:

I ask for a resource (URL) -> check via LAN first, and if I can't use LAN to reach it, use WLAN.

Exemplo (supersimplificado):

  • Página interna da empresa - > LAN diz SIM
  • Recurso externo que o proxy não permite - > LAN diz NÃO - > 4g diz SIM

PD: Nossa TI diz que é um problema de proxy, mas eu suspeito que o não permite portas para saída ou algo assim ...

Obrigado pela ajuda! Eu não sou nativo do inglês, então se você precisar de alguma aclaração, por favor, comente.

    
por Oscar Vicente Perez 28.03.2017 / 11:11

1 resposta

0

Você deve configurar um proxy.pac .

O que é um proxy.pac

Este é um pequeno arquivo Javascript que você pode hospedar no seu computador. Você alimenta sua configuração de rede do navegador da Web com esse arquivo e seu método FindProxyForURL(url,host) será chamado para rotear todos os URLs que seu navegador precisa acessar.

Este método Javascript pode usar um conjunto de funções de teste pré-definidas úteis e deve retornar:

  • "DIRECT" para ignorar proxies e tentar conectar-se diretamente à internet para esse URL
  • "PROXY ip:port" para rotear para o proxy fornecido (IP / port)
  • ou várias opções separadas por "; " para descrever uma cadeia com failover

Essa configuração torna muito fácil descrever regras de roteamento abrangentes com base na URL à qual você está se conectando ou até mesmo no endereço IP do computador (rede doméstica / da empresa) e no dia da semana (dias úteis / finais de semana).

Arquivo de exemplo

Aqui está um exemplo interessante para você ver:

function FindProxyForURL(url, host) {

// If the hostname matches, send direct.
    if (dnsDomainIs(host, "intranet.domain.com") ||
        shExpMatch(host, "(*.abcdomain.com|abcdomain.com)"))
        return "DIRECT";

// If the protocol or URL matches, send direct.
    if (url.substring(0, 4)=="ftp:" ||
        shExpMatch(url, "http://abcdomain.com/folder/*"))
        return "DIRECT";

// If the requested website is hosted within the internal network, send direct.
    if (isPlainHostName(host) ||
        shExpMatch(host, "*.local") ||
        isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") ||
        isInNet(dnsResolve(host), "172.16.0.0",  "255.240.0.0") ||
        isInNet(dnsResolve(host), "192.168.0.0",  "255.255.0.0") ||
        isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0"))
        return "DIRECT";

// If the IP address of the local machine is within a defined
// subnet, send to a specific proxy.
    if (isInNet(myIpAddress(), "10.10.5.0", "255.255.255.0"))
        return "PROXY 1.2.3.4:8080";

// DEFAULT RULE: All other traffic, use below proxies, in fail-over order.
    return "PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080";
}

Como isso é Javascript, é claro que você pode criar e usar funções e variáveis auxiliares particulares.

Leitura adicional

Você encontrará vários documentos pela Internet. Entre outros:

Última dica

Recomendamos que você selecione apenas FindProxyForURL result do argumento do host ou o protocolo de URL. Especialmente, o roteamento de várias URLs de um único site por meio de diferentes IPs externos nem sempre é suportado, pois alguns sites esperam que um usuário tenha um endereço IP estável durante toda a navegação.

Um monte de exemplo de balanceamento de carga tem esse lado negativo.

    
por 08.05.2017 / 11:07