Arietta G25 Debian ARMボードをDHCPを使用してホームネットワークに接続しようとしています(または失敗した場合は、正しいサブネットの静的IP)。 m現在USB経由でボードを使用しています。これは静的192.168.10.0/24
IPを使用して構成されたある種の仮想イーサネットインターフェイスとして表示されます。接続されているマシンからアクセスできます(SSH)が、 192.168.1.0/24
上のネットワークの残りの部分とボードからインターネットにアクセスできるほか、ホームネットワークからボードにアクセスできます。
ホームネットワークは192.168.1.0/24
サブネット上にあります。
現在、2つの/etc/network/interfaces
ファイルがあります。
ホスト構成(Linuxホストボックス)
allow-hotplug usb0
iface usb0 inet static
address 192.168.10.20
netmask 255.255.255.0
Board config(Debian ARM board over USB)
auto usb0
iface usb0 inet static
address 192.168.10.10
netmask 255.255.255.0
gateway 192.168.10.20
ボードのIPを192.168.1.90
に設定しようとしましたが、アクセスできなくなりました。おそらくゲートウェイと何か関係がありますか?私も試しました
iface usb0 inet dhcp
無駄に。
USB-connected-with-virtual-ethernet-interface ARMボードに、残りの部分で使用される192.168.1.0/24
サブネット上にIPアドレス(DHCPまたは静的)を持たせるにはどうすればよいですか? USB経由でボックスに接続したときのネットワーク?DHCPを使用したい。192.168.1.1
のルーターでDHCPサーバーが実行されている。
これは、NATとiptablesを使用して可能です(インスピレーションに対するGreg Bowserの回答に感謝します)。eth0
がネットワークインターフェイスであり、usb0
がAriettaのネットワークインターフェイスであるとすると、これはホストにルーティングを設定する一時的に:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i usb0 -o eth0 -j ACCEPT
テストを行います(ifdown usb0
およびifup usb0
するか、Ariettaを再起動する必要がある場合があります)。ルールが機能する場合は、Ariettaから外部アドレス(おそらく192.168.1.1
またはgoogle.com
)にpingを実行できるはずです。
上記のiptablesルールが機能する場合は、net.ipv4.ip_forward = 1
を/etc/sysctl.conf
に追加し、iptablesルールを保存することで、それらを永続的にすることができます。これを行うには、iptables-persistent
(apt-get install iptables-persistent
)をインストールし、インストール中にルールを保存します。
ボードのIPを192.168.1.90
に設定すると、ルーティングが失敗するため機能しません。 [ホスト]ボックスでip route
を実行すると、192.168.1.0/24
が通常のネットワーク接続を介してLANの残りの部分に接続されていることが示されます。意図したとおりにusb0
ではなく、そのインターフェイスからパケットをルーティングしようとしています。
2つのオプション:
Linuxホストをルーターとして使用します。これには、転送を有効にし、iptablesでNAT(MASQUERADING)を設定する必要があります(これは実際には非常に簡単です)
ホストボックスにブリッジインターフェイスを作成し、そのブリッジに両方の物理インターフェイスを追加します。これは基本的に両方を同じスイッチに接続するようなものですが、ソフトウェアで行われます。ネットワークがeth0
のホストボックスに接続されていると仮定します。
brctl addbr br0
brctl addif br0 usb0
brctl addif eth0
これはうまくいくはずです©。 bridge-utils
パッケージのインストールが必要になる場合があります。 Debianベースのディストリビューションを使用しているので、 ここを参照 。