
Ubuntu を実行している組み込み Linux システムを、同じく Ubuntu を実行しているラップトップに Ethernet 経由で接続しています。ラップトップは Wi-Fi 経由で自宅のネットワークに接続されています。ラップトップとボード (Altera DE1-SoC) の間に Ethernet 経由でローカル ネットワークを作成し、このネットワークをラップトップの Wi-Fi NIC 経由で自宅のネットワークに接続したいと考えています。理想的には、組み込みシステムが自宅のネットワークで DCHP 検出を実行して独自の IP アドレスを取得できるようにしたいと考えています。これを行うために必要な主な構成/手順は何ですか? ラップトップのインターフェイスは次のとおりです。
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)
enp1s0 はイーサネット NIC に対応し、wlp2s0 はワイヤレス NIC に対応すると思います。
ボードには
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
# 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
#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
ボード上のeth0をifdownしてifupすると、
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.
答え1
あなたが求めている機能は、4 アドレスの Wi-Fi ヘッダーを必要とするため、実装が非常に困難です。各 Wi-Fi パケットには、開始および終了のイーサネット アドレスと、開始および終了の Wi-Fi アドレスの 4 つの MAC アドレスを含めることができます。ただし、ほとんどの家庭用アプリケーションでは、終了のイーサネット アドレスは必要ありません。終了の Wi-Fi アドレスは通常、同じデバイス (携帯電話やラップトップなど) を参照するためです。そのため、多くの家庭用 Wi-Fi ルーターは、セキュリティ上の理由から、4 アドレス ヘッダーを使用するトラフィックをすべてブロックします。
私も同じようなタスクに挑戦しました。イーサネットのみのサーバーを Wi-Fi ネットワークに接続したいと考えていました。手元に Wi-Fi ドングルやカードはありませんでしたが、Raspberry Pi はたくさんあったので、Pi をアダプターとして使用することにしました。しかし、まさにこの問題に遭遇しました。
今後は、いくつかの選択肢があります(私が知る限りでは):
ルータが 4 アドレス パケットをサポートしているかどうかを確認してください。サポートしている場合は、ラップトップでネットワークをブリッジするだけで済みます。ルータはそれぞれ異なるため、お使いのルータが 4 アドレス ルーティングをサポートしている可能性があります。
Wi-Fi に接続しながら組み込みデバイスと通信するためのサブネットをコンピューター上に作成します。これは、イーサネット インターフェイスで実行されている DHCP サーバーを使用して実行できます。組み込みデバイスが Wi-Fi ネットワークとインターネットにアクセスできるように NAT を実装することもできます。ただし、組み込みデバイスを Wi-Fi ネットワークからアクセスできるようにするには、ポート転送を行う必要があります。
ラップトップのインターフェース間でパケットを直接渡し、ネットワークから切り離す。これがPiで採用した方法です。wlanケーブル私は簡単なセットアップスクリプトおそらく Ubuntu で動作する Pi 用です (netplan を無効にした場合)。このスキームでは、ネットワークは組み込みデバイスがラップトップの Wi-Fi MAC アドレスを持っていると認識します。DHCP の使用で問題が発生しました (おそらく有線コンピューターが間違ったアドレスで DHCPOFFERS を無視したため)。そのため、このルートでは静的 IP を使用することをお勧めします。
最適な解決策を提供できず申し訳ありません。私の知る限り、ハードウェアがそれをサポートしていません。もっと良い解決策を思いついたら教えてください。私たちの Pi でもそれを実装できます。