강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

리눅스마스터1급 : TCP/IP의 IP(Internet Protocol)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: TCP/IPIP(Internet Protocol)

 

 

IP는 네트워크 간의 고유 특성을 뛰어넘어서 독자적인 주소 지정 기법을 제공함으로써 특성이 다른 네트워크 간의 통신을 가능케 해 준다.

 

 

 

IP는 애초에 각 네트워크의 독립적인 특성을 초월하여 가상 네트워크를 제공하여 통신할 수 있도록 설계되었다.

 

 

 

 

 

IP는 주소 체계를 사용하여 발송한 데이터, 즉 데이터그램이 정확한 목적지를 찾아갈 수 있게 해 주는 역할을 담당하며, 여기에서 모든 데이터그램이 꼭 같은 경로로 이동하는 것이 아닌, 상황에 따라서 최적 경로를 찾아서 이동할 수 있도록 해 준다.

 

 

 

, 엄밀히 말해서 라우팅은 IP 계층에서 이루어지며, 데이터 전송은 Network Access 계층(이더넷 등)에서 이루어진다.

 

 

 

 

 

데이터를 전송하고자 할 때, 장비는 IP 데이터그램을 발생시키며, IP 데이터그램 안에는 IP를 통하여 데이터를 전송하는 데 필요한 각종 정보가 들어 있다.

 

 

 

 

 

5ef6539eaa8f8693ae488bb31c5d4ada_1683772755_6671.png
 

IP(IPv4) Header의 구조

 


인터넷의 IP 주소는 총 32비트로 구성되어 있다.

 

 

 

이는 초창기의 인터넷 설계자들이 선택한 주소 체계로 최대 연결 개수는 232, 4,294,967,296개로 약 40 억 개에 이르는 컴퓨터를 연결할 수 있는 주소이다.

 

 

 

그러나 IP 주소의 어떤 비트 표시는 특별히 예약된 의미를 갖고 있어 개별적인 네트워크 연결에 지정할 수 없으므로 그렇게 많은 연결을 할 수 없다.

 

 

 

이는 인터넷의 초창기에는 지금과 같이 인터넷이 확장되리라는 것을 예측할 수 없었기 때문이다.

 

 

 

 

 

IP 주소의 표기IP 주소는 총 4바이트, 32비트로 구성된다.

 

 

 

이를 표기하는 방법은 8진수와 16진수 등이 있으나 일반적으로 사람이 알아보기 쉬운 형태인 10진수로 표시한다.

 

 

 

IP 주소를 10진수를 사용하여 표시하는 방법은 총 4바이트의 IP 주소의 각 바이트를 10진수로 계산하고, 이렇게 계산된 4개의 10진수를 ‘.’으로 구분하여 표시한다.

 

 

 

 

 

IP 주소는 인터넷에 연결된 컴퓨터의 주소를 네 자리로 구분된 10진수 숫자(Dotted Quad Format)로 표현한 것이다.

 

 

 

 

 

IP 주소는 ‘IANA - 대륙별 NIC(아태 지역은 APNIC) - 각 국가의 NIC(우리 나라는 KRNIC) - ISP(Internet Service Provider)’에서 순서대로 할당한다(일반 사용자는 최종적으로 ISP로부터 할당받게 된다).

 

IP 주소는 각 자리를 점(Dot)으로 구분하는데, 각 부분은 0~255까지의 숫자를 사용할 수 있다.

 

 

 

IP 주소는 도메인 네임과 같이 전세계적으로 중복되지 않는다.

 

 

 

 

 

IP 주소의 구성 : 네트워크/호스트

 

전화번호의 구성을 보면 국가 코드를 나타내는 번호와 해당 국가 내에서는 국번과 전화번호로 구성된다.

 

 

 

이렇게 전화번호도 일종의 구조적으로 큰 단위인 국가와 그 다음 큰 단위인 국번으로 지역을 나타내고, 가장 작은 단위인 번호로 해당 전화기를 지정하게 된다.

 

 

 

