Springe zum Inhalt

2

Zugegeben, der Titel ist etwas irreführend, denn genau genommen wird die Aktualisierung unter Windows (in einer virtuellen Maschine auf einem Linux Host) durchgeführt. Erfreulich ist, dass das devolo-Verwaltungsprogramm auch damit klar kommt und die Adapter bei entsprechender Netzwerkkonfiguration updaten kann.

Standardmäßig wird unter der in Linux integrierten Virtualisierungssoftware KVM/QEMU den virtuellen Maschinen ein eigenes Netzwerk zugeordnet, welches dann per NAT auf das außen liegende Netzerk und auch das Internet zugreift. Aus diesen "geNATteten" Netzwerken findet das devolo-Tool die dLAN-Adapter nicht, da es offenbar mit Broadcasts arbeitet, die über NAT nicht weitergeleitet werden.

Die einfachste Möglichkeit ist, die virtuelle Maschine über eine Bridge anzuschließen. Sie liegt dann im gleichen Netzwerk wie die anderen Geräte und somit auch die dLAN-Adapter. Im virt-manager, einem einfachen Tool um die virtuellen Maschinen für KVM zu verwalten, ist es einfach möglich, ein weiteres Interface anzulegen und dieses als Bridge für eth0 zu definieren.

virt-manager br0 einrichten

Anschließend wird br0 der Netzwerkschnittstelle der virtuellen Maschine zugeordnet. Natürlich muss im Netzwerk dann auch ein DHCP-Server laufen (meistens durch den Router bereitgestellt), der der virtuellen Maschine dann auch eine IP-Adresse aus dem Bereich des lokalen LANs zuordnet.

Nach all dem findet das devolo-Verwaltungstool alle dLAN-Adapter im lokalen Netz und kann auf diesen ein Firmwareupdate durchführen.

Falls das zu übertragende IP-Paket größer als die maximale Transfergröße (MTU) ist, wird dem Sender per ICMP mitgeteilt, dass eine Fragmentierung durchzuführen ist, die Daten also in kleineren Häppchen zu senden sind. Manche ISPs blockieren ICMP oder lassen nur bestimmte ICMP-Nachrichten durch, was dann dazu führt, dass der Sender nie erfährt, dass die Übertragung nicht funktioniert hat. Gleiches kann bei VPN-Verbindungen (IPSEC, OpenVPN) passieren, die mit ICMP nicht korrekt umgehen. Symptome sind dann:

  • Webbrowser stellen zwar eine Verbindung zum Webserver her, stecken dann aber beim Empfang der Webseite fest
  • sehr kleine E-Mails können versand werden, größere hingegen nicht
  • SSH arbeitet korrekt, aber SCP hängt bei der ersten Übertragung fest
    (Quelle: Man-Page iptables-extensions)

Für solche Fälle kann mit Hilfe von iptables und der Erweiterung TCPMSS die MTU der Verbindung auf die maximal zulässige Größe auf diesem Transportpfades gesetzt werden. Dadurch können alle TCP-Pakete ohne Fragmentierung übertragen werden.

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Auf einem Server (nicht Router) tauscht man in obigem Kommando FORWARD gegen OUTPUT.

Anschließend muss noch ein (distributionsabhängiger) Weg gefunden werden, diese Regel nach einem Neustart des Servers automatisch zu laden.

Bild by Fabienne Serriere [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons