Loopback-Schnittstelle lo0 auf 10.8.4 deaktivieren?

1

Zu Testzwecken (Testen der Netzwerkgeschwindigkeit über eine Reihe von Kabeln) habe ich mein Mac Book pro neben der integrierten Gigabit-Ethernet-Verbindung mit einem Thunderbolt-zu-Gigabit-Ethernet-Adapter ausgestattet.

Beiden Schnittstellen wurde eine manuelle IP im Bereich 10.0. * / 24 zugewiesen.

Iperf mit starten iperf -s --bind 10.0.0.1, dann den Client mit einer iperf -c 10.0.0.1Geschwindigkeit von über 40 Gigabit pro Sekunde starten . Ich gehe davon aus, dass nicht die Schnittstelle selbst verwendet wird, sondern die lokale Loopback-Schnittstelle, da sich beide IPs auf demselben Computer befinden. Also war mein Gedanke zu deaktivieren lo0, auch nur vorübergehend durch Ausstellen sudo ifconfig lo0 down. Thies funktioniert nicht (es hat vielleicht ein paar Sekunden lang funktioniert, aber ich kann das nicht beweisen). lo0bleibt einfach auf.

Gibt es eine Möglichkeit, die lokale Loopback-Schnittstelle (vorübergehend) zu deaktivieren, lo0damit ich meine Tests durchführen kann?

Vielen Dank!

Christian
quelle
1
Ich würde vermuten, dass das Deaktivieren von lo0 unbeabsichtigte Konsequenzen haben könnte. Daher ist es möglicherweise besser, einen anderen Weg zu finden, um Ihr Ziel zu erreichen. Ändern Sie die Routingtabellen, sodass 10.0.0.1 lo0 möglicherweise nicht durchläuft. Ich wollte vorschlagen, Server und Client an verschiedene Schnittstellen zu binden, aber das machte keinen Unterschied in meinem Test.
gabedwrds
Wo sollen die Ethernet-Pakete nach der Deaktivierung hinfließen lo0? Vom Thunderbolt-Adapter zum eingebauten Port?
Nohillside
@patrix Ja. Auf diese Weise iperfwürde der tatsächliche Durchsatz gemessen, den die Kabel "handhaben" können.
Christian
1
@gabedwrds Ich erwarte sehr, dass das Deaktivieren lo0wieder ziemlich schlimme Konsequenzen hat, aber es schien die einzige Lösung zu sein. iperfweiß, wie man sich an eine IP bindet (I ll edit my request above because I actually used that option), but the kernel seems to outsmart it. One IP belongs to en0 , the built-in interface, the other to en3`, der Thunderbolt-zu-Gigabit-Ethernet-Adapter)
Christian
Wie möchten Sie die iperfVerwendung der beiden Schnittstellen erzwingen (eine für den Server, eine für den Client)?
Nohillside

Antworten:

3

Die Version von Iperf, die ich habe (von Homebrew), erlaubt es tatsächlich, den Client und den Server an verschiedene Schnittstellen zu binden, wie zum Beispiel:

iperf -s --bind 10.0.0.1
iperf -c 10.0.0.1 --bind 10.0.0.2

(Für die Beantwortung dieser Frage gehe ich davon aus, dass Sie den Server auf .1 und den Client auf .2 haben möchten.)

Das Problem ist, dass die Routing-Tabelle (sichtbar durch netstat -rn) dies zu überschreiben scheint und Datenverkehr über die Loopback-Schnittstelle an 10.0.0.1 sendet.

Anstatt Loopback vollständig zu deaktivieren, können Sie diese bestimmte Route löschen:

sudo route delete 10.0.0.1 127.0.0.1

Ich stellte fest, dass mein Mac dadurch einige Sekunden lang nicht in der Lage war, sich selbst (auf dieser IP-Adresse) zu erreichen, bis er eine alternative Route über die andere Schnittstelle und über meinen Router fand. Sobald diese Route in netstat -rnauftauchte, funktionierte Iperf gut. Hier ist mein vorher und nachher:

[  4] local 192.168.2.99 port 5001 connected with 192.168.2.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  16.7 GBytes  14.3 Gbits/sec

Und danach:

[  4] local 192.168.2.99 port 5001 connected with 192.168.2.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec   343 MBytes   288 Mbits/sec

288 Mbit / s sind eine ziemlich vernünftige Geschwindigkeit, wenn man bedenkt, dass eine der verwendeten Schnittstellen 802.11n Wireless ist.

Ich konnte meine Routing-Tabelle auch wieder normalisieren, indem ich die Schnittstelle einfach aus- und wieder einschaltete.

gabedwrds
quelle
Danke, eine gute Idee, außer: Es scheint nicht auf meinem Ende zu funktionieren ... Vor dem Löschen der Route erhalte ich 42.5 Gbits/secnach dem Löschen der Route 4.12 Gbits/sec- unabhängig von der Verwendung eines einfachen Kabels oder meines handlichen Minischalters, der nur ist Fast Ethernet (der Verbindungsstatus wird korrekt angezeigt 100baseT). Und das ist natürlich nicht möglich.
Christian
Das ist merkwürdig. Identifiziert iperf die beiden IPs korrekt, um nur zu bestätigen, dass beide Seiten an unterschiedliche Schnittstellen gebunden sind? ("local 10.0.0.2 ... connected with 10.0.0.1")? Erhalten Sie das gleiche Ergebnis in beide Richtungen (Client auf 1, Server auf 2 vs Client auf 2, Server auf 1)?
gabedwrds
Ja, die IPs werden bestätigt und ja, in beide Richtungen. Was ist besonders merkwürdig ist , dass die „Kern“ Route 40 GBit / s gibt, auf diese Weise I 4 GBit / s - und das Netzwerk sollte nicht in der Lage sein , mehr als 1 GBit / s zu liefern oder sogar 100 MBit / s überhaupt . .. Geheimnisvolle Wege ...
Christian