나는 이것을 할 수 있다:
/sbin/ip addr add 172.17.0.12 dev eth0
이 가능성은 IP 주소 할당 방법에 대한 나의 (분명히 지나치게 단순화되고 사실이 아닌) 정신적 모델과 충돌합니다.
이 정신 모델에 따르면:
- 컴퓨터는 스스로 IP 주소를 할당하지 않습니다.
- 대신, 컴퓨터가 연결된 네트워크를 관리하는 서버에서 컴퓨터에 IP 주소를 할당합니다.
- 이는 가정용 PC용 라우터, 해당 라우터용 ISP 서버 등을 의미합니다.
제가 보기엔 자신에게 IP 주소를 할당한다는 생각이... 무의미해 보이죠? 그렇다면 컴퓨터가 "이것은 내 IP 주소입니다"라고 말하면 어떻게 될까요? IP 주소의 목적은 라우터에게 패킷이 전달되어야 하는 위치를 알려주는 것입니다.
위의 예에서 컴퓨터가 172.17.0.12
자신에게 개인 네트워크 주소를 할당하는 경우 해당 개인 네트워크의 라우터가 컴퓨터가 해당 주소를 소유하고 있음을 알고 동의하는 경우에만 의미가 있습니다. 하지만 이 경우에는 그렇지 않습니다! 그러면 모든 패킷이 eth0
이 컴퓨터에 도달할 수 있습니까?
답변1
다른 답변에서는 고정 IP 주소 지정이 존재하는 이유를 설명하지만, 귀하의 질문 중 작동 방식에 대한 부분에 답변하고 싶습니다.
여기서 놓치고 있는 것은ARP. 172.17.0.0/16 개인 네트워크를 상상해보십시오. 귀하의 클라이언트 중 하나가 고정 IP 주소 172.17.0.12를 "할당"했습니다. 두 번째 클라이언트 172.17.0.42는 172.17.0.12와 통신하려고 합니다. ARP 이후 172.17.0.42가 브로드캐스트를 보냅니다. 본질적으로 "IP 주소 172.17.0.12의 소유자는 누구입니까?"라고 외치는 것입니다. 172.17.0.12가 응답하고 통신을 설정합니다. 두 클라이언트가 동일한 IP 주소를 요청하면 혼동이 발생할 수 있습니다.
답변2
IP 주소는 서버나 라우터와 같은 LAN의 담당 장치에서 사용할 수 있습니다.동적 호스트 구성 프로토콜. (이것은 다음에서 정의됩니다.RFC 2131그리고 적어도RFC 2132.)
장치는 DHCP를 사용할 필요 없이 자체적으로 주소를 구성할 수도 있습니다. 시연한 명령이 ip
바로 이 작업을 수행합니다.
이 시나리오에는 두 가지 주요 고려 사항이 있습니다.
- 선택한 주소가 이미 다른 장치에서 사용되고 있는 경우 두 장치(귀하의 장치와 다른 장치)의 트래픽이 충돌합니다.
- LAN 서브넷의 일부가 아닌 주소를 선택하면 다른 장치와 효과적으로 통신할 수 없습니다(예: 172.12.1.*/24가 필요한 네트워크에서 192.168.1.1/24 설정). .
마지막으로 서버가 자체적으로 구성되어야 하는 이유를 물었습니다. 여기서 빠른 대답은 DHCP 서버 자체가 요청 서비스를 시작하기 전에 자체 IP 주소를 알아야 한다는 것입니다. 다른 가능성으로는 네트워크 라우터와 중앙 인증 서버(Windows Active Directory 영역의 도메인 컨트롤러 또는 UNIX/Linux 영역의 LDAP 서버)가 있습니다.
답변3
자신에게 IP 주소를 할당하면 해당 컴퓨터에 어떤 IP가 있는지 더 쉽게 알 수 있습니다. 라우터는 DHCP 또는 MAC 주소를 기반으로 예약된 DHCP 주소를 통해 이 작업을 수행합니다.
순수 DHCP는 IP 주소 범위에서 사용되지 않는 주소를 할당합니다. 이는 여러 시스템에서 서버/서비스를 실행하는 경우 이상적이지 않습니다.
DHCP에 의해 예약된 IP 주소는 지정된 MAC 주소와 일치합니다. 이는 이상적이지만 이를 기록해 두거나 대상 컴퓨터를 온라인 상태로 유지하여 보류 목록에 추가해야 하는 것은 번거로운 작업입니다. 또한 라우터가 고장나면 모든 작업을 다시 수행해야 합니다.
자신의 IP 주소를 할당하는 것은 컴퓨터 자체에서 수행할 수 있으므로 유용합니다. 다른 네트워크 내에서 또는 다른 네트워크로 이동하면 컴퓨터에 그대로 유지됩니다. 단점은 주소가 이미 사용된 경우 주소 충돌이 해결될 때까지 네트워크 인터페이스가 온라인 상태가 되지 않는다는 것입니다. 그러나 DHCP 영역 외부의 IP를 할당하고 해당 주소를 네트워크의 다른 컴퓨터에 할당하지 않도록 메모하면 이 문제가 발생하지 않습니다.
대부분의 네트워크 사전 라우팅 트래픽은 모든 인터페이스 및/또는 헤더에 IP가 있는 인터페이스에 응답합니다. 따라서 패킷은 eth0 인터페이스에 도착하지만 해당 네트워크에서 응답하거나 실행되는지 여부는 IP 및 서브넷 마스크가 올바른지, 전이중 또는 반이중 설정 등에 따라 달라집니다. 대부분의 가정이나 복잡하지 않은 네트워크에는 대부분의 기본 설정이면 충분합니다.
답변4
실제로 네트워크의 모든 호스트는하다자신의 IP 주소를 직접 신청하세요. 언제나!
로컬 네트워크 측에서 라우터는 특정 범위(예: 192.168.9.x)의 IP 주소를 가지며, 라우터가 192.168.9.12와 같은 바이트 패킷을 수신하면 라우터는 이를 구성된 물리적 포트로 전달합니다. 대상 주소 IP 범위(192.168.9.0/24)와 일치합니다. 해당 포트에서는 로컬 네트워크로 브로드캐스트됩니다."어떤 호스트가 IP 주소 192.168.9.12를 요구합니까?". 해당 특정 IP 주소로 구성된 NIC가 있는 모든 호스트는 응답하여 해당 주소를 요구합니다. 모든 것이 순조롭게 진행되면 하나의 호스트만 이를 요청하고 라우터는 해당 호스트로 패킷을 보냅니다.
이 방송"IP 주소 xxxx를 가진 사람은 누구입니까?"응답을 통해 선언하고 낮은 수준에서 발생하며 LAN(로컬 네트워크)에서만 작동합니다. 합의라고 합니다"ARP"(주소 확인 프로토콜)
다시 말해서:
이 하위 수준에서 라우터가 패킷을 보내는 주소는 실제로 IP 주소를 요구하는 호스트의 네트워크 인터페이스 카드(NIC)의 MAC 주소입니다. 라우터가 브로드캐스트한 ARP 요청에 응답하여 이를 수행합니다.
따라서 실제로 네트워크에서 요청하는 IP 주소를 결정하는 것은 호스트 자체입니다.
몇 개의 호스트가 아닌 대규모 네트워크에서는 어떤 호스트가 어떤 IP 주소를 사용할지 추적하는 것이 지루한 작업일 수 있습니다. 그런 다음 네트워크에 허용된 모든 컴퓨터에서 파일을 편집하고 IP 주소만 알려준다고 상상해 보십시오!
또한 두 개 이상의 호스트가 동일한 IP 주소를 요구하는 경우 두 호스트 모두 심각한 네트워크 문제가 발생합니다! 그렇기 때문에 어떤 MAC 주소가 어떤 IP 주소를 사용할 수 있는지 추적하는 중앙 서비스를 로컬 네트워크에 두는 것이 유용합니다. 이것은 ... 불리운다"DHCP"(동적 호스트 구성 프로토콜), 로컬 네트워크의 다른 많은 구성 매개변수를 호스트에 알리는 데에도 사용할 수 있습니다.
DHCP 프로토콜도 ARP 프로토콜과 동일한 하위 수준에서 작동합니다. 호스트가 NIC(네트워크 인터페이스 카드)를 구성하면(가장 일반적으로 시작 시) 브로드캐스트합니다."이 네트워크에서는 어떤 IP 주소를 사용할 수 있나요?". 이는 DHCP 클라이언트 소프트웨어에 의해 수행됩니다. 브로드캐스트이기 때문에 모든 호스트가 이를 수신하지만 DHCP 서버만이 고유 IP 주소, 넷마스크, 게이트웨이(라우터) 주소 및 기타 사항을 언급하면서 응답할 것입니다. 호스트는 일정 시간 동안 네트워크에서 IP 주소를 안전하게 요청할 수 있을 때까지 이를 메모리에 보관합니다.
하지만 이것은 호스트가협력사용할 IP 주소를 DHCP 서버에 요청합니다. 결국은 그렇지언제나호스트는 어떤 IP 주소를 청구할지 결정합니다...