이는 전화번호를 사용하여 전화망을 구성하고 전화기를 지정할 때 구조를 의미하며, 이를 사용하여 체계화된 전화망을 구성하고 관리할 수 있다.

 

 

 

 

 

IP 주소의 구성은 두 가지 요소, 네트워크 식별자(Network ID)와 호스트 식별자(Host ID)로 구성되어 있다.

 

 

 

 

 

IP 주소 : 32bit

네트워크 식별자

Network ID

호스트 식별자

Host ID

N bit

32 N bit

IP 주소의 구성

 


네트워크 식별자는 인터넷의 여러 네트워크 중에서 특정한 네트워크를 지정하는 부분이고, 호스트 식별자는 해당 네트워크 내에서 특정 호스트 컴퓨터를 구분하는 주소이다.

 

 

 

네트워크 식별자는 라우터에 의하여 구성된 인터넷의 각 네트워크를 지정하는 부분이다.

 

 

 

 

 

하나의 네트워크 내에는 여러 개의 호스트가 존재할 수 있으며, 한 네트워크 내에 존재하는 호스트들의 주소는 같은 네트워크 식별자를 갖는다.

 

 

 

IP 주소를 네트워크 식별자와 그 네트워크 내의 호스트 번호로 구조화하는 것이 IP 주소의 계층적 주소 체계이다.

 

 

 

계층적 주소 지정은 경로 설정을 더욱 효율적으로 수행하기 위하여 설계되었다.

 

 

 

 

 

IP 주소의 범위IP 주소는 반드시 다음의 범주에 속하는 것이다.

 

 

 

 

 

 

 

 

 

0.0.0.0 ~ 255.255.255.255

 

 

 

 

 



이들 주소는 IPV4라는 규약에 의해 다음과 같이 5개의 클래스(Class)로 나누어져 있다.

 

 

 

현재 IPV4에서는 IP 주소가 매우 부족하여 IPV6 기반으로 가고 있는 추세이며, 현재 각 IPV6 상품들이 나와 실생활에 응용되고 있다.

 

 

 

 

위의 범주에 속하는 IP 주소의 5개 클래스는 다음과 같이 사용되고 있다.

 

 

 

 

 

구 분

IP 범위

네트워크

식별자

호스트

식별자

네트워크 갯수

하나의 네트워크별 IP 갯수

A Class

0.0.0.0~127.255.255.255

8bit

24bit

27=128

224=16,777,216

B Class

128.0.0.0~191.255.255.255

16bit

16bit

214=16.384

216=65,536

C Class

192.0.0.0~233.255.255.255

24bit

8bit

221=2,097.152

28=256

D Class

224.0.0.0~239.255.255.255

멀티캐스팅을 위해 사용되는 특별 주소

E Class

240.0.0.0~255.255.255.255

예비 주소로 남겨둔 주소

 



IP 주소의 클래스는 총32비트, 4바이트로 구성된 IP 주소 중에서 네트워크 주소 부분의 길이를 미리 정해놓은 것으로, A 클래스, B 클래스, C 클래스, D 클래스, E 클래스라고 하는 것들은 해당 IP 주소가 위의 어떤 IP 클래스에 속하는가를 구분하는 것이다.

 

 

 

사용할 수 있는 네트워크 개수와 네트워크의 크기(사용할 수 있는 호스트수 등)에 맞게 사용하기 위한 것이다.

 

 

 

A 클래스는 국가나 대형 통신망에서 사용되고 있고, B 클래스는 캠퍼스 전산망과 같은 중/대규모 통신망에서 사용되고 있으며, C 클래스는 소규모 통신망서 사용되고 있다.

 

 

 

이에 따라 국내의 대형 ISP(Internet Service Provider)에서는 B 클래스와 C 클래스 몇 개를 한국인터넷정보센터로부터 할당받아서 전용선 고객이나 CSP(Cloud Service Provider) 업체들에게 할당해 주는 형식으로 IP를 분배하고 있다.

 

 

 

참고로 우리가 사용하는 IP는 대부분 C 클래스에 해당하는 것이다.

 

 

 

 

