
Eu tenho um sistema Linux embarcado rodando Ubuntu conectado via Ethernet ao meu laptop que também roda Ubuntu. Meu laptop está conectado à minha rede doméstica via wifi. Gostaria de criar uma rede local entre meu laptop e a placa (Altera DE1-SoC) via Ethernet com esta rede conectada à minha rede doméstica através da NIC wifi do meu laptop. Idealmente, eu gostaria de permitir que o sistema embarcado execute a descoberta de DCHP na minha rede doméstica para obter seu próprio endereço IP. Quais são as principais configurações/etapas que preciso realizar para fazer isso? As interfaces do meu laptop são
enp1s0 Link encap:Ethernet HWaddr ec:f4:bb:9c:2f:35
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:736 errors:0 dropped:0 overruns:0 frame:0
TX packets:5148 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:251712 (251.7 KB) TX bytes:943851 (943.8 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1303331 errors:0 dropped:0 overruns:0 frame:0
TX packets:1303331 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:504332328 (504.3 MB) TX bytes:504332328 (504.3 MB)
wlp2s0 Link encap:Ethernet HWaddr a0:88:69:70:16:d8
inet addr:192.168.1.148 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: 2601:4b:500:1d01:c03a:e05e:9c30:b44e/64 Scope:Global
inet6 addr: fe80::1095:5763:9405:b652/64 Scope:Link
inet6 addr: 2601:4b:500:1d01:774f:fccd:5479:e9bc/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6588443 errors:0 dropped:0 overruns:0 frame:0
TX packets:2426855 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6843503929 (6.8 GB) TX bytes:502932524 (502.9 MB)
Acredito que enp1s0 corresponde à NIC Ethernet e wlp2s0 corresponde à NIC wireless.
No quadro eu tenho
jfrye@DE1-SoC:~$ ifconfig
eth0 Link encap:Ethernet HWaddr da:e9:a5:9c:c8:58
inet6 addr: fe80::d8e9:a5ff:fe9c:c858/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:577 errors:0 dropped:0 overruns:0 frame:0
TX packets:546 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:197334 (197.3 KB) TX bytes:175844 (175.8 KB)
Interrupt:31 Base address:0x4000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:72 errors:0 dropped:0 overruns:0 frame:0
TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:6016 (6.0 KB) TX bytes:6016 (6.0 KB)
/etc/network/interfaces no laptop
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo wlp2s0
iface lo inet loopback
auto lo enp1s0
iface enps1s0 inet dhcp
/etc/network/interfaces a bordo
#interfaces (5) file used by ifup(8) and ifdown(8)
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
Quando eu ifdown e ifup eth0 no quadro, recebo
Listening on LPF/eth0/da:e9:a5:9c:c8:58
Sending on LPF/eth0/da:e9:a5:9c:c8:58
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 15 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 17 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 13 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 21 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 19 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 12 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 10 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 14 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 15 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 9 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 16 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 13 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 16 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 20 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 10 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0xb785c867)
No DHCPOFFERS received.
Responder1
A funcionalidade que você está solicitando é muito difícil de implementar, pois requer cabeçalhos Wi-Fi de 4 endereços. Cada pacote Wi-Fi pode conter 4 endereços MAC - um endereço Ethernet inicial e final e um endereço Wi-Fi inicial e final. No entanto, na maioria das aplicações domésticas, o endereço Ethernet final não é necessário, pois o endereço Wi-Fi final normalmente se refere ao mesmo dispositivo (pense no seu telefone ou laptop). Assim, muitos roteadores Wi-Fi domésticos bloqueiam qualquer tráfego usando cabeçalhos de 4 endereços, supostamente por motivos de segurança.
Tentei uma tarefa semelhante - tínhamos um servidor somente Ethernet que queríamos conectar à nossa rede Wi-Fi. Não tínhamos um dongle ou cartão Wi-Fi em mãos, mas tínhamos muitos Raspberry Pis, então decidimos simplesmente usar um Pi como nosso adaptador. No entanto, nos deparamos com esse mesmo problema.
Daqui para frente, você tem várias opções (que eu saiba):
Veja se o seu roteador suporta pacotes de 4 endereços; nesse caso, você só precisará conectar as redes do seu laptop - cada roteador é diferente e o seu pode suportar roteamento de 4 endereços.
Crie uma sub-rede em seu computador para você se comunicar com o dispositivo incorporado, enquanto estiver conectado ao seu Wi-Fi - isso pode ser feito usando um servidor DHCP rodando na interface Ethernet. Você também pode implementar o NAT para permitir que o dispositivo incorporado acesse sua rede Wi-Fi e a Internet. No entanto, você terá que encaminhar a porta se quiser que o dispositivo incorporado seja acessível pela rede Wi-Fi.
Passe pacotes diretamente entre as interfaces do laptop, removendo-o efetivamente da rede. Este é o caminho que fizemos com o Pis. Nós costumavamoswlan_kabel. Eu até escrevi um rápidoscript de configuraçãopara um Pi que provavelmente rodaria no Ubuntu (se você desabilitar o netplan). Sob este esquema, a rede vê o dispositivo incorporado como tendo o endereço MAC Wi-Fi do laptop. Tivemos problemas ao usar o DHCP (provavelmente porque o computador com fio ignorou DHCPOFFERS com o endereço errado), então recomendo usar um IP estático com esta rota.
Desculpe, não consegui fornecer uma solução ideal - AFAIK, o hardware não suporta isso. Deixe-me saber se você encontrar um melhor, para que eu possa implementá-lo também com nosso Pis.