127.0.0.2 IP 주소는 무엇입니까?


39

redis 서버 IP로 "127.0.0.2"를 사용하는 hiredis에서 예제를 실행 중이며 제대로 실행 중입니다. 실제로 redis 서버는 동일한 머신에서 실행 중입니다. "127.0.0.1"이 "lo"의 IP 주소라는 것을 알고 있지만 "127.0.0.2"는 어떻습니까? "127.0.0.1"와 동일합니까?

답변:


37

예:

IPv4 네트워크 표준은 루프백 목적으로 전체 127.0.0.0/8 주소 블록을 예약합니다. 즉, 16,777,214 개 주소 중 하나 (127.0.0.1-127.255.255.254)로 전송 된 모든 패킷이 루프백됩니다. IPv6의 단일 주소는 :: 1입니다.

다양한 IETF (Internet Engineering Task Force) 표준은이를 위해 CIDR 표기법으로 IPv4 주소 블록 127.0.0.0/8을, IPv6 주소 :: 1을 예약합니다. 가장 많이 사용되는 IPv4 주소는 127.0.0.1입니다. 일반적으로 이러한 루프백 주소는 호스트 이름, localhost 또는 루프백에 매핑됩니다.

또는 RFC 자체에서 :

127.0.0.0/8-이 블록은 인터넷 호스트 루프백 주소로 사용되도록 할당됩니다. 상위 레벨 프로토콜에서이 블록 내의 주소로 전송 된 데이터 그램은 호스트 내부에서 루프백해야합니다. 이것은 일반적으로 루프백을 위해 127.0.0.1/32 만 사용하여 구현되지만이 블록 내의 주소는 어느 네트워크에서도 나타날 수 없습니다 [RFC1700, 페이지 5].

재미있게 핑을 해보십시오.

$ ping 127.127.127.127
PING 127.127.127.127 (127.127.127.127) 56(84) bytes of data.
64 bytes from 127.127.127.127: icmp_req=1 ttl=64 time=0.110 ms
64 bytes from 127.127.127.127: icmp_req=2 ttl=64 time=0.065 ms
^C
--- 127.127.127.127 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.065/0.087/0.110/0.024 ms

Wikipedia 페이지는 이후 변경되었으며 이제는 127.0.0.1 ~ 127.255.255.254 범위의 모든 주소가 매핑되어 있음에도 불구하고이 답변의 요지를 Wikipedia와 직접 충돌하게합니다.
SilverSkin

6
@SilverSkin 무슨 뜻인지 설명해 주시겠습니까? 답변과 Wikipedia의 차이점은 네트워크 / 브로드 캐스트 주소 인 127.0.0.0과 127.255.255.255를 (올바르게) 배제했다는 것입니다. 요점은 여전히 ​​동일합니다-127.xxx == 127.0.0.1 (127.0.0.0 및 127.255.255.255는 / 8 네트워크에서 예상 됨).
icyrock.com

1
따라서 127.0.0.1에 바인딩하는 것과 127.0.0.124에 바인딩하는 것에는 차이가 없습니까? 그렇다면 왜 동일한 주소라면 hiredis가 127.0.0.2를 방해합니까? 127.0.0.0에 메시지를 보내면 어떻게됩니까?
CMCDragonkai 2016 년

7
OS X에서는 동일하지 않으며 127.0.0.1만이 루프백으로 라우팅됩니다. 여기를 참조 하십시오 .
Wenbing Li

6
@CMCDragonkai 127.0.0.1 및 127.0.0.124는 동일한 인터페이스에있을 수 있지만 동일한 주소가 아닙니다. 공통 포트에서 서비스 설정을 사용하고 127.0.0.1에서 동일한 포트를 수신 할 수있는 다른 서비스를 방해하지 않으려면 127.0.0.2와 같은 공통 IP를 사용할 수 있습니다.
Keith Reynolds