다음은 IP 주소를 5개의 클래스로 구분하고 있는 A, B, C, D, E 클래스에 대해서 간단히 알아보도록 한다.

 

 

 

 

 

Class A

0.0.0.0부터 127.255.255.255 사이의 IP 주소들이 A 클래스에 속하는 주소들이다.

 

 

 

 

첫 번째 숫자가 1~127 사이의 값을 가진다.

 

 

 

 

32bit 중 맨 첫 번째 비트(bit)0(1bit)이다(2진수 표기).

첫 번째 1byte(8bit)가 네트워크 주소(네트워크 식별자)이며, 나머지 3 byte(24bit)가 호스트 주소(호스트 식별자)이다.

 

 

 

모두 27 제곱승(7bit), 128개의 네트워크가 존재한다.

 

 

 

다만, 0127은 예약되어 있다.

 

 

 

 

1개의 네트워크는 224, 16,777,216개의 호스트를 각각 가질 수 있다.

 

 

 

다만, 2개는 예약되어 사용할 수 없으므로 실제로는 16,777,214개의 호스트를 가질 수 있다.

 

 

 

 

10.0.0.0부터 10.255.255.255 사이의 IP 주소들은 내부 IP 주소로 사용되기 때문에 공인 IP 주소로는 사용하지 못하며, 사설 네트워크에서 사용되는 IP 주소이다.

 

 

 

물론 보안 목적으로 사용되기도 하며 IP 주소가 부족한 현실에서 이를 해소하는 역할을 하기도 한다.

 

 

 

 

127.0.0.0부터 127.255.255.255 사이의 주소는 자기 자신을 가리키기 위한 루프백 네트워크 IP 주소와 로컬 시스템의 내부 테스트를 위해 사용된다.

 

 

 

 

127.0.0.1 주소는 자기 자신의 루프백 주소(loopback 주소)로 사용하기 위해 미리 예약되어 있다.

 

 

 

 

0.0.0.0 주소는 디폴트 라우트(default route) 주소로 사용하기 위해 미리 예약되어 있다.

 

 

 

 

Class B

128.0.0.0부터 191.255.255.255 사이의 IP 주소들이 B 클래스에 속하는 IP 주소들이다.

 

 

 

 

첫 번째 숫자가 128~191 사이의 값을 가진다.

 

 

 

 

전체 IP 주소 32bit 중 앞부분이 10(2bit)으로 시작한다(2진수 표기).

첫 번째 2byte(16bit)가 네트워크 주소이며 나머지 2byte(16bit)가 호스트 주소이다.

 

 

 

 

214 제곱승(14bit), 16,384개의 네트워크가 존재한다.

 

 

 

 

1개의 네트워크는 216 제곱승, 65,536개의 호스트를 각각 가질 수 있다.

 

 

 

 

172.16.0.0부터 172.31.0.0 사이의 IP 주소들은 내부 IP 주소로 사용되기 때문에 공인 IP 주소로 사용하지 못하며 썰 네트워크에서 사용되는 IP 주소이다.

 

 

 

물론 보안 목적으로도 사용되기도 하며 IP 주소가 부족한 현실에서 이를 해소하는 역할을 하기도 한다.

 

 

 

 

 

Class C

192.0.0.0부터 233.255.255.255 사이의 IP 주소들이 C 클래스에 속하는 IP 주소들이다.

 

 

 

 

첫 번째 숫자가 192~233 사이의 값을 가진다.

 

 

 

 

전체 IP 주소 32bit 중 첫 번째가 110(3bit)으로 시작한다(2진수 표기).

첫 번째 3byte(24bit)까지가 네트워크 주소이며 나머지 1byte(8bit)가 호스트 주소이다.

 

 

 

 

221제곱승(21bit), 2,097,152개의 네트워크가 존재한다.

 

 

 

 

1개의 네트워크는 28 제곱승, 256개의 호스트를 각각 가질 수 있다.

 

 

 

 

