안녕하세요 마무입니다. 오늘은 네트워크 관련 일이나 공부를 할 때 자주 보는 '루프백 주소란', 'loopback address란', '루프백 인터페이스란', 'lo0', '127.0.0.1 의미', 'localhost란'에 대해서 자세히 알려드리려고 합니다.
-----목차-----
1. 루프백 주소(loopback)란
i) 루프백 주소를 사용하는 이유
ii) 127.0.0.1과 127.0.0.0 네트워크
iii) 라우터에서 사용하는 lo0이란
2. localhost란
3. 정리
---------------
여기서 못 찾은 정보는
네트워크 독학 페이지 : https://mamu2830.blogspot.com/p/blog-page_15.html
에서 찾아보시면 있을 수 있습니다!!
1. 루프백 주소(loopback)란
A네트워크(0.0.0.0~127.255.255.255)에서 마지막 네트워크인 이 127.0.0.0 네트워크와 그 안에 속하는 주소들(127.0.0.1~127.255.255.255)은 컴퓨터 박사, 과학자들이 루프백(Loopback)이라는 가상의 인터페이스(데이터 전송 통로)에 사용하기 위해 예약해 놓은 주소입니다.
Loopback(돌아오다) 인터페이스는 그 의미대로, 내 컴퓨터에서 나간 신호가 다시 내 컴퓨터로 돌아오기 때문에 붙여진 이름입니다.
이 loopback 인터페이스란 이런 느낌으로 생각하시면 됩니다.
위 사진에서 컴퓨터가 라우터로 이어진 이더넷 인터페이스(보통 자기 IP 주소)로 데이터를 보내면 게이트웨이인 라우터에 도달하죠.
하지만 '루프백 인터페이스'는 loopback(돌아오는)이란 의미대로, 루프백 인터페이스로 데이터를 보낼 시 위 사진처럼 자기 컴퓨터로 돌아온다고 보시면 됩니다.
어렵지 않죠?
i) 루프백 주소를 사용하는 이유
이 '루프백 주소'란 것이 어디에 쓰이냐면, 예를 들어 제가 특정 IP주소를 적으면 그 IP주소로 메세지를 보내는 프로그램을 만들었다고 쳐봅시다.
그런데 이 프로그램에 다른 컴퓨터 IP 주소를 적어 테스트하기 전, 먼저 내 컴퓨터를 대상으로 실행하여 프로그램이 잘 작동하나 테스트 하고 싶을 때 IP주소 대상으로 이 루프백(loopback)주소를 사용하는 겁니다.
그러면 제 컴퓨터에서 프로그램이 실행돼, 말 그대로 루프백 인터페이스를 따라 흐르다가 신호가 다시 제 컴퓨터로 오죠.
물론 여기서 '그냥 자기 IP주소를 적으면 되는 거 아닌가?' 의문이 드시는 분들도 있을 겁니다.
당연히 됩니다만, 사실 자기 컴퓨터의 IP를 일일이 다 외우고 다니는 사람은 없잖아요? 물론 ipconfig(ifconfig)를 쳐서 자기 IP 주소를 확인 후 사용하면 되지만, 그것조차 귀찮다 이겁니다
하지만 아래에서 배울 루프백 인터페이스 주소로 많이 쓰이는 '127.0.0.1'이란 숫자를 외우면, 내 컴퓨터에 어떤 IP 주소가 할당돼 있나 확인할 필요가 없다는 것이죠.
ii) 127.0.0.1과 127.0.0.0 네트워크
이 '루프백'이란 가상의 인터페이스(통로)의 이름은 주로 lo[숫자](loopback[숫자])형태며, 보통은 127.0.0.1~127.255.255.254 중 첫 번째 IP주소인 127.0.0.1을 제일 많이 씁니다.
그리고 127.0.0.1이 할당된 인터페이스는 127.0.0.0 네트워크의 첫 번째 주소니까 주로 lo0(loopback0)이란 이름이 붙여집니다.
netstat -r(routing table)이란 명령어를 쳐서 확인한 현재 제 컴퓨터의 라우팅 테이블 정보입니다.
참고로 'netstat -r' 명령어를 쳤을 때 나오는 '게이트웨이 column(열)'에 있는 '연결됨(on-link)'이란 대상 네트워크가 현재 컴퓨터에 붙어있기(로컬 주소이기) 때문에 '게이트웨이가 필요 없다'란 뜻입니다.
그러므로 '게이트웨이 열'이 '연결됨(on-link)'으로 뜨면, 대상 네트워크 주소를 대상으로 하는 패킷이 오면 그냥 '인터페이스'로 지정된 주소로 보내라는 뜻입니다.
그래서 파란색 '2'번인 경우
127.0.0.0 255.0.0.0 연결됨 127.0.0.1
뜻은 127.0.0.0 네트워크(127.0.0.1~127.255.255.254)에 속하는 주소들이 목적지인 패킷은 다 127.0.0.1로 보내라는 뜻입니다.
그리고 127.0.0.1은 결국 자기 자신 컴퓨터죠.
그렇기에
위 사진처럼 제가 그냥 막 적은 127.234.21.23이란 주소로 'ping' 신호를 보내도, 위에서 보셨듯 127.0.0.1로 보내기에, "ping 127.0.0.1"을 한 것과 똑같은 결과가 나오는 것을 볼 수 있습니다.
정리하자면
루프백(loopback)주소 == 갔다가 나에게 돌아오는 주소 == 내 컴퓨터 IP주소
127.0.0.0 네트워크(127.0.0.1~127.255.255.254) == 127.0.0.1 == 내 컴퓨터 IP 주소
iii) 라우터에서 루프백 인터페이스 'lo0'이란
제가 위에서 루프백 인터페이스의 이름은 lo[숫자]형태로 쓰이며, 주로 테스트용으로 쓰인다고 했었는데요.
사실 이 루프백 주소 'lo0(loopback interface 0)'은 그 외에도 라우터에서 특정 라우팅 프로토콜을 사용할 때 중요하게 사용됩니다.
자세히 말하기엔 네트워크 엔지니어 지식이기에... 간단히 말하겠습니다.
라우터의 라우팅 테이블을 갱신해주는 라우팅 프로토콜들 중 유명한 'OSPF'란 라우팅 프로토콜이 있는데요.
그리고 같은 OSPF 라우팅 프로토콜을 사용하는 라우터끼리 멀티캐스트라는 것으로 정보를 교환합니다.
이때 각 OSPF 프로토콜을 사용하는 라우터가 개개인별로 정보를 교환하면 너무 비효율적이니, 모두에게 정보를 받고, 모두에게 뿌려주는 대표 라우터(DR, Designated Router)를 선정합니다.
예시를 들자면
'OSPF'란 반(class)이 있다고 하죠.
그리고 OSPF반의 '학생들(라우터)'이 있죠.
이때 반 안에서 각각 학생들이 주변 학생들에게 정보를 전달하는 방식을 사용하면, 모든 반 학생들이 정보를 알기까지 오래걸릴 겁니다.
하지만 반장(대표 라우터, DR, Designated Router)을 선출하여, 애들이(ospf 라우터들) 무슨 일이 있을 때 반장에게만 알려주고, 이후 반장이 단상에 서서 한번에 반학생들(라우터들)에게 정보를 알려주면 훨씬 효율적이겠죠.
이때 같은 OSPF 프로토콜내에서 반장 라우터(DR)을 뽑는 기준이 '우선순위(priority) 값이 높은지'와 '라우터의 루프백 주소(router-id)가 높은지'인데요.
보통은 각 라우터의 우선순위가 디폴트 값으로 '1'이라 설정돼 있기에, 주로 라우터의 루프백 주소를 이용해 OSPF 반장 라우터(DR)를 선정합니다.
이렇게 루프백 주소라는 것은 테스트용 외에도, 네트워크 영역에서 라우팅 프로토콜에 쓰인다는 것이라는 거죠.
2. localhost란
127.0.0.1 말고도 'localhost'라는 것도 보신 분들이 많을겁니다.
3. 정리
a) 루프백 인터페이스란 데이터를 보내면 자기 컴퓨터로 돌아오는 인터페이스(데이터 통로)다
b) 127.0.0.0 네트워크(127.0.0.1~127.255.255.254)는 모두 127.0.0.1과 같은 의미이며, 루프백 인터페이스로 주로 127.0.0.1를 많이 쓴다
c) 루프백 인터페이스를 줄여서 'lo0(loopback 0)'으로 표현한다
d) 루프백 인터페이스와 주소는 테스트용 외에도 라우터의 '라우팅 프로토콜'에 사용된다
e) 127.0.0.1이랑 localhost는 형식만 다르지 같은 것이다.
오늘도 글 읽느라 고생하셨고, 도움이 되셨다면 따뜻한 댓글 달기 및 팔로우 클릭을 해주시면 저에게 큰 힘이 돼 포스트 퀄리티 향상에 도움을 줍니다!!
그럼 다음에 더 좋은 포스트로 찾아뵙겠습니다!
댓글 없음:
댓글 쓰기
#1 여러분들이 소중한 시간을 투자해 달아주시는 따뜻한 댓글들은 저에게 정말 큰 힘이 됩니다!
#2 저의 각 포스트들은 엄청난 노력과 시간 투자를 통해 만들어진 포스트들로, 무단 복제나 모방하는 것을 금지합니다.
#3 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!