usb0 と usb1 インターフェースを 1 つのネットワークに統合するにはどうすればよいですか?

usb0 と usb1 インターフェースを 1 つのネットワークに統合するにはどうすればよいですか?

私は 3 台のデバイスをセットアップしており、すべて Ubuntu 14.04 を実行しています。セットアップは次のようになります。

1 台のホストと 2 台のデバイスによるネットワーク設定。

私が望むのは、両方のデバイスがインターネットに接続できるだけでなく、お互いに接続できる構成です。そして理想的には、どちらのデバイスから接続しても、ホスト PC は同じ IP を持つ必要があります。2 つの可能な構成を試しましたが、どちらも失敗しました。

1: usb0とusb1は同じIPとサブネットを使用します

ホスト

iface usb0 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

iface usb1 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

デバイス 0

iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    route add default gw 10.0.1.1

デバイス 1

auto usb0
iface usb0 inet static
    address 10.0.1.3
    netmask 255.255.255.0
    route add default gw 10.0.1.1

! 問題 !

デバイス 0 のみが接続されます。このデバイスは ping でき、インターネットに接続できますが、デバイス 1 は完全にゲームから外れています。したがって、これもインターネットに接続されていません。

2: usb0とusb1のIPアドレスが異なります

ホスト

iface usb0 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

iface usb1 inet static
    address 10.0.2.1
    netmask 255.255.255.0
    up route add 10.0.2.1 netmask 255.255.255.0

デバイス 0

iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    route add default gw 10.0.1.1

デバイス 1

auto usb0
iface usb0 inet static
    address 10.0.2.2
    netmask 255.255.255.0
    route add default gw 10.0.2.1

! 問題 !

デバイス番号 1 から 10.0.1.1 に ping できません。

質問

2 つの USB インターフェイスを接続して、理想的にはすべてのマシンが 1 つの IP アドレスを持ち、インターネットに接続され、SSH を介して他のすべてのマシンにアクセスできる、より大きなローカル ネットワークを形成するにはどうすればよいでしょうか。

答え1

必要なのは、ブリッジングを構成することです。ブリッジングは、基本的に、多数のインターフェースを結び付け、ブリッジを実行しているコンピューターをスイッチとして動作させます。IP アドレスは、構成インターフェースではなく、ブリッジ インターフェース自体で構成されます。

基本的に、これを行うには 2 つの方法があります。2 つの USB インターフェイスでブリッジを設定し、iptables とおそらく何らかの NAT を使用してマシンをインターネットにルーティングするか、両方の USB インターフェイスと物理インターフェイスを 1 つのブリッジにまとめるだけです。この方法では、USB インターフェイスを LAN に直接接続して、インターネットにアクセスできるようになります。

アプリケーションにとってどちらがより適切であるかを選択するのはあなた次第です。

/etc/network/interfacesメイン ネットワーク インターフェイスが eth0 と呼ばれていると仮定すると、USB ネットワーク インターフェイスがメイン ネットワークにブリッジされるセットアップの構成 ( ) は次のようになります。

iface eth0 inet manual
iface usb0 inet manual
iface usb1 inet manual

auto br0
iface br0 inet dhcp
  bridge_ports eth0 usb0 usb1

詳細はUbuntu コミュニティ ヘルプ ウィキ

この設定では、USB ネットワーク デバイスは、ネットワーク内の既存の DHCP サーバーから IP アドレスを取得するか、ローカル LAN で静的 IP アドレスを使用して構成されます。また、PC は DHCP を使用して IP を取得します。これを行う場合は、USB 接続デバイスが DHCP サーバーを実行していないことを確認してください。そうしないと、ネットワークの他のユーザーがアクセスできなくなる可能性があります。:-)

答え2

最終的に次のように構成されました。

ホスト

/etc/ネットワーク/インターフェース

auto br0
iface br0 inet static 
    address 10.0.1.1
    netmask 255.255.255.0
    bridge_ports usb0 usb1
    pre-up ip addr flush dev usb1
    pre-up ip addr flush dev usb0

ローカル

sleep(15)
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/null
iptables -P FORWARD ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE -s 10.0.1.0/24

デバイス 0

/etc/ネットワーク/インターフェース

auto usb0
iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    dns-nameserver 8.8.8.8
    up route add default gw 10.0.1.1

デバイス 1

/etc/ネットワーク/インターフェース

auto usb0
iface usb0 inet static
    address 10.0.1.3
    netmask 255.255.255.0
    dns-nameserver 8.8.8.8
    up route add default gw 10.0.1.1

関連情報