Executando um software em outra interface de rede?

2

Eu criei 3 interfaces virtuais em um sistema Linux, usando endereços IP diferentes.

Eu tenho um software fazendo solicitações para um servidor, mas ele usa a interface padrão, eth0 .

É possível executar um software usando outro endereço IP / interface temporariamente, como eth0:1 ?

Algo como:

USE_INTERFACE=eth0:1 node test.js
    
por Unitech 10.08.2012 / 20:41

3 respostas

2

Geralmente, cabe ao software suportar. Geralmente, é implementado ligando-se o soquete ao endereço IP da interface que você deseja usar. Verifique a documentação para obter uma maneira de vincular a um endereço IP local.

Se o software não suporta que você tem acesso à fonte, você pode adicionar ou alterar a chamada bind() depois de criar o soquete, então ligue a interface que você quer.

Também pode ser possível ocultar interfaces indesejadas com os recursos dos grupos de controle, se o seu kernel suportar isso.

    
por 11.08.2012 / 01:50
1

Você pode substituir sem tocar no software graças a LD_PRELOAD.

Eu descobri que:

Bind.c

Compile então:

$ BIND_ADDR="virtual_interface_ip" LD_PRELOAD=./bind.so ssh [email protected]

E usará a interface virtual ip!

Então, se você precisar ter vários endereços MAC na mesma placa de rede, poderá usar o multimac:

Multimac

Hacker feliz!

    
por 11.08.2012 / 22:25
0

Ok, é mais fácil usar a mesma estratégia do que o sistema de virtualização. Usando o modo bridge, brctl, aqui está um tutorial:

link

    
por 12.08.2012 / 03:42