1. 라이브러리
  2. IP 주소
  3. 기초

업데이트됨 1개월 전

인터넷은 공유지입니다. 하지만 모든 주소가 인터넷에 속하는 것은 아닙니다.

IANA가 IP 주소 공간을 나눌 때, 공개 인터넷에 절대 연결되지 않을 특정 범위를 따로 분리해 두었습니다. 이것들은 실수나 잔여분이 아닙니다—의도적인 예외입니다. 전 세계적인 고유성이 적용되지 않는 공간입니다. 수백만 개의 네트워크가 동일한 주소를 충돌 없이 사용하는 곳. 여러분의 컴퓨터가 자기 자신과 통신하는 곳. 장치가 조용히 "뭔가 잘못됐습니다"라고 알리는 곳.

사설 주소: 문맥 속의 공유

세 가지 범위—10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16—는 네트워킹의 가장 우아한 문제 중 하나를 해결했습니다: 주소가 충분하지 않을 때 모두가 자신의 네트워크를 가질 수 있게 하려면 어떻게 해야 할까요?

공유하면 됩니다.

여러분의 홈 네트워크는 192.168.1.x를 사용합니다. 옆집도 마찬가지입니다. 전 세계 수백만 개의 네트워크도 마찬가지입니다. 충돌이 없는 이유는 이 주소들이 로컬에서만 의미를 가지기 때문입니다. 인터넷 라우터는 사설 주소가 담긴 패킷을 보면 즉시 버립니다—공개 인터넷에서는 무의미한 주소이며, 자신의 네트워크 안에서만 의미가 있습니다.

같은 주소라도 네트워크마다 다른 의미를 가집니다. 문맥이 의미를 만들어냅니다.

바로 이 때문에 NAT가 존재합니다. 라우터는 "192.168.1.45가 인터넷과 통신하려 한다"를 "내 공인 IP가 인터넷과 통신하려 한다"로 변환합니다. 응답이 돌아오면 반대로 변환합니다. 사설 주소는 네트워크 내에서 기기에 정체성을 부여합니다. NAT는 그 외부로 접근할 수 있게 해줍니다.

범위주소 수일반적인 용도
10.0.0.0/81,600만 개대규모 기업
172.16.0.0/12100만 개중간 규모 조직
192.168.0.0/1665,536개가정 및 소규모 사무실

127.0.0.1: 거울

127.0.0.1로 트래픽을 보내면 컴퓨터 밖으로 나가지 않습니다. 패킷은 네트워크 카드를 건드리지 않고 출발지로 되돌아옵니다.

이것이 컴퓨터가 자기 자신과 통신하는 방식입니다. 웹 브라우저가 같은 컴퓨터에서 실행 중인 개발 서버에 연결하는 방식. 프로그램이 실제 네트워크 없이 네트워킹 코드를 테스트하는 방식입니다.

127.0.0.0/8 블록 전체가 루프백을 위해 예약되어 있지만, 실제로 사용되는 것은 127.0.0.1뿐입니다. "Localhost"는 장소가 아닙니다—그것은 거울입니다. 소프트웨어는 로컬 프로세스를 마치 원격 서비스처럼 취급하며, 네트워크 스택이 이에 맞춰 동작하기 때문에 이 착시는 실제로 성립합니다.

169.254.x.x: 조난 신호

기기에서 169.254.x.x가 보이면 뭔가 실패한 것입니다.

이것은 APIPA—자동 사설 IP 주소 지정—입니다. DHCP가 응답하지 않을 때 컴퓨터의 비상 계획입니다. 아무 응답도 없이 기다리는 대신, 169.254.1.0부터 169.254.254.255 사이의 임의 주소를 선택하고 다른 누군가가 사용 중인지 확인합니다.

APIPA 주소가 있으면 같은 네트워크 세그먼트의 다른 기기와는 통신할 수 있습니다. 하지만 인터넷에는 접근할 수 없습니다. 라우터가 이 트래픽을 전달하지 않습니다. 이것은 로컬 전용 통신이며, 이런 말을 하는 것입니다: "제대로 된 설정을 기다리다 포기했습니다."

이것은 해결책이 아니라 진단 단서입니다. 169.254.x.x가 보이면 DHCP 서버가 다운됐거나, 접근할 수 없거나, 잘못 설정된 것입니다.

