
해당 서브넷 마스크가 없는 공용 IP 주소는 의미가 없다는 말을 들었습니다. 호스트 ID에서 네트워크 ID를 분리하는 방법을 알 수 없기 때문입니다. 이는 제게는 완전히 이해가 됩니다.
그러나 대부분의 경우 IP 주소(DNS, findmyip.com 등)는 cidr 번호가 없는 IP에 관한 것입니다. 예를 들어, 방금 웹사이트에 IP 주소만 입력했는데 웹사이트에서 올바른 도메인 이름을 돌려주었습니다.
내가 무엇을 놓치고 있나요? IP 주소로만 작동할 수 있는 다른 프로토콜이 있을 것 같지만 아직 들어본 적이 없습니다.
내 질문으로 인해 네트워크 작동 방식에 대한 기본적인 이해가 부족하다는 사실이 드러날 경우 리소스에 감사드립니다. 저는 이 모든 것을 스스로 가르치는 개발자입니다. 5분 길이의 튜토리얼이나 1000권 이상의 잘 알려지지 않은 책(Hi TCP Illustrated)을 제외하고는 제가 찾고 있는 자료를 찾을 수 없습니다.
답변1
위의 답변은 모두 정확합니다. 여기에 더 자세한 비기술적인 답변이 있습니다.
컴퓨터는 IP 주소가 직접 연결된 컴퓨터에 속하는지 여부만 알면 됩니다. 동일한 "LAN"에서 허브/스위치/WiFi를 통해 이동하는 컴퓨터는 직접 연결된 것으로 간주됩니다.
그 밖의 경우, 컴퓨터는 다음에 패킷을 보낼 곳, 즉 라우터의 주소만 알면 됩니다(라우터는 다음에 패킷을 보낼 곳을 알고 있습니다). Traceroute를 실행하면 이 경로가 표시됩니다.
서브넷 마스크는 직접 연결된 컴퓨터를 그룹화하는 데 사용됩니다. 따라서 직접 연결되지 않은 컴퓨터의 경우 서브넷 마스크가 필요하지 않습니다.
특히 서브넷 마스크는 방화벽이나 기타 소프트웨어에서 동일한 방식으로 처리할 IP 주소 그룹을 지정하는 데 사용될 수도 있습니다. 이것이 때때로 LAN 외부와 관련이 있는 이유이지만 인터넷에서 일반적으로 통신하는 데는 필요하지 않습니다.
답변2
TCP/IP를 사용하여 다른 시스템과 통신하는 모든 시스템은 로컬 "전달 정보 베이스" 또는 시스템에서 유지관리하는 로컬 라우팅 테이블을 참조합니다.
라우팅 테이블 항목은 기본적으로 다음과 같습니다.
대상 네트워크/게이트웨이/대상 서브넷 마스크/메트릭
현재 라우팅 테이블은 다음과 같습니다.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 eth2
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eth2
172.16.160.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eth2
192.168.87.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
시스템은 트래픽을 IP로 전송하려고 할 때마다 이 테이블을 검색합니다. 서브넷 마스크 내에 일치하고 맞는 대상 네트워크를 찾으면 다음으로 식별된 네트워크 어댑터에서 트래픽을 보냅니다.아이페이스.
이러한 네트워크 어댑터는 모두 "직접 연결"되어 있으므로 게이트웨이에 0.0.0.0이 표시됩니다. 이는 예를 들어 시스템이 192.168.2.80으로 무언가를 보내려는 경우 인터페이스 eth2를 통해 192.168.2.80으로 직접 보낼 수 있음을 의미합니다.
그러나 서브넷 마스크로 인해 192.168.87.80은 eth2를 통해 나가지 않고 vmnet1을 통해 나가게 됩니다.
IP가 두 항목에 맞는 경우 CIDR 서브넷 마스크가 더 큰 항목("더 구체적인 항목")이 사용됩니다. 동일한 서브넷 마스크를 가진 두 개가 있는 경우 메트릭을 사용하여 동점을 끊고, 때가 되면 시스템은 하나를 선택하여 이를 고수하거나 둘 사이의 로드 균형을 조정할 수 있습니다.
예를 들어
192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eth2
192.168.2.0 0.0.0.0 255.255.255.240 U 100 0 0 ethX
255.255.255.240은 CIDR /28이고 255.255.255.0은 CIDR /24입니다. 따라서 두 항목이 존재하는 경우 192.168.2.1로 나가는 항목은 인터페이스 ethX에서 나가고 192.168.2.241로 나가는 항목은 인터페이스 eth2에서 나가게 됩니다.
아무것도 일치하지 않으면 어떻게 되나요? 그런 다음 기본 게이트웨이가 사용됩니다. "가장 낮은" 서브넷 마스크가 0.0.0.0(슬래시 /0임)임을 확인하세요.
이것이 바로 서브넷의 목적입니다. 어떤 인터페이스를 통해 어떤 네트워크에 접근할 수 있는지 시스템에 알려줍니다. 시스템은 트래픽을 외부로 보낼 때(인터넷과 로컬 네트워크 간의 차이를 확인하기 위해) 이를 사용하고 라우터는 이를 사용하여 트래픽을 전달합니다.
이러한 상황 외에는 서브넷 마스크가 필요하지 않습니다. 기본적으로 네트워크 라우팅 계층을 통과할 필요는 없습니다. HTTP는 애플리케이션 계층입니다.
답변3
서브넷 마스크는 호스트 자체와 라우팅 장비에 유용합니다.
귀하의 PC는 원격 장치의 서브넷 마스크를 알 필요가 없으며, 주소만 알고 해당 장치와 비교하면 됩니다.자신의 주소그리고 그것의자신의 서브넷 마스크주소가 로컬인지 원격인지 알 수 있습니다.
로컬이면 패킷이 직접 전송되고, 원격이면 기본 게이트웨이로 패킷이 전송됩니다.