Pi가 항상 동일한 IP 주소를 갖는 이유는 무엇입니까?


22

라우터는 DHCP를 사용하며 다른 microSD 카드를 사용하더라도 라즈베리 파이를 다시 포맷 할 때마다 항상 동일한 LAN IP를 갖습니다. IP가 어떻게 할당되는지 잘 모르겠지만 라우터에서 인식하는 네트워크에서 장치에 고유 ID가 있다고 가정합니까?


어떻게 이런일이 일어 났습니까? 나는 SE에 대한 질문을하고 긍정적 인 투표 수를 가지고 있습니다! 그리고 그것은 많은 공짜입니다.

답변:


36

Raspberry Pi에는 MAC 주소라고하는 고유 ID가 있으며 실제로는 두 개입니다. 각 네트워크 어댑터에는 그 중 하나가 있습니다. 따라서 Wi-Fi 어댑터에는 하나의 고유 한 ID가 있고 이더넷 어댑터에는 있습니다.

이것이 Raspberry Pi가 동일한 IP를 얻는 이유입니다. 라우터의 경우 장치로 수행하는 작업이 중요하지 않습니다. MAC을 인식하고 이전과 동일한 IP를 제공합니다.

편집 : Beege가 지적했듯이 DHCP의 'D'가 동적을 의미하므로 IP는 여전히 변경 될 수 있습니다. 그러나 장치가 인식 된 MAC 때문에 DHCP를 통해 이전과 동일한 IP를 얻는 경우.


9
좋은 설명입니다. 동일한 MAC 주소가 DHCP 서버에서 항상 동일한 IP를 가져 오지는 않는다는 점을 언급 할 가치가 있다고 생각합니다. 여전히 "동적"서비스이므로 다른 장치에서 IP를 가져오고 Pi가 다른 것으로 끝날 수 있습니다 IP 할당.
Beege

3
@Beege 아 그래, 정말 고마워! 영구 IP가 필요할 때 (예 : 서버에서 서버를 실행할 때) Pi에 특정 IP를 예약하도록 선택할 수 있습니다. 그러나 이것은 라우터 (또는 다른 장치가 네트워크에서 DHCP 서비스를 제공하는 다른 장치)에서 특별히 활성화되어야합니다.
ItsKiddow

2
actually two to be precise-pi3b 또는 3b + 가정
Jaromanda X

7
IP가 동일하다는 사실은 MAC 때문이 아닙니다. MAC은 라우터가 액세스하는 식별자입니다. 임대가 갱신 될 때 동일한 IP를 제공하도록 라우터를 구성하거나 임의로 다른 IP를 할당 할 수 있습니다. 라우터는 제조업체에서 전자를 수행하도록 구성되어 있습니다. 이것은 실제로 동적 IP 관련 문제로 인한 많은 네트워크 문제를 방지합니다 (IP 인쇄 포트가 고려됩니다). 동일한 IP를 얻는 기능은 MAC 때문이지만 라우터에 DHCP를 쉽게 설정하여 다른 장치의 더미에 동일한 IP를 제공 할 수 있습니다.
넬슨

1
양질의 DHCP 구현은 이전 MAC 주소 및 IP 할당을 캐시합니다. 캐시 된 MAC 주소를 볼 때 동일한 IP (사용 가능한 경우)를 다시 제공하는 경향이 있습니다. 또한 사용 가능한 주소가 남아 있지 않으면 IP를 다른 MAC 주소에 제공하는 것을 거부합니다. 이것은 특정 구현에 의존하기 때문에 홈 라우터의 품질은 모든 곳에 있습니다 ... 라우터 모델에 따라 동작이 반드시 일치하지는 않습니다.
Tim Campbell

16

이미 주어진 답변 외에도 몇 가지 추가 배경 정보를 제공합니다.

일반적으로 DHCP 프로토콜은 가능한 동적 변경을 줄 이도록 만들어졌습니다. 안정성의 한 측면입니다. 소규모 홈 네트워크에서는 그다지 중요하지 않지만 스위치와 라우터가있는 대규모 네트워크에는 최적화 된 상태가 되려면 시간이 필요합니다. 스위치는 주변 장치를 학습하고 라우터는 경로를 학습해야합니다. IP 주소를 많이 변경해도이 상태에는 적합하지 않습니다.

대부분의 사람들은 DHCP 서버가 단지 클라이언트에게 IP 주소를 제공한다고 생각할 수 있습니다. 그러나 그것은 진실의 절반에 지나지 않습니다. 일반적인 DHCP 핸드 셰이크는 다음과 같습니다.

(client) DHCPREQUEST for 192.168.10.75 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPACK on 192.168.10.75 to b8:27:eb:0e:3c:6f (raspi3) via wlan0

보시다시피 mac 주소 b8 : 27 : eb : 0e : 3c : 6f로 식별 된 클라이언트는 선호하는 특정 IP 주소를 요청합니다. 또한 새로운 시작 후 IP 주소가 무엇인지 알고 있습니다. DHCP 서버는 확인 만합니다. 그것이 클라이언트에게주는 것을 임대 라고합니다 . 클라이언트가 다시 요청하지 않고 ip 주소를 사용할 수있는 시간 초과 (다른 많은 중요한 옵션과 함께)가 포함됩니다. 시간 초과는 설정에 따라 다르며 대부분 몇 시간으로 설정됩니다. DHCP 서버는 임대를 캐시에 저장하고 동일한 클라이언트에 대해 임대가 종료 된 경우에도 가능한 한 임대를 예약합니다. 다시 부팅 할 때 클라이언트의 임대 여부 만 확인합니다. 서버에 다른 미사용 임대가없는 경우에만 사용 된 임대를 사용합니다. 그런 다음 악수는 다음과 같습니다.

(client) DHCPREQUEST for 192.168.10.75 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPNAK on 192.168.10.75 to b8:27:eb:0e:3c:6f via wlan0
(client) DHCPDISCOVER from b8:27:eb:0e:3c:6f via wlan0
(server) DHCPOFFER on 192.168.10.99 to b8:27:eb:0e:3c:6f via wlan0
(client) DHCPREQUEST for 192.168.10.99 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPACK on 192.168.10.99 to b8:27:eb:0e:3c:6f (raspi3) via wlan0

보시다시피 DHCP 서버는 DHCP 서버에서 요청을 거부하고 다음 단계에서 클라이언트가 요청한 새 IP 주소를 제공합니다. 이 추가 단계는 클라이언트에게 제공된 IP 주소를 허용하지 않을 가능성을 제공하기 위해 수행됩니다 ...


4
+1 IMHO 정답입니다. 이는 단순히 DHCP 프로토콜이 작동하는 방식입니다.
Jos
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.