내 컴퓨터에 두 개의 인터페이스를 가지고 eth0
와 eth1
.
두 서브넷 모두 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_PID
및 PATH_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