Ich habe zwei Schnittstellen auf meinem Computer eth0
und eth1
.
In beiden Subnetzen befindet sich ein DHCP-Server. Wie kann ich dhclient
die IP-Adresse für beide Schnittstellen erneuern?
Wenn ich mache:
dhclient -r && dhclient eth0
Es erneuert die IP an eth0
. Dann, wenn ich nur machen will:
dhclient eth1
Es schlägt fehl mit Fehler:
dhclient(22421) is already running - exiting.
Ich kann:
dhclient -r && dhclient eth1
Aber das dhclient -r
Teil gibt den Mietvertrag frei und ich verliere auch die IP-Adresse eth0
.
Vorerst habe der einzige Weg , ich es geschafft , zu tun , was ich will , ist laufen dhclient
für eth0
brutal töten sie, und führen Sie es auf eth1
: ich mit einem erneuerten IP auf beiden Schnittstellen enden.
Ich habe auch mit dhclient -x
stattdessen dhclient -r
kein Glück getestet .
Dies ist sicherlich nicht der richtige Weg!
BEARBEITEN:
Zwei Antworten schlugen vor, dhclient -r eth0 eth1 && dhclient eth0 eth1
dies zu tun. Dies begrenzt in der Tat die Broadcast-Aufrufe an diese Schnittstellen. Der erste DHCP-Server, der antwortet, wird jedoch als einziger verwendet. Dies führt zu einer neuen IP-Adresse an einer einzelnen Schnittstelle und nicht an beiden. Sehen Sie hier, wir können DHCPDISCOVER
Anrufe auf beiden Schnittstellen sehen, aber das DHCPREQUEST
geschieht nur auf der eth0
ersten Schnittstelle, über die ein DHCP-Server gefunden wurde:
Listening on LPF/eth0/0a:00:27:00:00:00
Sending on LPF/eth0/0a:00:27:00:00:00
Listening on LPF/eth1/84:8f:69:d3:d4:a1
Sending on LPF/eth1/84:8f:69:d3:d4:a1
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0x170fcb67)
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 4 (xid=0x115a24c3)
DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x170fcb67)
DHCPOFFER from 192.168.1.1
DHCPACK from 192.168.1.1 (xid=0x170fcb67)
bound to 192.168.1.4 -- renewal in 1710 seconds.
quelle
Idee 1: Übergeben Sie zwei Schnittstellen an dhclient
Wenn Sie sich die Manpage ansehen, werden
dhclient
Sie feststellen, dass am Ende des Beispiels das Bit verwendet wird[ if0 [ ...ifN ]
. Dies würde bedeuten, dass Siedhclient
mehrere Schnittstellen ausführen und übergeben können, auf denen Sie ausgeführt werden möchten.Auszug aus der Dhclient-Manpage
Sie sollten also in der Lage sein,
dhclient
mehrere Schnittstellen freizugeben und auch eine Verbindung herzustellen.Idee 2: Sehen Sie sich an, wie NetworkManager das macht
So richtet sich NetworkManager
dhclient
auf meinem System ein. Sie können versuchen, den zweiten dhclient explizit mit Argumenten aufzurufen.quelle
dhclient -r && dhclient eth0 && dhclient -v eth1
dhclient(1155) is already running - exiting.