IP 주소

"An Internet Protocol address is a numerical label assigned to each device connected to a computer network..."

— Wikipedia 및 IETF RFC 791 서론

인터넷 세상에서 나를 가리키는 고유한 지장(指紋)이자, 악플을 달았을 때 경찰서에서 연락이 오게 만드는 가장 확실한 물증. 내 IP 주소 앞자리가 192.168... 로 시작하는 걸 보고 '와 나도 드디어 해킹할 수 있다!'라며 기뻐하던 초딩 시절이 누구나 한 번쯤은 있다

1. 개요

IP 주소(Internet Protocol Address)는 컴퓨터 네트워크에 연결된 기기들이 서로를 식별하고 통신하기 위해 부여받는 고유한 식별용 번호다. 인터넷 공간에서의 실제 '물리적 주소'이자 디지털 세계의 우편번호라고 이해하면 쉽다. 우리가 매일 사용하는 인터넷 브라우징부터 온라인 게임, 파일 공유에 이르기까지 패킷 기반의 모든 통신은 이 IP 주소를 이정표 삼아 목적지를 찾아간다. 만약 IP 주소가 없다면 네트워크 상의 어떤 기기도 패킷을 어디로 보내야 할지 갈피를 잡지 못해 통신망 자체가 무용지물이 된다.(...)

2. IPv4 vs. IPv6: 주소 고갈의 위기와 임시방편의 역사

2.1. 32비트의 한계: IPv4

우리가 가장 흔히 접하는 123.45.67.89 형태의 주소가 바로 IPv4(Internet Protocol version 4)다. 이는 8비트씩 4묶음, 총 32비트로 구성되어 이론상 약 43억 개의 고유 주소를 만들 수 있다. 1980년대 처음 설계될 당시만 해도 43억 개는 전 세계 인구가 평생 쓰고도 남을 우주적인 용량처럼 보였다. 그러나 21세기 모바일 혁명과 IoT(사물인터넷) 시대가 도래하며 기하급수적으로 늘어난 단말기들 때문에 IPv4 주소는 이미 공식적으로 완전 고갈된 지 오래다.(...)

2.2. 우주의 모래알만큼 많은 주소: IPv6

이 고갈 문제를 근본적으로 해결하기 위해 개발된 128비트 주소 체계가 바로 IPv6다. 2001:db8::ff00:42:8329처럼 16진수를 콜론(:)으로 구분하여 표기하며, 이론적으로 무려 $3.4 \times 10^{38}$개의 주소를 가질 수 있다. 이는 지구상의 모든 모래알은 물론, 먼지 한 톨마다 IP 주소를 하나씩 다 주입하고도 남는 우주적인 수치다. 그러나 인프라 장비 교체 비용과 호환성 문제 등으로 인해 전 세계적인 IPv6 전환은 여전히 거북이걸음 수준이며, 아직도 수많은 웹 서버와 라우터들은 IPv4 환경에서 악착같이 버텨내고 있다.1

2.3. 임시방편의 구세주: NAT와 사설 IP

IPv6로의 전환이 늦어지는 와중에 IPv4 고갈을 눈물겹게 방어해 준 공신이 있으니, 바로 NAT(Network Address Translation) 기술과 사설 IP(Private IP) 개념이다. 집이나 사무실에서 공유기를 쓰면 외부 인터넷에는 단 하나의 공인 IP(Public IP)만 노출시키고, 내부 공유기 밑에 매달린 스마트폰, 노트북, 스마트TV에는 192.168.0.X 같은 내부용 사설 IP를 나눠주어 돌려막는 방식이다. 이 덕분에 전 세계 가정이 IP 한 개 가격만 내고 수많은 기기를 동시에 인터넷에 연결할 수 있게 되었다.

3. 루프백 주소와 로컬호스트

3.1. 내 방으로 돌아오는 부메랑: 127.0.0.1

IP 주소 중에서 아주 특수하고 성스러운 주소가 있으니, 바로 루프백(Loopback) 주소127.0.0.1이다. 이 주소는 패킷을 외부 물리 네트워크 카드로 보내지 않고, 내 컴퓨터 내부의 가상 네트워크 인터페이스를 타고 자기 자신에게 되돌리는 백스텝 경로다. 도메인 이름으로는 그 유명한 localhost로 맵핑되어 있다.

웹 개발자나 시스템 엔지니어가 내 컴퓨터에서 개발 중인 웹 서버를 띄우고 테스트할 때 이 주소를 뻔질나게 드나들게 된다. 전 세계 개발자 커뮤니티에서는 "집만큼 편한 곳은 없다"를 "There is no place like 127.0.0.1" 또는 "There is no place like localhost"로 패러디한 티셔츠나 매트가 불티나게 팔려나가는 만국 공통의 밈이기도 하다.2

4. 관련 밈 및 드립

4.1. IP 추적해서 찾아간다

인터넷 커뮤니티나 게임 채팅방에서 키보드 배틀이 벌어졌을 때, 빡친 상대방이 '너 IP 추적해서 집 찾아가서 죽여버린다'며 살벌한 협박을 날리는 전형적인 인터넷 드립.

결론부터 말하자면, 일반인이 IP 주소 하나만 가지고 특정인의 물리적인 집 주소와 상세 호수까지 알아내는 것은 완벽히 불가능하다. 기껏해야 해당 IP를 할당한 ISP(인터넷 서비스 제공업체, 예: KT, SKT)의 대략적인 지사 위치나 구/동 단위의 광역 위치만 뜰 뿐이다. 진짜 상세한 가입자 주소를 캐내려면 법원의 영장과 경찰의 수사 협조가 필수적이다. 따라서 이런 협박을 들으면 쫄 필요 없이 가볍게 무시하거나 경찰에 스크린샷을 넘겨주면 된다.(...)

5. 여담

  • 0.0.0.0의 진짜 의미: 루프백 주소의 정반대 포지션인 0.0.0.0은 '어디에도 특정되지 않은 기본 주소'를 뜻한다. 서버 프로그램 설정에서 '모든 네트워크 인터페이스의 접속을 허용하겠다'는 바인딩 선언을 할 때 요긴하게 쓰인다.
  • 할당이 불가능한 IP 주소들: C클래스 대역 기준으로 0번 주소(네트워크 주소 자체를 대표)와 255번 주소(해당 대역 전체에 외치는 브로드캐스트 주소)는 컴퓨터에 직접 할당할 수 없는 성역이다. 이를 멋모르고 할당하려다가는 OS로부터 매서운 경고창을 보게 된다.
  • 영화 속의 가짜 IP: 영화나 드라마에서 해커가 모니터에 IP 주소를 띄울 때, 기밀 유출(?)을 방지하거나 리얼리티 고증 실패로 인해 275.3.150.8처럼 한 옥텟이 255를 가볍게 넘겨버리는 불가능한 주소를 노출하여 개발자들에게 편안한 웃음벨을 선사하기도 한다.(...)

6. 관련 문서

각주

  1. IPv6 패킷은 헤더 구조부터 IPv4와 완전히 달라서, 중간에 프로토콜 변환 장비나 터널링 기술이 없으면 서로 직접 대화하지 못하는 완벽한 불통 상태가 된다.

  2. 그러나 현실의 개발 현장에서는 로컬호스트에서 잘 돌던 코드가 프로덕션 배포용 서버로만 넘어가면 알 수 없는 오류로 폭발하는 일이 비일비재하여, 개발자들에게 127.0.0.1은 가장 안전하지만 동시에 가장 믿을 수 없는 가짜 평화의 공간이기도 하다.