Use duas interfaces de rede simultaneamente

2

Costumo usar o Wi-Fi de algumas redes públicas que não permitem alguns protocolos (como torrent ou IRC - em seguida falarei apenas sobre o IRC). Se eu quiser usar um desses protocolos, tenho que usar a conexão 3G do meu telefone (através da interface usb0 ).

Gostaria de ficar conectado ao Wi-Fi para minha navegação na Web (por isso, use a interface wlan0 clássica), mas use outra interface (aqui usb0 ) para alguns softwares (geralmente só para weechat, CLI IRC).

Assim, tenho duas perguntas (vinculadas):

  • como se conectar simultaneamente a duas interfaces sem estragar tudo?
  • como configurar um software para usar uma interface e outro software para usar a outra interface? Como o weechat é um software CLI, talvez eu tenha que declarar uma variável de ambiente específica; mas como ter certeza de que o Firefox não usa usb0 em vez de wlan0 ?
por Shan-x 21.11.2015 / 19:21

2 respostas

2

A solução mais simples é ter duas tabelas de roteamento separadas; um deles ( wlan0 , no seu caso) será o padrão, enquanto podemos usar um truque para forçar um aplicativo específico a usar a tabela não padrão.

Primeiro, crie duas tabelas (substitua NAME1 por um nome que faça sentido para você, a mesma coisa com IP1, DEV1 e assim por diante):

echo 201 NAME2 >> /etc/iproute2/rt_tables

Adicione um gateway a cada tabela de roteamento (se necessário):

ip route add NET1 dev DEV1 src SRC1 table main
ip route add NET2 dev DEV2 src SRC2 table NAME2

Em seguida, uma rota padrão:

ip route add default via IP1 table main
ip route add default via IP2 table NAME2

Em seguida, as regras para selecionar a tabela de rotas com base no endereço de origem:

ip rule add from IP1 table main
ip rule add from IP2 table NAME2

Agora, precisamos forçar o weechat a usar o IP2.Fazemos isso criando um novo módulo de ligação . É trivial fazer isso, existem instruções simples na referência. Depois de ter compilado o módulo e colocado em /usr/lib , você emite o comando:

 BIND_ADDR=IP2 LD_PRELOAD=/usr/lib/bind.so weechat

e você está feito. A vantagem disso é que ele pode ser facilmente roteirizado e pode ser repetido para quantos aplicativos você desejar.

    
por 22.11.2015 / 08:38
2

Se você definir duas sub-redes, por exemplo:

  • 192.168.1.x / 255.255.255.0 - wlan0
  • 192.168.2.x / 255.255.255.0 - usb0

Se você definir o gateway apenas para wlan0 , todo o tráfego de rede ao lado endereçado diretamente para 192.168.2.x passará por wlan0 .

Você pode rotear o tráfego de rede para endereços IP específicos por meio da interface usb0 . Você também pode rotear o tráfego por uma interface específica para um processo no linux .

    
por 21.11.2015 / 21:21