로컬 호스트
localhost컴퓨터 네트워킹에서 localhost는 액세스에 사용되는 현재 디바이스를 참조하는 호스트 이름입니다.루프백 네트워크 인터페이스를 통해 호스트에서 실행 중인 네트워크 서비스에 액세스하는 데 사용됩니다.루프백 인터페이스를 사용하면 로컬네트워크 인터페이스 하드웨어는 바이패스됩니다.
루프백
로컬 루프백메커니즘은 물리 네트워크인터페이스를 필요로 하지 않고, 또는 컴퓨터가 접속되어 있는 네트워크로부터 서비스에 액세스 할 수 있도록 하지 않고, 호스트상에서 네트워크 서비스를 실행하기 위해서 사용할 수 있습니다.예를 들어 로컬로 설치된 웹 사이트는 웹 브라우저에서 URL http://localhost로 액세스하여 홈 페이지를 표시할 수 있습니다.
localhost라는 이름은 보통 IPv4 루프백주소 127.0.0.1 및 IPv6 루프백주소 ::[1]1로 해결됩니다.
이름 해결
IPv4 네트워크 규격에서는, 루프백을 목적으로,[2] 주소 블록 127.0.0/8(1600만 이상의 주소) 전체를 예약합니다.즉, 이러한 주소 중 하나로 송신된 패킷은 루프백됩니다.주소 127.0.0.1은 IPv4 루프백트래픽의 표준 주소입니다.나머지는 모든 운영시스템에서 지원되는 것은 아닙니다.다만, 호스트상에서 복수의 서버 애플리케이션을 셋업 하는 경우는, 모두 같은 포토 번호로 리슨 할 수 있습니다.IPv6 규격에서는, 루프백에 할당되는 주소는 1개 뿐입니다. : : : 1
localhost라는 이름을 하나 이상의 IP 주소로 해결하려면 일반적으로 운영 체제의 호스트 파일에서 다음 행으로 구성됩니다.
127.0.0.1 localhost ::1 localhost
이 이름은 Domain Name System(DNS; 도메인네임 시스템) 서버에서도 해결할 수 있지만 이 이름에 대한 쿼리는 로컬로 해결되어야 하며 원격 네임 서버로 전송되지 않아야 합니다.
localhost를 루프백주소(127.0.0.1 및 ::1)에 매핑하는 것 외에 localhost를 다른 IPv4(루프백)주소에 매핑할 수도 있습니다.또, 임의의 루프백주소에 다른 이름 또는 다른 이름을 할당할 수도 있습니다.호스트 파일 또는 DNS에서 지정된 루프백주소 범위 이외의 주소로 로컬호스트를 매핑해도 어플리케이션이 이름을 내부적으로 매핑할 수 있기 때문에 원하는 효과를 얻을 수 없습니다.
도메인 네임시스템에서는 localhost라는 이름이 최상위 도메인명으로 예약되어 있습니다.이 이름은 루프백 [3]목적으로 사용되는 호스트명과의 혼동을 피하기 위해 원래 설정되어 있습니다.IETF 규격에서는 도메인네임 레지스트라가 localhost라는 이름을 할당할 수 없습니다.
IETF 표준
localhost라는 이름은 2013년 2월에 제안된 표준 성숙도 수준을 달성한 RFC 6761(Special-Use Domain Name)[4]에 의해 루프백 목적으로 예약되어 있습니다.이 표준은 도메인 네임 시스템에서의 이름 사용에 관한 많은 특별한 고려사항을 규정하고 있습니다.
- localhost라는 이름의 IPv4 또는 IPv6 주소 쿼리는 항상 다른 표준으로 지정된 각각의 루프백주소로 해결되어야 합니다.
- 응용 프로그램은 이름을 루프백주소 자체에 해결하거나 로컬 이름 리졸바 메커니즘에 전달할 수 있습니다.
- 이름 리졸바는 localhost에 대한 주소(A 또는 AAAA) 쿼리를 수신하면 적절한 루프백주소와 기타 요청된 레코드 유형에 대한 부정적인 응답을 반환해야 합니다.localhost에 대한 쿼리를 캐시 네임서버에 송신하지 말아 주세요.
- 도메인 네임시스템루트 서버에 트래픽 부담을 주지 않도록 캐싱 네임서버는 로컬호스트의 네임서버 레코드를 요구하거나 정규 네임서버에 해결을 전송하지 말아 주세요.
- DNS 레지스트라는 최상위 도메인 localhost에서 도메인 이름을 위임할 수 없습니다.
- 권한 있는 네임 서버가 언급된 조항에도 불구하고 'localhost'에 대한 쿼리를 수신하면 해당 쿼리를 적절하게 해결합니다.
IPv4 루프백주소는, IETF 「Special Use IPv4 Addresses」표준(RFC 5735)[5]에 의해서 IPv4 주소 공간내에 예약되어 있습니다.예약은 1986년 11월 "Assigned Numbers" 표준(RFC 990)으로 거슬러 올라갈 수 있습니다.
한편, IETF 「IP Version 6 Addressing Architecture」스탠다드(RFC 4291)에서는, IPv6 주소 공간내에 1 개의 IPv6 루프백주소::1 이 예약되어 있습니다.이 규격에서는, 리모트호스트에 송신되는 패킷의 송신원주소 또는 행선지 주소로서 사용하는 것 외에, 그 주소의 물리 인터페이스에의 할당은 금지되어 있습니다.이러한 패킷이 잘못 송신되어도, 라우팅 되는 것은 아니고, 패킷을 수신하는 모든 라우터 또는 호스트에 의해서 폐기됩니다.
패킷 처리
루프백 주소로 송신되는 패킷의 처리는, TCP/IP 스택의 링크 레이어에 실장됩니다.이러한 패킷은 Network Interface Controller(NIC; 네트워크인터페이스 컨트롤러)나 하드웨어 디바이스 드라이버에 전달되지 않습니다.컴퓨팅 시스템 외부에 표시되거나 라우터에 의해 라우팅되어서는 안 됩니다.이를 통해 하드웨어 네트워크인터페이스가 없는 경우에도 소프트웨어 테스트 및 로컬서비스가 가능합니다.
루프백 패킷은, TCP/IP 스택을 통과하는 다른 패킷과 구별되는 것은, 주소가 지정된 특수한 IP 주소 뿐입니다.따라서 최종적으로 수신한 서비스는 지정된 수신처에 따라 응답합니다.예를 들어, HTTP 서비스는 127.0.99:80 및 127.0.100:80 앞으로 패킷을 다른 웹 서버 또는 다른 웹 페이지를 반환하는 단일 서버에 라우팅할 수 있습니다.이러한 테스트를 간소화하기 위해 각 주소에 적절한 이름을 제공하도록 호스트 파일을 구성할 수 있습니다.
루프백 송신원 또는 행선지 주소를 가지는 비루프백인터페이스로 수신한 패킷은 폐기할 필요가 있습니다.이러한 패킷은 Martian [6]패킷이라고 불리기도 합니다.다른 가짜 패킷과 마찬가지로 악성 패킷일 수 있으며 bogon 필터링을 적용하면 문제를 방지할 수 있습니다.
특수한 경우
MySQL 데이터베이스 릴리스에서는 호스트명 localhost 사용 및 주소 127.0.0.1 및 ::1 [7]사용으로 구분됩니다.응용 프로그램의 클라이언트 커넥터 인터페이스에서 localhost를 수신처로 사용할 경우 MySQL 응용 프로그램프로그래밍 인터페이스는 UNIX 도메인소켓을 사용하여 데이터베이스에 접속합니다.루프백인터페이스를 통한 TCP 접속에서는 명시적 주소를 직접 사용해야 합니다.
127.0.0/8 주소를 사용하는 경우의 주목할 만한 예외 중 하나는 Multiprotocol Label Switching(MPLS) traceroute 에러 검출에서의 사용입니다.이러한 주소의 속성은 라우팅이 불가능하다는 점에서 장애가 발생한 패킷의 최종 사용자에게의 전달을 회피하는 편리한 수단이 됩니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "RFC4291: IP Version 6 Addressing Architecture". IETF. Section 2.5.3.
- ^ M. Cotton; L. Vegoda; R. Bonica; B. Haberman (April 2013). Special-Purpose IP Address Registries. Internet Engineering Task Force. doi:10.17487/RFC6890. BCP 153. RFC 6890. RFC 8190에 의해 갱신되었습니다.
- ^ "RFC2606: Reserved Top Level DNS Names". IETF. Section 2.
- ^ "RFC6761: Special-Use Domain Names". IETF. Section 6.3.
- ^ "RFC5735: Special Use IPv4 Addresses". IETF. Section 4.
- ^ Raymond, Eric S. "The Jargon File".
- ^ "MySQL :: MySQL 5.5 Reference Manual :: 4.1 Overview of MySQL Programs".