devops

웹 서비스 개발 기초, IP 종류와 nslookup, DNS 여정 본문

DevOps

웹 서비스 개발 기초, IP 종류와 nslookup, DNS 여정

vata500 2022. 4. 25. 17:08
반응형

public IP와 Private IP의 차이점

http://www.codns.com/b/B05-104 출처

Public IP

인터넷 상에서 사용할 수 있는 IP주소를 말한다. 전세계적으로 ICANN이라는 기관이 국가별로 사용할 IP대역을 관리하고 우리나라는 KISA에서 우리나라 내에서 사용할 주소를 관리하고 있다.

아무 IP 주소나 내PC에 지정한다고 인터넷이 되지 않으며, 할당 받은 주소를 설정해야만 인터넷에 접속이 가능하다.

wiki

A 클래스는 네자리의 IP 주소 대역 중에서 두번째, 세번째, 네번째 주소를 마음대로 부여할 수 있는 최상의 클래스로 클래스 당 255 x 255 x 255 개의 주소를 가질 수 있다.

B 클래스는 네자리의 IP 주소 대역 중에서 세번째, 네번째 주소를 마음대로 부여할 수 있는 클래스로 클래스 당 255 x 255 개의 주소를 가질 수 있다.

C 클래스는 맨 뒤 네번째 자리만 마음대로 부여할 수 있는 주소로 클래스 당 255개의 주소를 갖는다.

이와 같이 클래스를 분류해뒀는데, 문제는 IP가 부족하다보니 서버 운영 시에 원하는 대로 IP 주소를 부여받을 수 없고, 서버 운영 업체나 기관 들에 할당된(미리 돈을 지불하고 산다) 주소 중에서 자신의 컴퓨터에 주소를 할당 받아야 한다.

최근의 IP 부족 사태는 인터넷 발전 초기에 IP 주소를 무계획적으로 배분했기 때문에 발생하는 문제이다. 대표적으로 미국의 일반 기업인 IBM이나 모토롤라 등은 초기에 인터넷 주소를 부여받으면서 A 클래스를 부여받았고, 우리나라내에서도 KAIST나 서울대 등은 B 클래스를 보유하여 학교내의 PC들에게도 마구 공인 IP를 부여하고 있는 웃지 못할 상황이다. 반면 최근에 IP를 신청하는 기업은 많은 비용을 지불하고도 C 클래스 대역조차 얻기가 쉽지않은 현실이다.

Private IP

내부 네트워크 상에서만 사용되는 주소로 인터넷 상에서는 사용할 수 없다. 하나의 네트워크 안에서 유일하기 때문에 가정이나 소규모 사무 공간에서 공유기 / 라우터 등의 장비가 하나의 공인 IP를 할당 받고 NAT 방식을 통해 여러 PC가 나누어 쓰는 방식으로 사용된다.

IP Class IP 범위
A class 10.0.0.0 - 10.255.255.255
B class 172.16.0.0 - 172.31.255.255
C class 192.168.0.0 - 192.168.255.255

위의 3개의 클래스 대역은 사용자가 자신의 컴퓨터에 임의로 부여해도 되는 IP 주소 대역이 된다.

따라서 회사 내부나 집에서는 공인 IP를 부여받지 않은 상태에서 위의 주소 대역 중에서 아무 주소나 할당을 해도 문제가 발생하지 않는다는 것이다.

공인 IP 주소가 모자랄 경우 사설 IP로 회사나 가정 내의 IP 주소를 부여하고 공유기 등에 고정 IP를 부여한 다음에 인터넷에 접속하는 방식이 널리 퍼지게 되었고, 대부분의 장비가 현재는 사설 IP를 부여하고 공유기나 라우터(사실 공유기가 라우터다)를 통해 인터넷에 접속하게 된다. 단 사설 IP를 부여한 컴퓨터는 공인 IP에서 알아볼 수가 없다는 점이 특징이다.

터미널에서 nslookup 명령을 실행 했을 때 나오는 결과값에 대한 설명

nslookup은 도메인 이름 시스템의 인프라를 진단하는데 사용할 수 있는 정보를 확인할 수 있다. nslookup + [도메인 명]을 입력하는 원하는 도메인의 ip정보가 출력된다.

우분투
윈도우 cmd

- Non-authoritative answer는 권한이 없는 응답으로, 4가지  DNS 유형중 "DNS recursive resolver" 를 사용했다는 의미다. Recursive resolver는 재귀적 확인자라고 불리며, 클라이언트와 DNS 네임서버 사이의 중개자 역할을 한다.

DNS recursive resolver

- nslookup을 치면 서버 수에 따라 나오는 ip도 여러개일 수 있다.

- NS는 네임서버 레코드로 도메인에 대한 네임서버 권한을 가지고 있는 것을 의미한다. e-ns.naver.com, ns1.naver.com과 ns2.naver.com이 관리하고 있다.

 

 

검색창에 http://google.com 을 검색할 때, DNS에서 일어나는 일.

1. PC 브라우저에서 www.google.com 을 입력한다.

2. PC는 미리 설정되어 있는 ①DNS(Local DNS)에게 www.google.com hostname에 대한 IP주소를 물어본다. (Local DNS에는 www.google.com 대한 캐싱되어 있지 않다고 가정) 

3. Local DNS는 www.google.com 대한 IP주소를 찾아내기 위해 다른 DNS 서버들과 통신(DNS Message)을 시작.

4. 먼저 ②Root DNS 서버에게 www.google.com 대한 IP주소를 아는지에 대해 확인)

5. Local DNS가 Root DNS에 질의하기 위해 각 Local DNS 서버에는 Root DNS 서버의 정보 (IP Address)가 미리 설정되어 있어야 한다. (Root DNS 서버는 www.google.com 대해 모른다고 가정)

6. google.com은 .com 도메인이기 때문에 Local DNS 서버에게 com Domain을 관리하는(TLD) DNS서버의 정보를 포함하여 응답한다.

7. Local DNS 서버는 ③com DNS 서버에게 www.google.com 대한 IP 주소를 아는지에 대해 질의한다. ("com Domain"을 관리하는 DNS 서버또한 해당 정보가 없다고 가정)

8. Local DNS 서버에게 www.google.com 도메인을 관리하는 DNS서버의 정보를 포함하여 응답한다.

9. Local DNS 서버는 ④www.google.com 도메인을 관리하는 DNS 서버에게 www.google.com에 대한 IP주소를 질의한다. (이 DNS 서버는 www.google.com 도메인을 직접 매니징하고 있으므로 해당 IP 주소를 반환)

10. 이를 수신한 Local DNS는 www.google.com에 대한 IP주소를 캐싱하고 단말(PC)에 전달한다.

이와 같이 Local DNS 서버가 여러 DNS 서버를 차례대로 (Root DNS → com DNS → www.google.com DNS)물어봐서 그 답을 Recursive Query라고 부릅니다.

반응형
Comments