Wie füge ich die Schnittstellen USB0 und USB1 zu einem Netzwerk zusammen?

Wie füge ich die Schnittstellen USB0 und USB1 zu einem Netzwerk zusammen?

Ich habe ein Setup mit drei Geräten, auf denen alle Ubuntu 14.04 laufen. Das Setup sieht wie folgt aus:

Netzwerkeinrichtung mit einem Host und zwei Geräten.

Ich hätte gern eine Konfiguration, bei der beide Geräte eine Verbindung zum Internet und auch untereinander herstellen können. Und idealerweise sollte der Host-PC dieselbe IP-Adresse haben, wenn er von einem der beiden Geräte aus verbunden wird. Ich habe zwei mögliche Konfigurationen ausprobiert, aber beide sind fehlgeschlagen.

1: usb0 und usb1 verwenden dieselbe IP und dasselbe Subnetz

Gastgeber

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

Gerät 0

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

Gerät 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

! Problem !

Nur Gerät 0 wird verbunden. Dieses kann angepingt werden und sich mit dem Internet verbinden, aber Gerät 1 ist komplett aus dem Spiel. Es hat daher auch keine Internetverbindung.

2: usb0 und usb1 haben eine unterschiedliche IP-Adresse

Gastgeber

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

Gerät 0

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

Gerät 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

! Problem !

Ich kann 10.0.1.1 von Gerät Nummer 1 aus nicht anpingen.

Frage

Wie verbinde ich die beiden USB-Schnittstellen, sodass ein größeres lokales Netzwerk entsteht, in dem im Idealfall jeder Rechner eine eigene IP-Adresse hat, mit dem Internet verbunden ist und per SSH auf jeden anderen Rechner zugreifen kann?

Antwort1

Sie müssen Bridging konfigurieren. Bridging verbindet im Wesentlichen eine Reihe von Schnittstellen und lässt den Computer, auf dem die Bridge läuft, als Switch fungieren. Die IP-Adresse wird auf der Bridge-Schnittstelle selbst konfiguriert und nicht auf den einzelnen Schnittstellen.

Grundsätzlich gibt es zwei Möglichkeiten, dies zu tun: Entweder Sie richten eine Brücke mit den beiden USB-Schnittstellen ein und verwenden dann iptables und vermutlich eine Art NAT, um die Maschinen mit dem Internet zu verbinden, oder Sie können einfach beide USB-Schnittstellen sowie die physische Schnittstelle in eine einzige Brücke stecken. Auf diese Weise können Sie Ihre USB-Schnittstellen direkt mit Ihrem LAN verbinden und so auf das Internet zugreifen.

Es liegt an Ihnen, zu entscheiden, was für Ihre Anwendung sinnvoller ist.

Die Konfiguration ( /etc/network/interfaces) für das Setup, bei dem die USB-Netzwerkschnittstellen mit Ihrem Hauptnetzwerk verbunden werden, könnte ungefähr so ​​aussehen, vorausgesetzt, Ihre Hauptnetzwerkschnittstelle heißt eth0.

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

auto br0
iface br0 inet dhcp
  bridge_ports eth0 usb0 usb1

Weitere Einzelheiten finden Sie imUbuntu-Community-Hilfe-Wiki.

In diesem Setup würden Ihre USB-Netzwerkgeräte entweder IP-Adressen vom vorhandenen DHCP-Server in Ihrem Netzwerk erhalten oder mit statischen IP-Adressen in Ihrem lokalen LAN konfiguriert. Auch Ihr PC würde die IP über DHCP erhalten. Stellen Sie sicher, dass Ihre über USB angeschlossenen Geräte keinen DHCP-Server ausführen, wenn Sie dies tun, da Sie sonst möglicherweise andere Benutzer Ihres Netzwerks in Konflikt bringen. :-)

Antwort2

Am Ende war die Konfiguration wie folgt:

Gastgeber

/etc/Netzwerk/Schnittstellen

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

/etc/rc.local

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

Gerät 0

/etc/Netzwerk/Schnittstellen

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

Gerät 1

/etc/Netzwerk/Schnittstellen

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

verwandte Informationen