호스트 IP 주소 부분이 0이면 해당 네트워크를 나타내는 네트워크 주소로 사용한다.

 

 

 

예를 들어 211.220.193.0211.220.193.0/24 네트워크를 의미하는 네트워크 주소를 지칭하는 것이며, 211.220.193.0부터 211.220.193.255에 속하는 모든 호스트들을 의미한다.

 

 

 

 

호스트 IP 주소 부분이 255이면 해당 네트워크의 모든 호스트에게 동시에 전달하기 위한 목적으로 사용되는 해당 네트워크의 브로드캐스트 IP 주소로 사용된다.

 

 

 

예를 들어 211.220.193.255211.220.193.0/24 네트워크에 속한 모든 호스트에 전송하는 브로드캐스트 IP 주소를 의미한다.

 

 

 

 

따라서 0255는 각각 네트워크 주소와 브로드캐스트 주소로 사용되고 호스트 주소로 사용할 수 없다.

 

 

 

 

192.168.0.0부터 192.168.255.255 사이의 IP 주소는 내부 IP 주소로 사용되기 때문에 공인 IP 주소로 할당할 수 없으며 사설 네트워크를 사용할 때 사용한다.

 

 

 

물론, 보안 목적으로도 사용되기도 하며, IP 주소가 부족한 현실에서 이를 해소하는 역할을 하기도 한다.

 

 

 

 

Class D

224.0.0.0부터 239.255.255.255 사이의 IP 주소들이 D 클래스에 속하는 IP 주소들이다.

 

 

 

 

첫 번째 숫자가 224~239 사이의 값을 가진다.

 

 

 

 

이 클래스의 IP 주소들은 모두 호스트 주소로 사용하지 않는 IP 주소들이다.

 

 

 

 

전체 IP주소 32bit 중 첫 번째가 1110(4bit)으로 시작한다(2진수 표기).

(RFC 1112의 규정에 의해) 멀티캐스팅(Multicasting)을 하기 위한 IP 주소들(Muticast Address)이며, 그룹 ID 라고도 한다.

 

 

 

 

 

Class E

240.0.0.0부터 255.255.255.255에 속하는 IP 주소들을 E 클래스라고 한다.

 

 

 

 

첫 번째 숫자가 240~255 사이의 값을 가진다.

 

 

 

 

전체 IP 주소 32bit 중 첫 번째가 1111로 시작한다(2진수 표기).

E 클래스 주소들은 특별히 정의되어 있지 않으며 미래를 위해 남겨둔 주소들이다.

 

 

 

 

간혹 실험적으로 사용되기도 하지만 E 클래스 범위에 속하는 IP 주소들은 실제 사용하는 IP 주소가 아니다.

 

 

 

 

IP 주소를 통해 클래스를 판별하는 방법IP 주소를 제시하고, 해당 어드레스의 클래스가 무엇인지, 사용 가능한 최대 호스트 수는 몇 개인지 물어보는 문제가 출제되었을 경우 각 클래스의 구분점인 1, 128, 192만 알고 있다면 손쉽게 판별할 수 있다.

 

 

 

(클래스 DE는 유보되어 있기 때문에 출제되지 않는다.)

 

 

 

 

IP 주소의 구분점이 명확하게 떠오르지 않는다면 첫 번째 Octet2진수를 비트로 환산한 숫자의 구분점인 0, 10, 110을 통해 판별할 수 있다.

 

 

 

 

 

특별한 목적으로 예약된 IP 주소




Net ID 부분의 예약

Class를 나타내는 앞 부분 비트(Prefix bit)’를 제외한 Net ID 부분의 비트 값이 모두 0으로 되어 있거나, 모두 1로 되어 있는 것은 이용하지 않는다.

 

 

 

 

 

Class A : 0127(0000000001111111)

Class B : 128.0191.255(1000000010111111)

Class C : 192.0.0223.255.255(1100000011011111)

 

Host ID 부분의 예약

Host ID 부분의 모든 비트값이 0이거나 1인 것은 이용하지 않는다.

 

 

 

 

