
Ich habe ein eingebettetes Linux-System mit Ubuntu, das über Ethernet mit meinem Laptop verbunden ist, auf dem ebenfalls Ubuntu läuft. Mein Laptop ist über WLAN mit meinem Heimnetzwerk verbunden. Ich möchte über Ethernet ein lokales Netzwerk zwischen meinem Laptop und der Platine (Altera DE1-SoC) erstellen, wobei dieses Netzwerk über die WLAN-Netzwerkkarte in meinem Laptop mit meinem Heimnetzwerk verbunden ist. Idealerweise möchte ich dem eingebetteten System erlauben, eine DCHP-Erkennung in meinem Heimnetzwerk durchzuführen, um seine eigene IP-Adresse zu erhalten. Welche wichtigen Konfigurationen/Schritte muss ich dafür durchführen? Die Schnittstellen auf meinem Laptop sind
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)
Ich glaube, enp1s0 entspricht der Ethernet-Netzwerkkarte und wlp2s0 der drahtlosen Netzwerkkarte.
Auf dem Board habe ich
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 auf dem 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 an Bord
#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
Wenn ich ifdown und ifup eth0 auf dem Board mache, bekomme ich
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.
Antwort1
Die von Ihnen gewünschte Funktionalität ist sehr schwer zu implementieren, da sie Wi-Fi-Header mit 4 Adressen erfordert. Jedes Wi-Fi-Paket kann 4 MAC-Adressen enthalten – eine Ethernet-Start- und eine Ethernet-Endadresse sowie eine Wi-Fi-Start- und eine Wi-Fi-Endadresse. In den meisten Heimanwendungen wird die Ethernet-Endadresse jedoch nicht benötigt, da die Wi-Fi-Endadresse normalerweise auf dasselbe Gerät verweist (denken Sie an Ihr Telefon oder Ihren Laptop). Daher blockieren viele Heim-Wi-Fi-Router jeglichen Datenverkehr mithilfe von Wi-Fi-Headern mit 4 Adressen, angeblich aus Sicherheitsgründen.
Ich habe eine ähnliche Aufgabe versucht – wir hatten einen reinen Ethernet-Server, den wir an unser WLAN-Netzwerk anschließen wollten. Wir hatten keinen WLAN-Dongle oder keine WLAN-Karte zur Hand, aber wir hatten jede Menge Raspberry Pis, also beschlossen wir, einfach einen Pi als Adapter zu verwenden. Allerdings stießen wir auf genau dieses Problem.
In Zukunft stehen Ihnen mehrere Optionen zur Verfügung (die mir bekannt sind):
Prüfen Sie, ob Ihr Router 4-Adress-Pakete unterstützt. In diesem Fall müssen Sie nur die Netzwerke auf Ihrem Laptop überbrücken – jeder Router ist anders und Ihrer unterstützt möglicherweise 4-Adress-Routing.
Erstellen Sie auf Ihrem Computer ein Subnetz, damit Sie mit dem eingebetteten Gerät kommunizieren können, während Sie mit Ihrem WLAN verbunden sind. Dies kann mithilfe eines DHCP-Servers erreicht werden, der auf der Ethernet-Schnittstelle ausgeführt wird. Sie können auch NAT implementieren, um dem eingebetteten Gerät Zugriff auf Ihr WLAN-Netzwerk und das Internet zu gewähren. Sie müssen jedoch eine Portweiterleitung durchführen, wenn Sie möchten, dass das eingebettete Gerät über das WLAN-Netzwerk erreichbar ist.
Direkte Weiterleitung von Paketen zwischen den Schnittstellen des Laptops, wodurch dieser effektiv aus dem Netzwerk entfernt wird. Dies ist der Weg, den wir mit den Pis gegangen sind. Wir habenwlan_kabelIch habe sogar eine kurzeSetup-Skriptfür einen Pi, der wahrscheinlich unter Ubuntu laufen würde (wenn Sie Netplan deaktivieren). Bei diesem Schema sieht das Netzwerk das eingebettete Gerät als das mit der WLAN-MAC-Adresse des Laptops ausgestattete Gerät. Wir hatten Probleme mit DHCP (wahrscheinlich, weil der verkabelte Computer DHCPOFFERS mit der falschen Adresse ignorierte), daher würde ich empfehlen, bei dieser Route eine statische IP zu verwenden.
Leider konnte ich keine optimale Lösung anbieten – meines Wissens nach unterstützt die Hardware dies nicht. Wenn Sie eine bessere Lösung finden, lassen Sie es mich wissen, damit ich diese auch mit unseren Pis implementieren kann.