Como fazer com que o Raspberry Pi receba um IP de um roteador e também passe outro IP para outro dispositivo?

3

Sei que posso alcançar o resultado desejado com um switch Ethernet, mas estou curioso para saber se posso conseguir isso com uma solução mais barata.

A ideia é a seguinte:

  • O Rapsberry Pi tem duas portas Ethernet - uma é a porta interna e a outra é um adaptador USB-Ethernet barato

  • uma das portas é conectada diretamente ao meu roteador local e recebe um endereço IP do DHCP. Digamos que seja 192.168.1.2.

  • a outra porta será anexada a algum outro dispositivo. Eu preciso deste dispositivo para pensar que ele está conectado diretamente ao mesmo roteador e para receber um endereço IP do DHCP do roteador. Digamos que o endereço seja 192.168.1.3.

Essencialmente, eu gostaria que o RPi se comportasse como um switch Ethernet, que solicita um IP para si mesmo e, em seguida, encaminha outras solicitações de / para o outro dispositivo.

Aqui está uma imagem que explica como eu faria isso com um switch:

Eaquiestácomoeugostariaquefuncionasse:

Agora imagine que eu tenho cinco (ou mais) pares como "RPi plus Device X" e você entenderá porque eu gostaria de me livrar do switch, se possível - eu poderia comprar cinco dongles Ethernet USB em vez de cinco comutadores de 3 portas, o que exigiria uma fonte de alimentação separada e dois fios adicionais.

Existe alguma opção de configuração do Linux para fazer essa configuração funcionar com a porta Ethernet do RPi e um dongle Ethernet?

    
por JustAMartin 28.01.2015 / 13:28

3 respostas

2

Você deve conseguir isso configurando uma ponte entre suas duas interfaces de rede.

Assumindo que sua interface Ethernet integrada é eth0 e que o on via o adaptador USB é eth1 , uma configuração como esta em /etc/network/interfaces deve funcionar (desde que você tenha instalado o pacote bridge-utils e que seu kernel suporta isso):

auto lo br0
iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

iface br0 inet dhcp
    bridge_ports eth0 eth1

Se você executar ifconfig , deverá ver uma interface br0 (provavelmente com o endereço MAC de eth0 , se bem me lembro). Este será efetivamente a interface de mesclagem do seu RPi e obterá seu endereço IP do seu roteador.

O tráfego proveniente de seu outro dispositivo deve fluir pela ponte e também deve receber seu endereço IP. Se o tráfego não passar, talvez seja necessário permitir isso por meio de iptables . Você pode também estar interessado em este artigo .

(Como uma nota lateral, isso não necessariamente funcionaria com adaptadores de LAN sem fio, já que muitos não podem usar vários endereços MAC ao mesmo tempo.)

    
por 28.01.2015 / 22:48
1

Sua melhor aposta é definir o Pi com um ip estático.

De lá você quer instalar um servidor dhcp

 apt-get install isc-dhcp-server 

Você então edita o arquivo de configuração em

 /etc/conf.d/dhcp 

que informa ao servidor dhcp qual interface ouvir com esta linha:

 DHCP4_ARGS="... eth0" 

Você então inicia o daemon do servidor com:

 sudo /etc/rc.d/dhcp4 start 

Agora, qualquer cliente que transmita para um IP conectado a eth0 será gerenciado pelo servidor dhcp.

Você pode precisar trocar a eth0 pela eth1 para atender às suas necessidades

    
por 28.01.2015 / 18:08
1

Esteja ciente de que o Pi USB + Ethernet vem de um único chip on-board que se conecta a uma porta SINGLE no GPU Pi, ou seja, o dongle Ethernet USB NÃO será apenas "link direto" para Ethernet integrada

Assim, quando você tenta transferir dados de uma interface para outra, a taxa de transferência é prejudicada, pois cada byte tem que ser lido pela CPU, espere enquanto a CPU diz à GPU para selecionar a outra interface (no chip externo) após que a CPU pode gravar os dados de volta para a GPU e para a outra interface.

É claro que é mais eficiente ler & escreva 'blocos' de dados de cada vez, no entanto, enquanto o Pi está enviando um bloco de dados para fora em uma interface, o outro é desconectado, então qualquer coisa que entra será 'descartada' e terá que ser retransmitida ...

Dependendo de como a Ethernet & Os drivers 'dongle' USB são codificados, as chances são de que sua Ethernet de 100mbs seja reduzida para menos de 10 mbs (já vi alguns relatórios na faixa de kbs)

    
por 15.02.2015 / 13:45