Host ID가 모두 0인 것은 해당 네트워크를 대표하는 Host Number로 사용한다.

 

 

 

 

Host ID가 모두 1인 것은 Broadcast Address로 이용된다.

 

 

 

 

예를 들어 203.236.138.xxx라는 C 클래스의 IP 주소에서 xxx 부분이 Host ID이므로 203.236.138.0(xxx의 비트 값이 모두 0)은 해당 네트워크를 대표하는 것이며, 203.236.138.255(xxx의 비트 값이 모두 1)Broadcast Address이다.

 

 

 

 

 

네트워크 번호 지정 주소(Host ID 필드가 ‘0’)

Host ID 부분의 값이 모두 ‘0’IP 주소는 일반 호스트에는 할당할 수 없는 IP 주소로 네트워크 자체를 나타낸다.

 

 

 

예를 들어 203.236.137.0이라는 주소는 클래스 C에 속하며, 호스트를 지정하는 필드의 값이 0인 네트워크 번호를 지정하는 주소이다.

 

 

 

마찬가지로 203.236.138.0, 203.236.139.0 등과 같이 호스트 부분의 값이 ‘0’인 주소는 네트워크를 나타내므로 일반 호스트에서는 할당하여 사용할 수 없다.

 

 

 

 

이러한 네트워크 번호 지정 주소들은 주로 라우터나 혹은 일반 호스트에서 네트워크를 구분하기 위한 라우팅 테이블의 구성에 사용되며, 서브넷 마스크를 사용하는 경우에는 마스크를 사용하여 생성된 값을 네트워크 번호로 사용한다.

 

 

 

 

 

브로드캐스트 IP 주소(호스트 필드가 ‘1’)

브로드캐스트 IP 주소(Broadcast IP Address)는 호스트 필드의 비트 값이 모두 ‘1’인 주소를 말하며, 이러한 값을 갖는 IP 주소는 일반 호스트에 할당하여 사용할 수 없다.

 

 

 

예를 들어 198.18.178.0인 네트워크의 브로드캐스트 IP 주소는 호스트 필드 값이 모두 ‘1’이 되는 주소인 198.18.178.255, 이 주소는 일반 호스트에 할당할 수 없다.

 

 

 

목적지 IP 주소가 198.18.178.255인 데이터는 해당 네트워크에 접속되어 있는 모든 호스트로 전송된다.

 

 

 

 

이러한 브로드캐스트 IP 주소는 라우팅 프로토콜이나 ARP 등의 특수한 목적으로 사용되며, 링크 레벨의 브로드캐스트 주소와는 구분된다.

 

 

 

 

 

주소 0.0.0.0(모든 값이 ‘0’)

IP 주소가 모두 ‘0’0.0.0.0은 두 가지 의미를 갖는다.

 

 

 

 

해당 호스트 자체를 의미하는 것으로 대게 호스트가 자체의 IP 주소를 알아내기 위하여 사용된다.

 

 

 

한 예로 네트워크의 노드가 중앙 BOOTP 서버에서 IP 주소를 지정하기 위해 사용할 수 있는 BOOTP라는 프로토콜이 있다.

 

 

 

주소를 알아내기 위한 호스트는 BOOTP 서버에 초기 요청을 보낼 때에는 자체의 IP 주소를 모르며, 이때 0.0.0.0이라는 주소를 사용한다.

 

 

 

 

기본 라우터(Default Gateway)를 뜻한다.

 

 

 

따라서 라우터나 호스트의 라우팅 테이블 구성시 0.0.0.0이라는 주소는 번호가 지정되어 있지 않은 나머지 모든 네트워크를 말한다.

 

 

 

 

 

호스트 지정 주소(NetID 필드가 모두 ‘0’)

네트워크 필드가 모두 ‘0’이고 호스트 필드에만 값이 지정되어 있는 IP 주소는 해당 네트워크에서 특정 호스트를 지정하는 주소이다.

 

 

 

