IP 주소 127.0.0.1은 특수한 용도로 사용되는 IPv4 주소로, 로컬호스트(localhost) 또는 루프백(loopback) 주소라고 불립니다. 모든 컴퓨터가 이 주소를 자기 자신의 주소로 사용하지만, 일반 IP 주소처럼 다른 기기와 통신하는 데는 활용할 수 없습니다.
사설 IP 주소와 127.0.0.1의 관계
컴퓨터에는 라우터 및 다른 네트워크 장치들과 통신하기 위해 192.168.1.115 같은 사설 IP 주소가 할당될 수 있습니다. 하지만 그와 동시에, 네트워크 용어로 '이 컴퓨터'를 의미하는 별칭처럼 특수한 127.0.0.1 주소도 함께 지니고 있습니다.
루프백 주소는 현재 사용 중인 컴퓨터에서만, 그리고 특별한 상황에서만 사용됩니다. 이는 다른 네트워크 장치 간에 파일을 주고받는 일반 IP 주소와는 분명히 다릅니다. 예를 들어, 컴퓨터에서 실행 중인 웹 서버는 127.0.0.1을 가리키도록 설정하여 페이지가 로컬 환경에서 구동되도록 하고, 실제 배포 전에 테스트할 수 있습니다.
127.0.0.1의 작동 원리
TCP/IP 응용 소프트웨어가 생성하는 모든 메시지에는 수신자의 IP 주소가 포함되어 있습니다. TCP/IP는 127.0.0.1을 특수한 IP 주소로 인식합니다. 프로토콜은 물리적 네트워크로 메시지를 전송하기 전에 각 메시지를 검사하며, 목적지가 127.0.0.1인 메시지는 자동으로 TCP/IP 스택의 수신 측으로 되돌려 보냅니다.
네트워크 보안을 강화하기 위해 TCP/IP는 라우터나 기타 네트워크 게이트웨이에 도착하는 수신 메시지도 검사하여, 루프백 IP 주소가 포함된 메시지는 폐기합니다. 이러한 이중 확인 절차는 공격자가 자신의 트래픽을 루프백 주소에서 온 것처럼 위장하는 행위를 차단합니다.
응용 소프트웨어는 일반적으로 이 루프백 기능을 로컬 테스트 목적으로 활용합니다. 127.0.0.1과 같은 루프백 IP 주소로 전송된 메시지는 로컬 영역 네트워크(LAN) 밖으로 나가지 않습니다. 대신 마치 외부 소스에서 도착한 것처럼 TCP/IP 계층과 수신 큐로 직접 전달됩니다.
또한 루프백 메시지에는 주소 외에 목적지 포트 번호도 포함됩니다. 응용 프로그램은 이 포트 번호를 활용해 테스트 메시지를 여러 범주로 세분화하여 관리할 수 있습니다.
로컬호스트와 IPv6 루프백 주소
localhost라는 이름 역시 127.0.0.1과 함께 사용될 때 컴퓨터 네트워킹에서 특별한 의미를 지닙니다. 컴퓨터 운영체제는 HOSTS 파일에 이름과 루프백 주소를 연결하는 항목을 유지 관리합니다. 이러한 방식 덕분에 응용 프로그램은 하드코딩된 숫자 대신 'localhost'라는 이름을 사용하여 루프백 메시지를 손쉽게 생성할 수 있습니다.
인터넷 프로토콜 버전 6(IPv6) 역시 IPv4와 동일한 루프백 주소 개념을 구현합니다. IPv6는 127.0.0.1 대신 ::1(0000:0000:0000:0000:0000:0000:0000:0001)로 루프백 주소를 나타내며, IPv4와 달리 이 용도로 별도의 주소 범위를 할당하지 않고 단일 주소만 사용합니다.
127.0.0.1과 기타 특수 IP 주소 비교
IPv4는 127.0.0.0부터 127.255.255.255까지의 모든 주소를 루프백 테스트용으로 예약해 두고 있습니다. 다만 관례상 거의 모든 경우에 127.0.0.1이 루프백 주소로 사용됩니다.
참고로, IP 주소의 클래스, 브로드캐스트, 멀티캐스트 등에 대한 개념을 함께 이해하면 네트워크 주소 체계를 더욱 명확하게 파악할 수 있습니다.
127.0.0.1을 포함한 127.0.0.0 네트워크 주소들은 IPv4에서 정의된 사설 IP 주소 범위(예: 192.168.x.x, 10.x.x.x)에 속하지 않습니다. 사설 범위의 개별 주소는 로컬 네트워크 장치에 할당되어 장치 간 통신에 사용할 수 있지만, 127.0.0.1은 그런 용도로 사용할 수 없습니다.
컴퓨터 네트워킹을 공부하는 사람들이 종종 127.0.0.1을 0.0.0.0 IP 주소와 혼동하기도 합니다. 두 주소 모두 IPv4에서 특별한 의미를 가지지만, 0.0.0.0은 어떠한 루프백 기능도 제공하지 않는다는 점을 기억해야 합니다.