Der Zugriff auf Raspberry Pi wird verloren, nachdem die Brücke br0 hochgefahren wurde

7

Ich verwende einen Raspberry Pi 3 mit Raspbian Jessie. Ich habe versucht, ein überbrücktes Netzwerk einzurichten, indem ich:

brctl addbr br0
brctl addif eth0 eth1

Es klappt. Der Verkehr wird ordnungsgemäß in beide Richtungen überbrückt. Leider reagieren nach weniger als 60 Sekunden alle SSH-Verbindungen zum Pi-Timeout und der Pi selbst nicht mehr auf Pings oder Verbindungen an einem der Ports, die lauschen. Ich habe die DHCP-Client-Liste meines Routers überprüft und es wurden keine neuen IPs ausgegeben. Der Pi sollte weiterhin über die reservierte IP zugänglich sein, die ich dafür bereitgestellt habe.

mit /etc/network/interfaces:

iface eth0 inet manual
iface eth1 inet manual

Ich habe die Bridge-Einstellungen /etc/network/interfacesnoch nicht, da ich dieses Problem zuerst herausfinden möchte. Ich habe versucht, die eth0-IP manuell einzustellen, anstatt sie über DHCP abrufen zu lassen, aber keine Würfel.

Was übersehe ich?

Apraetor
quelle
Vielen Dank für das Teilen der Lösung! Ich schlage vor, dass Sie es aus Ihrer Frage entfernen und als Antwort veröffentlichen. Ich würde es positiv bewerten.
Dmitry Grigoryev

Antworten:

4

Sie müssen br0 in Ihnen definieren /etc/network/interfaces. Meins ist:

auto br0
iface br0 inet static
bridge_ports eth0 eth1
    address 192.168.201.1
    netmask 255.255.255.0

Wenn Sie DHCP möchten, ändern Sie es in:

auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1
Rui F Ribeiro
quelle
Es funktioniert hervorragend mit der statisch zugewiesenen IP, aber was ist, wenn ich möchte, dass die IP mithilfe von DHCP-Reservierungen erfasst wird? Welche MAC-Adresse soll ich verwenden? Der Versuch, den von eth0 zu verwenden, schneidet ihn nicht.
Apraetor
Versuchen Sie ifconfig -a, um den MAC anzuzeigen. Ich würde empfehlen, für neue ergänzende Zweifel neue Fragen zu stellen.
Rui F Ribeiro
Entschuldigung, meine ursprüngliche Frage war nicht so klar, wie es hätte sein sollen. Ihr Vorschlag hat die Bridge zum Laufen gebracht und eine IP zugewiesen, aber meine eigentliche Frage war im Grunde: "Warum nimmt br0 die reservierte IP (oder JEDE IP von DHCP) nicht auf?" Die Brücke selbst hat immer funktioniert, ich habe sie nur manuell erstellt, damit ich verschiedene Optionen ausprobieren konnte.
Apraetor
Bearbeitet für DHCP.
Rui F Ribeiro
OK Ich habe meine Antwort gefunden: Die niedrigste MAC-Adresse der Slave-Adapter wird verwendet. eth0 war ursprünglich derjenige mit der reservierten IP, aber eth1 hat den niedrigeren MAC, sodass ich die Reservierung ändern muss. Danke noch einmal.
Apraetor
3

Nach einigem Graben fand ich meine eigene Antwort. Zwei Dinge waren wichtig:

  1. Bridges verwenden die MAC-Adresse niedrigster Ordnung der Slave-Adapter für DHCP
  2. Die eth0 zugewiesene IP wurde freigegeben, als die Bridge hochgefahren wurde, wodurch SSH gelöscht wurde.

Ich hatte den MAC von eth0 für die Reservierung verwendet, aber es sollte der MAC von eth1 sein, den ich verwendet habe. Die Bridge wurde ordnungsgemäß gestartet, aber der DHCP-Reservierung wurde die falsche MAC-Adresse zugewiesen.

Ich habe diesen Fehler gemacht, weil eth0 die Verbindung zum DHCP-Server war, aber der MAC von eth1 die niedrigste Ordnung war. Bei einer Bridge spielen die physischen Verbindungen für DHCP keine Rolle.

Meine letzten / etc / network / interfaces (die sich als nicht die Ursache herausstellten):

auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1
Apraetor
quelle
Sie können die Definitionen eth0 und eth1 ändern ... wie unterscheidet sich diese Antwort von meiner?
Rui F Ribeiro
Das Problem war nicht die Definition von / etc / network / interfaces, sondern dass der falsche MAC verwendet wurde. Es hatte nichts mit den Definitionen zu tun; Ich habe sie im Grunde genommen in meine Antwort aufgenommen (jemand hat mich gebeten, die Lösung aus dem Abschnitt "Frage" herauszunehmen), damit die Leute sehen, dass sie Boilerplate sind. Das Problem war, dass br0 bei der Verwendung von DHCP nicht die reservierte Adresse abrief.
Apraetor
0

meine / etc / network / interfaces:

#loopback adapter
auto lo
iface lo inet loopback

auto eth0    
auto wlan0

auto br0
iface br0 inet static
        address 192.168.1.29
        netmask 255.255.255.0
        gateway 192.168.1.30

bridge_ports eth0 wlan0 # build bridge
bridge_fd 0             # no forwarding delay
bridge_stp off          # disable Spanning Tree Protocol
Marcel
quelle
Ich bin froh, dass Ihr Setup funktioniert, aber die Frage bezieht sich auf das Setup des Apraetors, nicht auf Ihr.
Dmitry Grigoryev