224.0.0.0/4: 멀티캐스트 그룹

멀티캐스트 주소는 기기를 식별하지 않습니다—그룹을 식별합니다.

하나의 발신자, 여러 수신자, 하나의 전송. 멀티캐스트 그룹으로 보낸 영상 스트림은 구독한 모든 사람에게 전달되며, 발신자가 각 시청자마다 패킷을 복제할 필요가 없습니다. 원하든 원하지 않든 모두에게 전달되는 브로드캐스트와 달리, 멀티캐스트는 선택적입니다. 기기가 그룹에 참여하여 자신이 요청한 것만 수신합니다.

이 범위 내에서 224.0.0.0/24는 네트워크 밖으로 나가면 안 되는 로컬 네트워크 제어 트래픽을 처리합니다. 239.0.0.0/8 범위는 관리 범위로 지정되어 있어—조직이 누구와도 조율할 필요 없이 내부적으로 사용할 수 있습니다.

기타 예약 범위

0.0.0.0/8은 "이 네트워크" 또는 "아직 주소 없음"을 의미합니다. DHCP가 완료되기 전이나 기본 게이트웨이를 가리키는 라우팅 테이블에서 0.0.0.0을 볼 수 있습니다.

100.64.0.0/10은 통신사급 NAT를 위해 존재합니다. ISP가 여러분에게 100.64.x.x 주소를 부여한 다음, 인터넷에 도달하기 전에 다시 한번 변환합니다. NAT 위의 NAT입니다.

240.0.0.0/4는 미래 사용을 위해 예약되어 있습니다—구 "클래스 E" 공간으로, 결국 실현되지 않은 실험을 위해 보류된 것입니다.

참조 표

주소 범위CIDR용도RFC
0.0.0.0–0.255.255.2550.0.0.0/8"이" 네트워크1122
10.0.0.0–10.255.255.25510.0.0.0/8사설 네트워크1918
100.64.0.0–100.127.255.255100.64.0.0/10통신사급 NAT6598
127.0.0.0–127.255.255.255127.0.0.0/8루프백1122
169.254.0.0–169.254.255.255169.254.0.0/16링크-로컬 (APIPA)3927
172.16.0.0–172.31.255.255172.16.0.0/12사설 네트워크1918
192.168.0.0–192.168.255.255192.168.0.0/16사설 네트워크1918
224.0.0.0–239.255.255.255224.0.0.0/4멀티캐스트1112
240.0.0.0–255.255.255.255240.0.0.0/4예약됨/미래 사용1112

예약된 IP 주소에 관한 자주 묻는 질문

왜 192.168.x.x 주소를 공개 인터넷에서 사용할 수 없나요?

라우터는 사설 출발지 주소가 있는 패킷을 버리도록 설정되어 있습니다. 이 범위들은 공개 인터넷에서 라우팅되지 않도록 명시적으로 정의되어 있으며(RFC 1918), 설령 보내려 해도 처음 만나는 인터넷 라우터에서 버려질 것입니다.

127.0.0.1은 localhost와 같은 건가요?

네—사실상 모든 시스템에서 "localhost"는 127.0.0.1로 해석됩니다(IPv6의 경우 ::1). 두 가지는 같은 개념의 다른 표현입니다: 트래픽을 같은 호스트로 돌려보내는 루프백 주소입니다.

기기에 169.254.x.x 주소가 할당되면 어떻게 해야 하나요?

DHCP 서버를 확인하세요. 이 주소는 기기가 제대로 된 IP 주소를 받으려 했지만 실패했다는 의미입니다. DHCP 서버가 실행 중인지, 기기가 올바른 네트워크에 연결되어 있는지, DHCP 트래픽을 차단하는 방화벽 규칙이 없는지(UDP 포트 67과 68) 확인하세요.

같은 네트워크에 있는 두 기기가 동일한 사설 IP 주소를 가질 수 있나요?

아니요—단일 네트워크 내에서는 주소가 여전히 고유해야 합니다. 사설 주소의 마법은 다른 네트워크들이 재사용할 수 있다는 것입니다. 여러분의 192.168.1.10과 옆집의 192.168.1.10은 서로 충돌하지 않는데, 이는 별도의 네트워크 문맥에 존재하기 때문입니다.

이 페이지가 도움이 되었나요?

😔
🤨
😃