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

내 컴퓨터에 두 개의 인터페이스를 가지고 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.



답변

어느 한 쪽

dhclient -r && dhclient

또는

dhclient -r eth0 eth1 && dhclient eth0 eth1

편집 1 :

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


답변

아이디어 # 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


답변