Como ligar uma conexão Ethernet via USB à rede host?

3

Eu tenho um computador de placa única que quero conectar à minha conexão de internet / lan. O SBC não possui uma porta Ethernet, apenas um chip sem fio embutido que atualmente não está funcionando. Mas ele tem USB e eu percebi que deveria ser possível conectá-lo via ethernet via USB à minha estação de trabalho e então fazer algum tipo de ponte / encaminhamento. Estou usando um Beagle Bone Black Wireless e (atualmente) Arch Linux ARM am33x para o "cliente". A estação de trabalho é o Fedora 23. A ethernet via USB está funcionando, eu posso conectar o SSH ao SBC. No entanto, não consegui sair do SBC para minha rede local ou Internet.

Uma lista de coisas que eu já tentei:

Exiba um:

Isso me permite acessar o SSH no cliente.

Configuração / Comandos no cliente:

modprobe g_ether

configuração do netctl:

Description='USB ethernet connection'

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.7.2/24')

DNS=('8.8.8.8')

#Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

Configuração na estação de trabalho:

ifconfig enp0s29u1u2 192.168.7.1

Anexo b:

Eu cansei disso para conectar as duas interfaces ( enp0s29u1u2 é a interface Eth over usb side e enp6s0 está voltada para minha rede local e também para a internet); o seguinte código é executado na estação de trabalho. Achei isso aqui: Roteamento entre duas redes no linux?

echo 1 >> /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp0s29u1u2 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o enp6s0 -j MASQUERADE
iptables --append FORWARD -i enp6s0 -o enp0s29u1u2 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables --append FORWARD -i enp0s29u1u2 -o enp6s0 -j ACCEPT       

Primeiro, deixei os endereços IP, pois eles eram 192.168.1.0/24 para o Lan e 192.168.7.0/24 para a rede Ethernet via USB. Mas eu não consegui alcançar meu gateway nem nada abaixo da minha estação de trabalho. Eu também tentei dar ao Beagle Bone um endereço 192.168.1.* que também não ajudou. Eu provavelmente estou sentindo falta de algo aqui. Roteamento talvez?

Exibição c:

Eu também tentei criar uma ponte entre as interfaces.

A configuração do Netctl no beaglebone foi definida assim:

Descrição = 'conexão ethernet USB'

Interface=usb0

Connection=ethernet

IP=static

Address=('192.168.1.210/24')

DNS=('8.8.8.8')

Gateway=('192.168.1.1')

## For IPv6 autoconfiguration

IP6=stateless

Comandos (estação de trabalho):

brctl addbr br0
brctl addif br0 enp6s0 enp0s29u1u2
ifconfig br0 192.168.1.202 (or some random free address)

Eu tive que fazer route add default gw 192.168.1.1 para recuperar o acesso à Internet na minha estação de trabalho. Eu também fiz isso no beaglebone, mas também não  exercite-se. Eu não tenho certeza, mas como eu estou entendendo a ponte de rede deve se comportar como eu apenas ligado o dispositivo a um switch ethernet (ou seja, os membros da rede podem se comunicar como se a ponte não estivesse lá; mas aparentemente precisa de um separado ip então estou um pouco confuso, por favor me dê uma dica).

Questão Principal:

Existe algum roteamento manual necessário para integrar o Beaglebone na lan e obter acesso à internet ou outra coisa, talvez? Obrigado por qualquer sugestão! Hackarounds também são apprectiated como eu estou procurando uma solução temporal.

    
por rudib 16.12.2016 / 22:47

1 resposta

2

Você tem echo 1 >> /proc/sys/net/ipv4/ip_forward

Mas deve ser echo 1 > /proc/sys/net/ipv4/ip_forward

O gateway está comentado em #Gateway=('192.168.1.1') em uma das suas opções.

Você precisaria fazer ip route add default via 192.168.1.1 no computador de placa única para saber para onde enviar o tráfego da Internet. (Onde 192.168.1.1 é o IP do dispositivo com ip_forward ativado.)

    
por 16.12.2016 / 23:02