예를 들어 198.18.178.0인 네트워크에서 목적지 IP 주소가 0.0.0.123으로 지정된 데이터는 198.18. 178.123IP 주소를 갖는 호스트에서만 수신된다.

 

 

 

 

 

소프트웨어 루프 백(127.x.x.x)

IP 주소 중에서 127.으로 시작되는 주소는 어떠한 호스트에서도 인터넷 주소로 할당할 수 없는 소프트웨어 루프 백 주소이다.

 

 

 

인터넷에서 루프 백이란 호스트 자체에서 사용하는 루프 백 주소로 호스트 내부의 프로그램 간의 통신이나 호스트 자신의 주소를 나타낼 때 사용된다.

 

 

 

대부분의 호스트에서 사용되는 소프트웨어 루프 백 주소는 127.0.0.1이다.

 

 

 

 

 

다중 전송(Multicast) 주소

IP 주소 중에서 첫 번째 숫자가 224에서 239까지의 IP 주소는 클래스 D의 주소로 다중 전송의 목적으로 예약되어 있다.

 

 

 

다중 전송이란 목적지가 한 개인 개별 전송(Unicast)이나 모든 호스트인 브로드캐스트(Broadcast)와는 구분되며, 하나 이상의 지정된 호스트에게만 전송한다는 의미를 갖고 있다.

 

 

 

인터넷에서 멀티미디어 통신이나 회의 시스템, 혹은 라우팅 프로토콜의 전송 등의 특수한 목적을 위하여 여러 가지의 다중 전송 주소를 할당하여 사용하고 있다.

 

 

 

 

IP 주소와 호스트 컴퓨터와의 관계원칙적으로는 하나의 호스트 컴퓨터가 여러 개의 IP 주소를 가질 수 있지만, 하나의 IP 주소를 여러 호스트가 공유하는 것은 허용되지 않는다.

 

 

 

 

 

하지만 매스커레이딩 등의 여러 가지 기법들을 응용하여 이를 해결하는 방법이 존재한다.

 

 

 

 

 

서브넷 마스크(Subnet Mask)IP 주소를 실제로 컴퓨터상에서 Network AddressHost Address로 구분하기 위해서 서브넷 마스크가 필요하다.

 

 

 

, Network Address 부분을 “1”, Host Address 부분을 “0”으로 표기함으로써 서브넷 마스크가 구성되며, IP 주소와 서브넷 마스크를 가지고 AND 연산을 수행하면 Network Address가 나오게 된다.

 

 

 

이것을 달리 표현하여 넷마스크(NetMask)라고 하기도 한다.

 

 

 

 

 

라우팅 테이블(Routing Table)

게이트웨이는 네트워크 사이에서 데이터의 경로를 지정해 주지만, 게이트웨이뿐만 아니라 모든 네트워크 장치들과 호스트들도 라우팅 결정을 내려야만 한다.

 

 

 

대부분의 호스트에서 라우팅 결정은 간단하다.

 

 

 

 

 

목적지 호스트가 로컬 네트워크에 있으면 데이터는 목적지 호스트로 전달된다.

 

 

 

 

목적지 호스트가 원격 네트워크에 있으면, 데이터는 로컬 게이트웨이로 넘겨진다.

 

 

 

 

라우팅은 네트워크 단위로 이루어지기 때문에, IP는 주소의 네트워크 부분에 기반하여 라우팅 결정을 내린다.

 

 

 

IP 모듈은 주소에 네트워크 마스크를 적용하여 목적지 IP 주소의 네트워크 부분을 결정한다.

 

 

 

만약 목적지 네트워크가 로컬 네트워크이면 적용되는 마스크는 로컬 서브넷 마스크일 것이다.

 

 

 

주소와 함께 제공되는 마스크가 없으면 주소 클래스가 주소의 네트워크 부분을 결정한다.

 

 

 

목적지 네트워크를 결정한 후에, IP 모듈은 로컬 라우팅 테이블에서 네트워크를 찾는다.

 

 

 

패킷들은 라우팅 테이블에서 지시한 목적지대로 경로가 지정된다.

 

 

 

