dhclient가 마지막 DHCP 임대를 잊게하는 방법?


28

내가 달성하려는 것은 콜드 스타트, 제로 상태의 DHCP 임대를 얻는 것입니다. 이는 dhclient기억해야 할 DHCPREQUEST–DHCPACK 사이클과 달리 전체 발견 및 구성 프로세스 (DHCPDISCOVER-DHCPOFFER-DHCPREQUEST-DHCPACK)를 강제 실행하는 것을 의미 합니다. 주소). 네트워크 구성 문제를 디버깅하려면 이것이 필요합니다.

나는 시도했다 :

  • 현재리스를 플러시 dhclient -r하고 현재 Network Manager 연결을 끊는 단계;
  • 남은 음식 dhclientdnsmasq프로세스를 죽이는 것 ;
  • /var/lib/dhcp/클라이언트 임대 데이터베이스가 포함 된 청소 디렉토리;
  • sudo restart network-manager.

그러나이 단계 후에도 DHCPDISCOVER 로그에 DHCPREQUEST 바로 뒤에 주소가 여전히 표시 됩니다.

분명히 OS는 어떻게 든 다른 주소를 저장하고 있으며 아이디어가 부족합니다. 커뮤니티의 도움이 있습니까?


알아 냈어? 나는 또한 같은 문제에 부딪쳤다. NetworkManager에는 임대 파일도 있습니다. 나는 그것들도 삭제했다. 어떤 이유로 든 여전히 이전 주소를 선택합니다.
18:38에

답변:


18

이것은 나를 위해 트릭을 수행했습니다 (eth0의 경우 다음에서 실행 sudo su).

dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient.* ; dhclient -v eth0

1
내가 이것을했을 때 나는 새로운 임대를 얻었지만 IP 주소가 시스템에서 사용되지 않은 것 같습니다. 이름이나 관련 IP 주소를 핑 (ping)하려고하면 실패합니다. ifconfig현재 주소를 확인하는 데 사용 하면 고정 할 수 있습니다.
TafT

변화 rm: 나를 위해이 작품 (이없이는 이전에 임대가 사용 된 부분을 만든다 dhclient -r -v eth0 && rm /var/lib/dhcp/dhclient* ; dhclient -v eth0)
davejagoda

6

DHCP 클라이언트 프로그램은 임대를 파일에 씁니다. 파일을 삭제하고 networkmanager를 다시 시작하십시오.

/var/lib/dhcp/dhclient.leases

이것은 내 컴퓨터에 임대가 저장되는 곳입니다.


2

당신이보고있는 것은 IP를 기억하는 기계가 아닙니다. syslog에는 DISCOVER REQUEST OFFER ACK가 표시되지만 이것이 발생한 순서는 아닙니다. 실제로 PC와 업스트림 DHCP 서버 사이의 트래픽을 스니핑 할 수 있음을 확인하기 위해 디스 커버 제안 요청 ACK가 발생했습니다. 서버가 DISER를 보내서 다시 전송했습니다. 요청에 대한 오퍼에서 IP를 받았습니다.

그러나 "dhclient -r"을 수행했을 때 모든 것이 올바르게 이루어졌습니다. dhclient는 유니 캐스트 RELEASE를 전송하고 일부 ISP는 멀티 캐스트 패킷 만 DHCP 서버로 수락하므로 서버가 걱정되는 한 RELEASE는 도착하지 않았습니다. 유효하므로 오퍼에서 동일한 IP를 반환했습니다.


고마워요! 로그에 항상 DISCOVER, REQUEST, OFFER, ACK가 표시 되는 이유를 이해하지 못했습니다 . 시퀀스가 의미가 없었기 때문에. 그것이 실제로 일어나는 일이 아니라는 것을 아는 것만으로도 내 자신의 문제를 파악하는 데 많은 도움이됩니다. 그래서 내 컴퓨터는 DHCPOFFER원하지 않는 IP를 얻고 "OK"라고 말하지만 다른 것을 얻으려고 강제하면 서버는이라고 말하고 DHCPNACK네트워크가 전혀 없습니다. 짐작으로, 서버의 예약은 잘못된 MAC에 대한 것입니다.
Auspex

내가 생각할 수있는 것, 당신이 시도 할 수있는 것은 ISP가 당신에게 전화를 걸거나 말하지 않고 맥을 바꿀 수 있다면 / etc / network / interfaces에서 "hwaddress ether xx : xx : xx : xx : xx : xx"를 변경하는 것입니다. 케이블 모뎀이 Mac을 즉시 대체하지 않으면 서버는 사용자를 새로운 사람으로보고 빈 IP 임대를 제공해야합니다.
Matt

문제는 그것이 빈 IP를주는 것이 습니다. 그리고 외부 DNS가 해당 DNS를 가리키고 있기 때문에 예약 된 것을 주도록 강제하려고했습니다! 그래서 네트워크 관리자에게 실제 MAC 주소를 보냈고 실제로 해당 MAC의 IP를 예약하고 있는지 물었습니다.
Auspex

1

일반적으로 dhclient -r트릭을 수행해야합니다. 하지만 그것이 효과가 없다면 여기 에서 해결책을 찾았 습니다 .

+ IP 주소를 한 번 갱신 :

참고 : 이 예에서는 eth0 인터페이스를 사용합니다. DHCP가 작동하고 실행되도록 인터페이스를 구성해야합니다.

  • 터미널을 열고 sudo su루팅하십시오.
  • ifconfigDHCP에서받은 현재 IP 주소를 표시하려면 입력 하십시오.
  • dhcpcd -k적절한 신호를 dhcpcd로 보내려면 입력 하십시오 (을 수행하여 dhcpcd를 설치해야 할 수도 있음 apt-get install dhcpcd).
  • 이제을 입력하여 인터페이스를 다시 시작하십시오 ifup eth0.
  • ifconfig새 IP 주소를 표시하려면 입력 하십시오.

매번 IP 주소 갱신에 관한 섹션도 있지만, 설명은 RPM 기반 배포판 (Ubuntu와 같은 데비안 기반 배포판과 대조)에 대한 설명입니다.

그것이 도움이되기를 바랍니다. :)

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