연결을 끊지 않고 dhclient를 사용하여 DHCP 임대를 해제하고 갱신하는 방법

연결을 끊지 않고 dhclient를 사용하여 DHCP 임대를 해제하고 갱신하는 방법

나는 SSH(중요한 경우 0 W)를 통해서만 액세스할 수 있는 헤드리스 Pi를 다루고 있기 때문에 시도하기 전에 작동하는지 확인하고 싶었습니다.

Putty를 통한 액세스를 단순화하고 Pi에서 실행되는 사용자 정의 서버에 액세스하는 데 어느 정도 필요한 라우터에서 Pi에 대한 주소 예약을 설정했습니다.

문제는 이 주소가 처음에는 예약되지 않았기 때문에 내가 예약한 "비풀" 영역의 고정 주소가 아닌 풀의 다른 임의 주소에 있다는 것입니다. 인내심은 문제를 해결하지 못했습니다. 며칠 동안 주소를 변경하는 대신 해당 주소를 유지하는 데 머물렀습니다. 나는 라우터의 DHCP 서버가 12시간 또는 24시간과 같은 합리적인 임대 기간을 가지고 있다고 가정합니다.

분명히 임대를 해제하는 데 사용했다면 dhclient -r현재 SSH 세션이 중단되어 유용성이 떨어지는 상태가 될 것입니다. 또한 위험에 처한 경우 dhclient -rWi-Fi 연결도 중단될 수 있습니다. 하단의 경고를 참조하세요.이 페이지더 알아보기.

nohup (dhclient -r -d && dhclient) &따라서 루트 bash 세션에서 (a) 현재 임대를 종료한 다음 (b) 필요한 경우 WiFi를 다시 켜고 마지막으로 (c) 새 임대를 얻을 가능성은 얼마나 됩니까? 정확한 주소로.

내 추론은 사용이 nohupSSH 세션에 문제가 있을 때 a를 받지 않는다는 것을 의미하고 SIGHUP, 이를 백그라운드의 하위 쉘에 두는 것은 두 명령을 모두 실행할 가능성이 가장 높다는 것을 의미한다는 것입니다.

제가 고려한 또 다른 옵션은 nohup (dhclient -r && reboot) &루트 bash 세션입니다. 여기서 논리는 시스템을 재부팅하면 WiFi 연결을 다시 설정한 다음 주소를 얻기 위해 DHCP 서버를 핑해야 한다는 것입니다. 사본을 보관하시기 바랍니다.

이 두 가지 모두 실패할 경우 임대를 해제 및 갱신하고 기본 주소에서 WiFi에 연결되어 실행 중인 시스템을 종료하려면 어떤 다른 옵션이 있어야 합니까? 최후의 수단으로 화면과 키보드를 연결하는 방법을 알아낼 수 있는지 확인할 수 있었지만 실제로는 그렇게 하고 싶지 않으며 꽤 큰 고통이 될 것입니다.

답변1

면책조항: 테스트할 수는 없지만 마지막 선택 단계에서만 영구 구성이 변경되므로 시스템을 재설정해야 하는 상황이 발생할 수 있습니다.

설명의 편의를 위해 다음과 같이 가정합니다.

  • 무선 인터페이스는 wlan0이라고 합니다.
  • 이전 주소는 192.168.1.242/24입니다.
  • 새 예약은 192.168.1.2/24입니다.

모든 것은 루트로 실행되어야 합니다. 방법은 다음과 같습니다

  • 예약된 주소를 사용하여 고정 IP 주소 추가: 예약된 주소이므로 누가 신경쓰나요?

    ip address add 192.168.1.2/24 dev wlan0
    
  • ~할 수 있게 하다promote_secondaries인터페이스에서(그렇지 않으면 IP LAN에 구성된 첫 번째 주소가 삭제되면 동일한 IP LAN의 다른 모든 주소도 삭제됩니다. 새 주소도 삭제됩니다)

    sysctl -w net.ipv4.conf.wlan0.promote_secondaries=1
    

    또는:

    echo 1 > /proc/sys/net/ipv4/conf/wlan0/promote_secondaries
    
  • 새 주소를 사용하여 연결

    ssh [email protected]
    

    그리고 다시 루트가 됩니다. 이제부터 루트 셸의 새 연결을 계속 진행하세요.

  • DHCP 클라이언트가 종료되는 동안 어떠한 작업(인터페이스 종료 등)도 수행할 수 없도록 SIGKILL합니다.

    다른 DHCP 클라이언트가 사용 중인지 또는 그 중 하나가 아직 실행 중인지는 확실하지 않습니다 dhclient(일부 최소 구성에서는 임대 갱신이나 만료를 전혀 처리하지 않고 IP 주소를 한 번만 가져오고 종료할 수 있음).dhcpcdudhcpc

    pkill -e -KILL dhclient
    

    또는

    pkill -e -KILL dhcpcd
    

    등.

    혹은 명령어가 없다면 pkillkill할 PID를 알아낸다(사용 kill -KILL ...).

    지금부터 더 이상 실행 중인 클라이언트가 없는지 확인하는 것이 중요합니다.

  • 이전 주소를 수동으로 삭제합니다(이렇게 하면 새 주소도 삭제되지 않고 기본 주소로 승격됩니다).

    ip address del 192.168.1.242/24 dev wlan0
    
  • 선택 사항: 원하는 경우 구성을 고정 주소로 업데이트하거나 아무 작업도 수행하지 않습니다.

    RaspberryPi Zero W 관련이라 마지막 단계는 어떻게 해야할지 모르겠습니다(데비안을 이용해서 하면 됩니다)위 아래라면구성이 있거나 /etc/network/interfaces다르게 구성되어 있음). 그러나 어쨌든 변경 사항 없이 다음 (재)부팅 시 이 새 IP 주소로 새 임대를 사용하거나 실제 오류가 있는 경우 이전 버전으로 되돌아갑니다.

    DHCP가 처리되는 경우 dhclient관련 파일을 삭제하여 임대 메모리를 지우면 /var/lib/dhcp/dhclient*.leases다음에 새로운 임대를 요청해야 합니다. dhcpcd그럴 수도 있으니까/var/lib/dhcpcd/*.lease

관련 정보