Como conectar dois segmentos da LAN através da porta serial usando o Linux?

6

Eu tenho um aplicativo em que duas sub-redes são conectadas de forma transparente por meio de duas Serial to Ethernet Bridges e um modem serial nulo cabo (apenas RS-232, TX e RX). Essa configuração se comporta exatamente como um cabo Ethernet, exceto pela velocidade e latência.

Essas pontes são bem caras para mim e eu queria saber como fazer isso com um SBC barato rodando Linux (por exemplo, Raspberry Pi). Eu tenho procurado por dias sem sucesso.

Eu li em fóruns que o netcat, ppp e ser2net não farão o trabalho, e brctl só funciona para interfaces Ethernet. Eu pensei em usar socat ou bridge-utils, mas não consegui encontrar nenhuma referência de um aplicativo semelhante ao meu. Eu vi toneladas de aplicativos onde um dispositivo serial é ligado por uma conexão TCP, não o inverso que é o meu caso.

Você poderia me ajudar a resolver esse problema?

Meu conhecimento de rede é básico e peço desculpas por qualquer erro.

    
por rcm 13.08.2018 / 02:56

1 resposta

0

Quickshot com socat , não testado:

socat TUN:10.10.1.4/24,tun-type=tap,tun-name=tap0,iff-up /dev/ttyS0,rawer

Em seguida, adicione-o à ponte (digamos, br0 ):

ip link set tap0 master br0

Pode precisar de algumas modificações se rawer ainda não for suficientemente bruto. IIRC só precisa do endereço IP para tornar socat feliz.

Como alternativa, use algum protocolo que é feito para redes através de um link serial, como SLIP ou PPP, e que irá escapar de personagens engraçados e fazer o controle de fluxo em uma pitada, e então executar um túnel de camada 2 sobre ele. Menos eficiente e mais difícil de configurar.

    
por 13.08.2018 / 18:38