BEARBEITEN: Wie bereits erwähnt, ist es in der Tat möglich, eine Netzwerkschnittstelle von einem Benutzerprozess anzugeben. Ich stehe korrigiert. Allerdings habe ich noch kein Modul gefunden, das es mit Knoten erlaubt.
Standardmäßig wird die Netzwerkschnittstelle von der OS-Routing-Tabelle bestimmt.
Sie können diese Tabelle mit netstat -r
auf Unix-Systemen (einschließlich OSX) auflisten. Öffnen Sie einfach ein Terminal und geben Sie den Befehl ein.
laurent ~ $ netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 153 0 en0
127 localhost UCS 0 0 lo0
localhost localhost UH 2 42 lo0
...
Das Netif
Feld gibt Ihnen die Netzwerkschnittstelle für die Route verwendet: Sie erhalten eine Auflistung wie bekommen. Sie können auch die Schnittstelle erhalten verwendet, um einen Hostnamen zu erreichen mit route
:
laurent ~ $ route get google.fr
route to: par03s02-in-f23.1e100.net
destination: default
mask: default
gateway: 192.168.1.1
interface: en0
flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 0
Dieses mehr eine serverfault Sache ist, aber Sie können mit dem route
Befehl Routen ändern. Zum Beispiel dieser Verkehr Weg X.Y.Z. [0-254] zu X.Y.Z.254 auf eth0:
route add -net X.Y.Z.0/24 gw X.Y.Z.254 dev eth0
Wenn Sie Routen wollen einen Neustart bestehen bleiben, können Sie sie zu /etc/network/interfaces
hinzufügen. Wenn Sie das Gleichgewicht zwischen verschiedenen Routen laden möchten, sollten Sie auch MPLS überprüfen.
Nach der Zeit, als ich diese Frage gestellt habe, fand ich, dass dies wahrscheinlich der beste Ansatz ist. Ich kann die Adressen nach os.networkInterfaces() gruppieren. – Vicary