A resposta curta é: em 95% dos casos isso não pode ser feito, e o seu cai dentro de 95%.
Primeiro, deixe-me dizer que faz pouco sentido falar em roteamento de upload e download separadamente, porque mesmo tarefas de download intensas exigem que alguns pacotes fluam de volta para a origem, ie qualquer download requer algum upload flow (Isto é menos verdade para o UDP do que para o TCP, mas não importa isso).
Se tivéssemos de canalizar o upload de uma conexão de download maior por meio de uma NIC diferente da usada para a parte de download, a origem do download mostraria respostas aos seus pacotes originadas de um endereço IP diferente daquele para o download qual está enviando pacotes; é um recurso de segurança básico para desconsiderar os pacotes supostamente relacionados a uma determinada conexão, mas originários de um endereço de terceiros. Assim, a parte de upload da conversa seria descartada e a conexão seria paralisada. Isso tem pouco a ver com ISPs e seus serviços: ocorre
mesmo entre dois pcs na mesma LAN, se um dos dois estiver tentando se conectar a um endereço IP usando na mesma conexão dois NICS diferentes (portanto, dois IPs diferentes).
Esta é a razão pela qual falamos de conexões, não de upload / download.Mas então podemos reformular sua pergunta da seguinte forma: posso ter um pc, que tem dois NICs conectados à rede, use os dois NICs para duas conexões distintas, digamos a conexão lenta para um trabalho lento e tedioso como o e-mail e a conexão rápida para um processo rápido como o download de uma página da Web?
A resposta curta para esta pergunta bem formulada é: no Windows, * Nix (incluindo MacOS) e Android no.In Linux sim, você pode.
O motivo pelo qual você não pode fazer isso no Windows (qualquer versão), * Nix e Android é que qualquer tabela de roteamento pode ter apenas um gateway padrão (* ie * o endereço para o qual você envia todos os pacotes não destinados à sua LAN) e esses SOs só podem manipular uma tabela de roteamento: portanto, um único gateway.
Em vez disso, para alocar aplicativos diferentes a interfaces diferentes, você precisa de duas funcionalidades distintas: uma, a capacidade duas executam duas tabelas de roteamento simultaneamente e duas, a capacidade de vincular aplicativos a qualquer tabela de roteamento. Apenas o kernel do Linux (anos-luz à frente da concorrência) tem esses recursos, até o momento desta publicação. O kernel * Nix compensa parcialmente isso através de um uso criterioso de seu firewall, o pfsense, sem, no entanto, atingir o resultado completo.
A capacidade de executar duas tabelas de roteamento ao mesmo tempo (chamado roteamento de política ou roteamento baseado na origem ) significa que os pacotes são roteados de forma diferente, dependendo do endereço IP. Este é um recurso extremamente útil se você estiver construindo um roteador.
No entanto, para usar diferentes NICs (e, portanto, IPS) dependendo do aplicativo, você precisa de namespaces de rede , um recurso de kernel do Linux que permite criar um shell separado com sua própria pilha de rede . Agora, os processos em execução nesse shell separado serão todos roteados de acordo com a tabela de roteamento do namespace de rede, não com o do pc principal.
Esta é, obviamente, uma forma de virtualização, embora seja uma forma mais fraca do que, digamos, um contêiner Linux, sem mencionar uma máquina virtual. Mas é o caminho real, com um único PC, para rotear diferentes processos através de diferentes interfaces.
Para resumir, no Linux (e apenas no Linux) você pode executar um namespace de rede separado, que é, por exemplo, conectado através de uma VPN ao seu local de trabalho, para acessar seus recursos de trabalho e, se executar o Firefox, você parece estar baseado em seu local de trabalho e, ao mesmo tempo, executar o Google Chrome fora do namespace da rede e, assim, aparecer (no Google Chrome) em casa.