6
  • “모든 127.x.x.x주소가 로컬 컴퓨터로 제한되어 있습니까?”예
  • “모든 127.x.x.x주소가 lo인터페이스에 바인딩되어 있습니까? ”예
  • " 127.x.x.x주소가 네트워크를 통해 라우팅됩니까?"

127.0.0.0/8-이 블록은 인터넷 호스트 루프백 주소로 사용되도록 할당됩니다. 상위 레벨 프로토콜
에서이 블록 내의 주소로 전송 된 데이터 그램 은 호스트 내부에서 루프백됩니다. 이것은
일반적으로 단지 127.0.0.1/32 루프백을 사용하여 구현됩니다. 마찬가지로
[RFC1122]에 기재된 절 3.2.1.3는 전체 127.0.0.0/8 블록 내의 어드레스는 합법적으로 모든 네트워크 어딘가에 표시되지 않는다. — RFC5735

  • 127.0.0.2와 동일 127.0.0.1합니까?” NO

동안 127.0.0.1하는 127.255.255.254인터페이스에 바인드 된 모든 로컬 주소입니다 lo. 그들은 동일하지 않습니다. 각 주소를 사용하여 다른 서비스를 동일한 포트에 바인딩 할 수 있습니다. 예 : 포트 80의 16 백만 웹 서버, 로컬 시스템에서만 액세스 가능 (메모리가 부족하거나 다른 리소스가 먼저없는 경우)

에 바인딩 할 도커 서비스를 설정했습니다 127.0.0.2:80. 그런 다음에 별칭을 추가했습니다 /etc/hosts. 지금은 통해 연결할 수 http://myserver있지만 통해 http://127.0.0.1http://localhost. 그러나이 시스템에서만 사용할 수 있습니다. lo인터페이스 에만 있습니다.

그런 다음에 바인딩 할 다른 도커 서비스 127.0.0.3:80와 python 서비스를 설정 localhost:80했습니다 127.0.0.4:80.


일부 운영 체제에서는 작동하지 않을 수 있습니다. Debian (9) Gnu / Linux, Linux 커널 4.9.0-3-amd64를 사용하고 있습니다. 일부의 OS는 모든 주소를 처리 할 수 있습니다 127.0.0.1127.255.255.254동일합니다. 일부는에서만 작동 할 수 있습니다 127.0.0.1.

참조



한 시간 분량의 연구가 필요했지만 마침내 여러분이 전달하려는 내용을 이해할 수있었습니다. 허용 된 답변에서 Wikipedia 기사의 인용문을 업데이트했습니다. 인용문이 수년에 걸쳐 변경되었으므로 답변에 포함 된 원래 정보를 복원하기 위해 다른 진술을 인용했습니다.
Ramhound

1

포괄적 인 일반적인 답변은 아닙니다 (이미 답변이 있습니다). 이 대답은127.0.0.2 문제를 해결하는 데 사용 된 예를 보여줍니다 .

추출물:

OP는 서버에 대한 연결이 거부 된 경우 일부 소프트웨어를 테스트하려고했습니다. 이는 iptables클라이언트 IP의 모든 트래픽을 거부 하는 임시 규칙에 의해 서버에서 수행되었습니다 . 클라이언트가 즉시 연결을 "인식"할 수 있었으며 거부되었습니다.

이 사람이 서버 소프트웨어를 클라이언트와 동일한 시스템으로 옮기고 루프백 인터페이스를 사용하려고 할 때 문제가 발생했습니다. 이 규칙은 통신을 차단하도록 설정 127.0.0.1되었지만 연결이 거부 된 정보는 동일한 규칙에 따라 중단 된 클라이언트 소프트웨어 (아마도 시간 종료까지)에 도달하지 않았습니다.

해결책은 127.0.0.2서버 주소 로 사용 하고 연결 거부하는 규칙을 설정하는 것이 습니다. 거부에 대한 정보 127.0.0.1는 클라이언트 소프트웨어로 전달되어 클라이언트 소프트웨어로 전달 될 수있었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.