1 IP Address와 DNS
1.1 IP Address
- TCP/IP 프로토콜을 사용하는 장비들을 구분해주기 위해 만든 것이다.
1.1.2 IPv4 (Internet Protocol version 4)
- 인터넷 프로토콜의 4번째 판이며, 32bit로 구성된 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이다.
- 32bit를 8bit씩 10진수로 표현하여 4자리로 나타낸다.
- 8bit씩 나눠서 4개의 Octet로 구분되며, 각 Octet의 최저 값은 0(00000000(2) ), 최고 값은 255(11111111(2) )이다. 사용 가능한 IPv4 주소는 232=4,294,967,296개다.
- 최근 들어 IP 주소가 부족해서 공인 IP주소를 얻기가 쉽지 않다. 그래서 IPv6(128bit) 또는 사설 IP 등으로 해결하는 추세이다.
1.1.3 IPv6 (Internet Protocol version 6) 정의 및 장점
- 인터넷 프로토콜의 6번째이며 IPv4의 주소가 한계에 다다르면서 인터넷 발전의 문제가 예상되어 IPv6가 제정되었다.
- 주소 크기가 4배로 커진 128bit의 주소 체계를 가지며, 2128 개 즉, 340,282,366,920,938,463,374,607,431,768,211,456개 정도 되며, 이 주소를 지구 상에 존재하는 모든 사람에게 나누어준다고 해도 1인당 1028 개 정도가 된다.
- IPv6는 IPv4와 달리 128bit를 16bit씩 16진수로 표현하여 8자리로 나타낸다.
- IPv6는 현재 IPv4보다 사용자가 상당히 낮아, IPv4를 IPv6로 IPv6를 IPv4로 전환하는 듀얼스택(Dual Stack)[1]과 터널링(Tunneling)[2], 주소 변환 기술이 있다.
- 더 이상 주소 부족을 걱정하여 주소 관리 기법을 적용하지 않아도 되고, 이를 통해 모든 호스트에 고정 IP를 줄 수 있게 되어 전 세계의 네트워크 어디에서나 주소를 변경하지 않고, 고유의 주소를 가지고 접속이 가능하다. 이를 통해 애플리케이션 적용 및 보안에 효과적이게 구현이 가능하다.
|
IPv4 |
IPv6 |
주소 |
32bit(4byte) 네트워크 부분+호스트 부분 |
128bit(16byte) 네트워크 부분(64bit)+호스트 부분(64bit) |
주소 형태 |
nnn.nnn.nnn.nnn (단, 0 <=nnn <=255) |
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx (단, x는 16진수) |
주소 접두부 |
종종 호스트 부분으로부터 네트워크를 지정하는데 사용 종종 /nn 접미부로 사용 |
주소의 서브넷 사용함 인쇄 형태 다음에 /nnn(최대 3자리 십진수, 0 <= nnn <= 128) 접미부로 사용 |
ARP (Address Resolution Protocol) |
ARP(Address Resolution Protocol)를 사용하여 IPv4 주소와 연관된 MAC 또는 링크 주소와 같은 물리적 주소를 찾음 |
ICMPv6(Internet Control Message Protocol version 6)을 사용하여 상태 없는 자동 구성 및 인접 노드 발견을 위한 알고리즘의 일부로서 IP 자체 내에 이러한 기능을 내장시킴 |
LAN 연결 |
IP 인터페이스에서 물리적 네트워크에 도달하기 위해 사용함 |
모든 이더넷 어댑터와 함께 사용할 수 있으며 논리 파티션 사이에서 가상 이더넷을 통해 지원됨 |
루프백 주소 |
노드가 자기 자신에게 패킷을 송신하는 데에만 사용될 수 있으며 주소가 127.*.*.*(일반적으로 127.0.0.1)인 인터페이스 |
단일 루프백 주소는 0000:0000:0000:0000:0000:0000:0000:0001 또는::1 |
- 32자리 이진수로 구성되어 있다. 또 이 주소는 보통 십진수로 표현되기도 하는데 중간에 점 세 개를 찍어서 4개의 자리로 표시된다.
- IANA(ICANN)에서 총괄적으로 IP를 관리하며 ISP업체에 분배한다.
- IP 주소는 Network 부분과 Host 부분으로 구분된다.
- 하나의 네트워크란 L3 장비(Router)를 거치지 않고 통신이 가능한 하나의 Broadcast Domain을 의미한다. 다른 네트워크와 통신하기 위해서는 라우터를 거쳐야 한다.
- 동일 네트워크에서는 Network 부분은 모두 같고 Host 부분이 모두 달라야 한다.
- IPv4는 5개의 클래스를 가지며 주로 상위 3개의 클래스를 사용한다.
- 각 클래스를 구분하는 방법은 IPv4 주소의 앞 3개의 숫자로 구분한다.
- 컴퓨터의 네트워크 입출력 기능을 시험하기 위하여 가상으로 할당한 인터넷 주소(127.0.0.1)이다.
- 실제로는 외부 네트워크에 연결되어 있지 않는 소프트웨어적 입출력 주소로서 이 주소로 발송된 데이터들은 되돌아서 다시 이 주소로 수신된 것처럼 동작한다.
- 웹 서버나 인터넷 소프트웨어의 네트워크 동작 기능을 시험하는데 사용된다. 따라서 Loopback IP는 일반 IP주소로 사용될 수 없다.
1.2 Subnet Mask
- 서브넷 마스크는 클래식한 기존의 네트워크를 서브넷으로 나누어 주기 위한 기법이다.
- IP 주소를 Network ID(고정된 bit)와 Host ID(고정되지 않은 bit)로 구분해주는 역할을 한다.
- 총 네트워크 범위에서 Network field에 ‘1’을 할당하고 Host field에 ‘0’을 할당한 값이다.
- IP 주소와 Subnet mask를 AND 연산하면값은 구할 수 있다.
- 네트워크를 할당받으면부분은 사용자 마음대로 사용 가능하다.
1.2.2 IP주소에 따른 Default Subnet Mask
- 더 잘게 나누어 IP를 효율적으로 사용하고 브로드 캐스트를 줄이기 위해 사용한다.
- 기본 A, B, C 클래스에서 존재하는 호스트 주소의 일부를 네트워크 주소의 일부로 사용하여 네트워크 주소를 세분화하기 위해 사용한다.
- 서브넷 마스크는 중간에 ‘0’이 올 수 없다. (‘1’의 연속)
- 32bit 중 A 클래스는 8bit, B 클래스는 16bit, C 클래스는 24bit가 정해진다.
1.2.4.1 [응용1] Subnet Mask를 구해보자.
1) 주어진 IP를 2진수의 숫자로 변환한다.
2) 클래스에 맞는 서브넷 마스크를 구한다.
3) 2진수로 바꾼 IP와 서브넷 마스크 주소를 AND 논리 연산 후 십진수로 변경한다.
- 서브넷팅이란 서브넷 마스크를 이용하여 네트워크를 여러 서브 네트워크로 쪼개는 기술을 말한다. IPv4 주소가 점점 없어짐에 따라 남은 IP 주소를 최소화하기 위하여 서브넷팅의 정도가 점점 정교해졌다.
- IP를 효율적으로 낭비 없이 분배하고 Broadcast Domain의 크기를 작게 나눠주는 것이다.
- Network ID와 Broadcast ID의 주소인 각 Subnet의 첫 번째(Host부분이 전부 0)와 마지막(Host 부분이 전부 1) IP 주소는 사용하지 않는다.
- 서브넷팅으로 나눠진 Network는 이제 다른 Network이기 때문에 라우터를 통해야만 통신이 가능하다.
- 주어진 Host의 숫자 ≥2h-2
- 주어진 Network의 숫자 ≥2n
1.2.5.1 [응용 2]응용2] 2개의 Network로 서브넷팅 하시오.
1.2.5.2 [응용3] 60개의 Host를 이용하여 Network로 서브넷팅 하시오.
1.3 DNS (Domain Name System)
- 인터넷 상에서 서버 역할을 하는 컴퓨터는 모두 IP주소와 기억하기 쉬운 이중 도메인 네임 (www.abcd.com)을 가지고 있다.
- 원칙적으로 인터넷상의 모든 컴퓨터들은 숫자로 된 IP주소에 의해 서로 구별되며, 실제 접속도 도메인 네임이 아니라 IP주소를 가지고 진행한다.
- 이때 도메인 네임을주소로 바꿔주는 역할을 하는 컴퓨터를 DNS서버라 한다.
- TCP/IP 네트워크에서 사용되는 네임 서비스의 구조이다.
- 도메인이라고 하는 논리적 그룹을 계층적으로 설정할 수 있다. 계층적 이름 구조를 갖는 분산형 데이터 베이스로 구성되고 클라이언트∙서버 모델을 사용한다.
- 예를 들면, 기관별로 com이면 기업체, edu인 경우는 교육기관, go또는 gov인 경우는 정부기관 등으로 나누어져 있다.
- 국가별로도 지정된 알파벳이 있다. 예를 들면, au는 호주, ca는 캐나다, jp는 일본, tw는 대만, uk는 영국, kr은 한국이다.
1.3.2 DNS (Domain Name System) 구성 요소
- DNS는 도메인 네임 스페이스, 네임 서버, 해석기라는 세 가지 요소로 구성된다.
1) 도메인 네임 스페이스 (Domain Name Space)
도메인 네임 스페이스는 트리 구조의 네임 스페이스를 비롯해 데이터에 대한 이름 관련 규칙을 정의한다. DNS 서비스에서 도메인 네임 스페이스의 트리에 연결된 호스트는 자원 레코드(Resource Records)라는 정보 집합체로 표현된다. DNS의 정보 문의 과정은 이 집합체에서 특정 유형의 정보를 얻는 과정이다. 예를 들어, 인터넷에서 특정 도메인 이름을 사용하는 호스트의 IP 주소 자원을 요청하는 질의에 대해 IP 주소를 반환한다.
2) 네임 서버 (Name Server)
네임 서버는 도메인 트리 구조와 트리에 보관된 정보 집합체를 관리하는 프로그램이다. 일반적으로 자신이 관리하는 도메인 공간에 관한 정보를 책임지며, 전체 도메인 구조의 다른 부분 정보를 제공하기 위한 네임 서버 포인터를 가지고 있다.
3) 해석기 (Resolver)
해석기는 네임 서버로부터 클라이언트의 요청 정보를 얻어내는 프로그램이다. 최소 하나 이상의 네임 서버와 접촉하며, 네임 서버의 정보를 이용해 응용 프로그램의 질의에 응답한다. 처음 접촉한 네임 서버에 도메인 정보가 없으면 다른 네임 서버에 접속해 계속 질의한다.
1) 클라이언트(브라우저)에서 /etc/resolv.conf에 지정되어있는 네임서버로 www.abcd.com에 대한 요청을 전달한다.
2) 일반 네임서버는 루트 네임서버의 IP주소를 기록한 ‘hint파일’을 가지고 있는데 이것을 참조하여 루트 네임서버에 www.abcd.com에 대한 요청을 전달한다. 루트 네임서버는 최상위 네임서버들의 네임서버명(NS레코드)과 IP주소(A레코드)를 가지고 잇는데 이를 글루 레코드(glue record)라고 한다. 이 글루 레코드를 네임서버를 참조하라고 응답한다. (루트 네임서버는 전 세계에개뿐이다.)
3) .com 네임서버에는 .com을 최상위 도메인으로 사용하는 도메인들의 글루 레코드를 가지고 있기에 이를 참조하여 www.abcd.com의 네임서버를 참조하라고 응답한다.
4) abcd.com의 네임서버는 abcd.com 도메인에 대한 존(zone)파일을 참조하여 www.abcd.com의 IP주소(A레코드)를 클라이언트가 최초 요청을 한 네임서버로 되돌려준다.
5) 최초 요청을 받은 네임서버는 클라이언트에게 www.abcd.com의 IP주소를 전송한다.
6) DNS서버는 한 번 검색한 결과는 메모리의 캐시에 기록하며, 같은 정보가 요청되면 캐시에 있는 정보를 전송한다.
7) 이 과정에서 캐시에는 유효기간(TTL: Time To Live)이 정해져 있으므로 유효기간이 지난 정보는 캐시에서 삭제된다.
[1] Dual Stack: 하나의 시스템(호스트 또는 라우터)에서 IPv4와 IPv6 프로토콜을 모두 처리하는 기술
[2] Tunneling: 트래픽이 IPv6망에서 인접한 IPv4망을 거쳐서 건너편 IPv6 망으로 통신할 때 IPv4 망에 터널을 만들어 IPv6 패킷을 통과시키는 개념
'와사비크래커 IT Tip > 네트워크' 카테고리의 다른 글
[네트워크] 라우터 (Router) (0) | 2020.08.13 |
---|---|
[네트워크] 스위치 & 브리지 (0) | 2020.08.12 |
[네트워크] 케이블 (0) | 2020.08.12 |
[네트워크] 이더넷 (Ethernet) (0) | 2020.08.11 |
[네트워크] OSI 7 Layer (OSI 7계층) (0) | 2020.08.11 |