IP 라우팅 결정은 단순한 테이블 검색이다.

 

 

 

 

 

도메인 네임 시스템(Domain Name System)

 

인터넷에서 통신을 하기 위해서는 통신을 하고자 하는 호스트의 IP 주소를 알아야 한다.

 

 

 

이는 전화 통화를 위해서는 통화를 원하는 사람의 전화번호를 알아야 하는 것과 같이 지극히 당연한 일이다.

 

 

 

 

 

그런데 IP 주소의 형태는 앞에서 설명한 바와 같이 ‘.’으로 구분된 4개의 10진 숫자로 구성되어 있다.

 

 

 

193.192.188.34, 203.252.57.110식으로 자신이 통신하고자 하는 곳의 IP 주소는 사람이 기억하기에는 힘든 형태로 구성되어 있다.

 

 

 

전화 번호도 자주 통화하는 번호 이외의 번호들은 수첩이나 전화기에 저장시켜 사용하는 이유도 사람이 기억하기 힘들기 때문이다.

 

 

 

 

 

도메인 네임 시스템(DNS)은 이러한 목적으로 도입된 시스템이다.

 

 

 

 

 

DNS 개요

 

IP 주소는 인터넷에서 특정 호스트를 지정할 수 있는 매우 중요한 주소이지만, 사람의 입장에서는 아무런 의미없는 숫자의 나열이다.

 

 

 

때문에 이를 기억하여 사용하는 것은 거의 불가능할 것이다.

 

 

 

특정 호스트의 특징이나 사람이 기억하기 쉬운 이름을 부여한다면 사용이 훨씬 쉬워질 것이다.

 

 

 

가령 천리안에서 운영하고 있는 호스트에는 ‘chollian’이라는 이름을 부여하거나, 자신의 사무실에서 주로 전자 우편 서버로 운영되는 되는 호스트에는 ‘mailsrv’ 등으로 이름을 부여하는 것이다.

 

 

 

이러한 개념으로 사람이 기억하기 쉬운 형태로 부여되는 문자로 구성되는 이름을 도메인 네임(Domain Name)이라 한다.

 

 

 

 

 

그러나 인터넷에서 실제로 특정 호스트를 지정하고 찾아주는 IP 계층은 IP 주소를 사용하므로 사람이 사용하는 도메인 네임과 실제로 이에 해당하는 IP 주소 간을 변환시켜 주는 시스템이 필요하며, 이를 도메인 네임 시스템(DNS ; Domain Name System)이라 한다.

 

 

 

DNS가 있음으로 해서 사람은 기억하기 쉬운 도메인 네임으로 호스트를 지정하면 DNS에 의하여 자동으로 IP 주소로 변환되고 이에 따라 TCP/IP 프로토콜이 작동된다.

 

 

 

 

 

도메인 네임과 IP 주소 간의 변환

 

인터넷에서 특정한 호스트의 위치를 찾고 데이터를 라우팅하는 역할을 수행하는 IP 계층은 반드시 IP 주소를 사용한다.

 

 

 

이 때문에 사람이 사용하는 도메인 네임과 IP 주소 간의 이름을 변환하는 기능이 필요한데, 여기에는 Host 파일을 이용하는 방법과 도메인 네임 서버를 이용하는 두 가지 방법이 존재한다.

 

 

 

 

 

Host 파일을 이용하는 방법

Host 파일은 시스템 내에 도메인 네임과 이에 해당하는 IP 주소를 저장하고 있는 일종의 도메인 네임 데이터베이스 파일이다.

 

 

 

인터넷에 접속하는 기능의 컴퓨터에는 대부분 이 Host 파일이 존재하는데, 예를 들어 리눅스와 같은 유닉스 계열의 컴퓨터에는 ‘/etc/hosts’라는 이름으로 되어있다.

 

 

 

따라서 이 Host 파일에 자신이 자주 접속하는 호스트의 IP 주소와 도메인 네임을 등록해 놓으면 자신이 기억하기 쉬운 도메인 네임을 사용하여 접속하면 TCP/IP 프로그램에 의하여 자동적으로 IP 주소로 변환되어 통신하게 된다.

 

 

 

