다른 인터페이스에서 dhclient로 IP 갱신


16

내 컴퓨터에 두 개의 인터페이스를 가지고 eth0eth1.

두 서브넷 모두 DHCP 서버가 있습니다. dhclient두 인터페이스의 IP 주소를 갱신 하는 데 어떻게 사용할 수 있습니까?

만약 내가한다면:

dhclient -r && dhclient eth0

IP on을 갱신합니다 eth0. 그런 다음 내가하고 싶다면 :

dhclient eth1

오류와 함께 실패합니다.

dhclient(22421) is already running - exiting.

내가 할 수있는:

dhclient -r && dhclient eth1

그러나 dhclient -r부품이 임대를 해제하고 IP 주소도 잃어 버렸습니다 eth0.

지금까지 내가 원하는 것을 수행 할 수있는 유일한 방법은 실행 dhclient하고 eth0, 잔인하게 죽이고 실행하는 것입니다 eth1. 두 인터페이스에서 모두 갱신 된 IP로 끝납니다.

또한 행운 dhclient -x대신에 테스트했습니다 dhclient -r.

확실히, 이것은 갈 길이 아닙니다!

편집하다:

dhclient -r eth0 eth1 && dhclient eth0 eth1 이 작업을 제안하는 두 가지 대답은 실제로 방송 호출을 이러한 인터페이스로 제한합니다. 그러나 응답 할 첫 번째 DHCP 서버는 유일하게 사용되므로 단일 인터페이스에서 새 IP를 생성 할 수 있습니다. 여기 DHCPDISCOVER에서 두 인터페이스에 대한 호출을 볼 수 있지만 DHCP 서버가 발견 된 첫 번째 인터페이스 DHCPREQUEST에서만 수행 eth0됩니다.

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.

답변:


11

어느 한 쪽

dhclient -r && dhclient

또는

dhclient -r eth0 eth1 && dhclient eth0 eth1

편집 1 :

다음 시도 : 인스턴스 중 하나가 다른 파일을 사용하도록하여 "dhclient (22421)가 이미 실행 중입니다-종료 중"오류를 제거 할 수 있습니다. 변수를 분리 하려면 PATH_DHCLIENT_PIDPATH_DHCLIENT_DB변수 (또는 eqivalent 명령 행 옵션, man 페이지 참조)를 사용하십시오.


문제는 이것으로 dhclient가 실제로 두 인터페이스에서 브로드 캐스트 된 dhcp 서버를 발견하기 위해 패킷을 보내지 만 FIRST 수신 서버에서 중지한다는 것입니다. eth0 ip에 대해 eth0을 통해 수신 된 첫 번째 서버를 사용하고 eth1 ip에 대해 eth1을 통해 수신 된 첫 번째 서버를 사용하고 싶습니다.
Noé Malzieu 2016 년

확실하지 않은 경우 : 두 인터페이스 모두에서 DHCPDISCOVER를 보내지 만 DHCP 서버에서 응답을받는 첫 번째 인터페이스에서만 DHCPREQUEST를 보냅니다.
Noé Malzieu

@ NoéMalzieu 귀하는 언제든지 해당 정보를 질문에 넣어야합니다. 재미 있음 : 쓸모없는 답변 "worth 11K rep"; 그것은 매일 일어나지 않습니다 :-)
Hauke ​​Laging

@ HaukeLaging-당신이 쓸모없는 사람은 8-)라고 부르는 것입니다.
slm

@ NoéMalzieu 편집 내용보기.
Hauke ​​Laging

4

아이디어 # 1 : 2 개의 인터페이스를 dhclient로 전달

매뉴얼 페이지를 dhclient보면 예제 사용이 끝날 때 비트가 있음을 알 수 [ if0 [ ...ifN ]있습니다. 이것은 실행 dhclient하려는 여러 인터페이스를 실행 하고 전달할 수 있음을 의미합니다 .

dhclient 매뉴얼 페이지 에서 발췌

dhclient [-4 | -6] [-S] [-N [-N ...]] [-T [-T ...]] [-P [-P ...]] [-p 포트] [-d] [ -e VAR = 값] [-q] [-1] [-r | -x] [-lf lease-file] [-pf pid-file] [-cf config-file] [-sf script-file] [-s server] [-g relay] [-n] [-nc] [ -nw] [-w] [-B] [-I dhcp-client-identifier] [-H 호스트 이름] [-F fqdn.fqdn] [-V vendor-class-identifier] [-R request-option- list] [-timeout timeout] [-v] [--version] [if0 [... ifN]]

따라서 dhclient여러 인터페이스에서 릴리스하고 연결할 수도 있어야합니다 .

dhclient -r eth0 eth1
dhclient eth0 eth1

아이디어 # 2 : NetworkManager가 어떻게 수행하는지 살펴보십시오

dhclient내 시스템에서 NetworkManager를 설정하는 방법은 다음과 같습니다 . 인수를 사용하여 두 번째 dhclient를 명시 적으로 호출 할 수 있습니다.

/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

답변 주셔서 감사합니다. 그러나 @HaukeLaging 답변에 대한 내 의견을 확인하십시오.
Noé Malzieu

@ NoéMalzieu-두 번째 dhclient에서 자세한 결과를 볼 수 있습니까? dhclient -r && dhclient eth0 && dhclient -v eth1
slm

이를 통해 두 번째 고객은dhclient(1155) is already running - exiting.
Noé Malzieu가

그래, 나도 샘 일을하고있어.
slm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.