Farklı arayüzlerde IP'yi dhclient ile yenileyin


16

Bilgisayarımda iki arayüz var eth0ve eth1.

Her iki alt ağın da bir DHCP sunucusu vardır. dhclientHer iki arabirim için IP adresini yenilemek için nasıl kullanabilirim ?

Eğer yaparsam:

dhclient -r && dhclient eth0

IP'yi yeniler eth0. Sonra, sadece yapmak istiyorsanız:

dhclient eth1

Hata ile başarısız oluyor:

dhclient(22421) is already running - exiting.

Yapabilirim:

dhclient -r && dhclient eth1

Ama dhclient -rbölüm kiralamayı serbest bırakır ve ben de IP adresini kaybederim eth0.

Şimdilik, ben istediğimi yapmak idare ettik tek yolu çalıştırmaktır dhclientiçin eth0üzerine vahşice, öldürün, ve çalıştırın eth1ben hem arabirimlerdeki yenilenmiş bir IP ile sona.

Ben de şans dhclient -xyerine test ettim dhclient -r.

Elbette, bu yol değil!

DÜZENLE:

İki cevap yapılmasını önerdi dhclient -r eth0 eth1 && dhclient eth0 eth1 Bu gerçekten de bu arayüzlere yapılan yayın çağrılarını sınırlandırıyor. Ancak ilk yanıt veren DHCP sunucusu kullanılan tek sunucu olacaktır, bu nedenle her ikisinde de değil, tek bir arabirimde yeni bir IP ortaya çıkar. Buraya bakın DHCPDISCOVER, her iki arabirimdeki çağrıları görebiliriz , ancak DHCPREQUESTyalnızca eth0bir DHCP sunucusunun bulunduğu ilk arabirimde yapılır :

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.

Yanıtlar:


11

ya

dhclient -r && dhclient

veya

dhclient -r eth0 eth1 && dhclient eth0 eth1

Düzenleme 1:

Sonraki deneme: Örneklerden birinin farklı dosyalar kullanmasını sağlayarak "dhclient (22421) zaten çalışıyor - çıkılıyor" hatalarından kurtulabilirsiniz. Kullanım PATH_DHCLIENT_PIDve PATH_DHCLIENT_DBdeğişkenler onları ayırmak için (veya eqivalent komut satırı seçenekleri, man sayfasına bakınız).


Sorun şu ki, dhclient, dhcp sunucusunu her iki arabirimde de yayın olarak keşfetmek için paketleri gönderir, ancak FIRST alınan sunucu ile durur. Eth0 ip için eth0 üzerinden alınan ilk sunucuyu, eth1 ip için eth1 üzerinden alınan ilk sunucuyu kullanmak istiyorum.
Noé Malzieu

Net olmasaydım: DHCPDISCOVER'ı her iki arabirime de gönderir, ancak DHCPREQUEST'i yalnızca bir dhcp sunucusundan yanıt aldığı ilk arabirimlere gönderir
Noé Malzieu 29:13

@ NoéMalzieu Bu bilgiyi herhangi bir oranda sorunuza koymalısınız. Komik tür: "11K temsilcisi" değersiz bir cevabınız var; bu her gün olmaz :-)
Hauke ​​Laging

@HaukeLaging - Kimin cevabı işe yaramaz diyorsun 8-).
slm

@ NoéMalzieu Bkz. Düzenleme.
Hauke ​​Laging

4

Fikir # 1: Dhclient'e 2 arayüz aktarmayı deneyin

Eğer man sayfasına bakarsanız dhclient, örneğin sonunda biti kullandığınızı göreceksiniz [ if0 [ ...ifN ]. Bu, çalıştırmak dhclientve çalıştırmak istediğiniz birden çok arabirimi geçirebileceğiniz anlamına gelir .

dhclient man sayfasından alıntı

dhclient [-4 | -6] [-S] [-N [-N ...]] [-T [-T ...]] [-P [-P ...]] [-p bağlantı noktası] [-d] [ -e VAR = değer] [-q] [-1] [-r | -x] [-lf kira dosyası] [-pf pid dosyası] [-cf yapılandırma dosyası] [-sf komut dosyası] [-s sunucusu] [-g geçiş] [-n] [-nc] [ -nw] [-w] [-B] [-I dhcp-istemci-tanımlayıcı] [-H ana bilgisayar adı] [-F fqdn.fqdn] [-V satıcı-sınıfı-tanımlayıcı] [-R istek-seçenek- liste] [-zaman aşımı zaman aşımı] [-v] [- sürüm] [if0 [... ifN]]

Bu nedenle dhclient, birden fazla arabirimde yayın yapabilmeniz ve bunlara da bağlanabilmeniz gerekir.

dhclient -r eth0 eth1
dhclient eth0 eth1

Fikir # 2: NetworkManager'ın bunu nasıl yaptığına bakın

NetworkManager'ın dhclientsistemime nasıl ayarlandığı aşağıda açıklanmıştır . İkinci dhclient'i argümanlarla açıkça çağırmayı deneyebilirsiniz.

/sbin/dhclient -d -4 \
   -sf /usr/libexec/nm-dhcp-client.action \
   -pf /var/run/dhclient-wlan0.pid \
   -lf /var/lib/dhclient/dhclient-01f0476d-04bf-4ce7-8ced-844fae73f430-wlan0.lease \
   -cf /var/run/nm-dhclient-wlan0.conf wlan0

Cevabınız için teşekkürler. Ancak, @HaukeLaging cevap
Noé Malzieu

@ NoéMalzieu - 2. dhclient'in ayrıntılı çıktısını görebilir miyiz? dhclient -r && dhclient eth0 && dhclient -v eth1
slm

Bununla birlikte, ikinci müşterilerdhclient(1155) is already running - exiting.
Noé Malzieu

Evet, benim için de sam işini yapıyor.
slm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.