그러나 이 방법의 경우 Host 파일을 관리하는 관리자는 새로운 호스트가 네트워크에 추가되거나 삭제 및 변경될 때마다 모든 컴퓨터의 Host 파일을 수정해야하는 번거로움이 있다.

 

 

 

특히, 현재와 같이 인터넷이 급속하게 확장되는 환경에서는 이러한 Host 파일을 이용하여 모든 호스트를 등록한다는 것은 거의 불가능한 일이다.

 

 

 

 

 

도메인 네임 서버를 이용하는 방법

도메인 네임 서버는 도메인 이름과 이에 해당하는 IP 주소 간의 변환 정보를 담고 있는 일종의 데이터베이스 시스템으로, 통신을 하고자 하는 호스트의 TCP/IP 프로그램은 사용자가 입력한 도메인 네임에 해당하는 IP 주소를 이 도메인 네임 서버로 요청하여 알아내어 통신하게 된다.

 

 

 

 

 

인터넷에는 일반적으로 하나 이상의 도메인 네임 서버가 존재하는데, 각 데이터베이스는 이들 사이에 분산되어 있다.

 

 

 

각 도메인 네임 서버가 관리하는 데이터베이스는 디렉토리 구조를 갖고 있으며, 각 네임 서버는 자신이 저장하지 않은 도메인 네임에 대한 요청을 받으면 이를 다른 서버에 요청해서 알아내고 이를 다시 원래 요청한 호스트로 되돌려 준다.

 

 

 

이렇게 하여 전세계의 어느 위치에 있는 호스트의 도메인 네임이라도 모두 IP 주소로 바꿀 수 있다.

 

 

 

 

 

도메인 네임 시간 지연 문제

우리가 인터넷을 사용하다 보면 네트워크상의 문제는 아닌데, 처음 접속시 많은 시간이 소요되는 경우를 경험한 적이 있을 것이다.

 

 

 

예를 들어 특정 호스트로 Telnet이나 FTP 접속을 하였는데, 연결은 바로 되지만 그 다음 동작이 잘 이루어지지 않는 경우가 바로 그것이다.

 

 

 

 

 

이러한 경우 많은 사람들은 네트워크나 서버에 문제가 있는 것으로 생각하기 쉬우나 이러한 문제는 대부분 DNS와 관련이 있다.

 

 

 

인터넷에서 제공되는 서비스 중에서는 호스트의 IP 주소에 해당하는 도메인 네임을 필요로 하는 서버 프로그램이 있다.

 

 

 

물론 서버 프로그램의 설정에 따라 달라지긴 하지만 FTPTelnet, 혹은 메일서버 프로그램인 POP 서버 등은 대부분 자신에게 접속하는 호스트의 도메인 네임을 필요로 한다.

 

 

 

 

 

따라서 접속 요구를 하는 호스트의 IP 주소에 해당하는 도메인 네임을 네임 서버에게 요청을 하는데, 네임 서버의 데이터베이스에는 개인용 컴퓨터의 호스트 이름이 등록되지 않은 경우가 많다.

 

 

 

이런 경우 IP 주소로 접속에 성공했다고 하더라도 실제로 특정 서비스를 사용할 수 없는 경우가 있다.

 

 

 

이 때 해당 서비스는 도메인 네임 서버로부터 응답을 기다려서 도메인 네임이 확인될 때 접속을 허용한다.

 

 

 

따라서 사용자의 입장에서는 특정 서버로 접속하는 시간이 오래 걸리는 것으로 느끼게 된다.

 

 

 

 

 

이러한 상황을 방지하기 위해서는 망 관리자는 망에 접속되어 있는 모든 컴퓨터에 대한 도메인 네임을 할당하여 네임 서버에 등록하거나, 서버 프로그램의 동작 설정을 IP 주소만으로 동작할 수 있도록 하여야 한다

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  81 명