네트워크 교실 3장. IP 어드레싱

sanghee·2021년 12월 1일
0
post-thumbnail

이 글은 네트워크 교실(아미노 에이지 지음)을 읽고 간단하게 정리한 글입니다. 책에 친절한 설명과 관련 그림이 있으므로 직접 사서 읽기를 추천합니다.

3장. IP 어드레싱

19. 3계층의 역할과 개요

1계층, 2계층 정리

1계층은 케이블이 연결되어 있는 상대에 대한 신호 전달에 대한 것이며 2계층은 세그먼트 내에서 어떻게 데이터를 주고받는지에 관한 것이다.

세그먼트

세그먼트란 범위는 이전에 살펴본 것처럼 다음과 같다. 간단히 말하면 라우터와 라우터 간의 범위라고 생각하면 된다. 이 범위에서 2계층은 데이터를 송수신하였다.

멀티엑세스 네트워크에서 세그먼트 범위

포인트 투 포인트 네트워크에서 세그먼트 범위

포인트 투 포인트 네트워크라면 컴퓨터와 라우터 혹은 라우터와 라우터 사이를 의미한다.


3계층

2계층이 세그먼트 내에서 데이터를 송수신한 것과 달리, 3계층은 세그먼트 간의 데이터 송수신을 담당한다.

네트워크

3계층에서는 세그먼트라는 용어 대신 네트워크를 사용한다.

네트워크 내의 컴퓨터끼리는 2계층에 의해 연결되어 있다. 더 큰 네트워크를 구성하기 위해서는 네트워크끼리 연결하는 3계층이 필요하다.

컴퓨터 수 증가 → 브로드캐스트 증가 → 처리 증가 → 효율 감소

이전에 살펴본 것처럼, 송신하는 pc는 허브로 연결된 모든 pc에게 신호(브로드캐스트)를 전달한다. 이런 플러딩(flooding)으로 인해 신호끼리 충돌이 발생하기 쉽다. 스위치를 사용하면 충돌이 발생하지 않지만 근본적인 문제는 해결되지 않는다. 만약 더 큰 네트워크를 구성하기 위해 컴퓨터 수를 늘리게 되면, 해당 신호를 처리하는 횟수가 증가하므로 효율이 더 떨어진다.

3계층의 문제 해결

그래서 3계층에서는 라우터를 넘어서는 브로드캐스트는 송신하지 않는다. 각각의 네트워크에서만 브로드캐스트가 도달한다.

Internet(Internetwork)

네트워크 간의 데이터 송수신을 인터넷이라고 부른다. 우리가 알고 있는 인터넷이 아니라 네트워크 간의 데이터 전송이라는 의미로 쓰이는 용어이다.

20. 인터넷 프로토콜

주소 == 2계층 주소(컴퓨터 정보) + 3계층 주소(어느 네트워크, 어느 컴퓨터)

2계층에서는 MAC주소(제조업체 번호 + 제조업체가 붙인 번호)를 사용하여 장소를 특정하였다.

3계층에서는 네트워크 사이의 송수신이므로, 어느 네트워크에 어떤 컴퓨터인지에 대한 주소가 필요하다.

물리 주소, 논리 주소

2계층 주소를 물리 주소, 3계층 주소를 논리 주소라고 부른다.

라우팅(Routing)

Route란 경로라는 뜻이다. 따라서 라우팅(Route + ing)이란 경로 선택이라고 생각하면 된다. 송신처에서 수신처까지 어떤 경로로 갈 지를 결정한다. 예를 들어 수신처가 X라면 네트워크 A → 네트워크 C → 네트워크 X의 경로로 이동할 수 있겠다.

라우터(Router)

이러한 라우팅을 행하는 기계를 라우터(Router)라고 부른다.

TCP/IP의 IP(Internet Protocol)

IP는 인터넷 작업 프로토콜을 의미한다. 인터넷이란 네트워크 끼리의 송수신이라고 말했다.

IPv4, IPv6

IP에는 버전4과 버전6이 존재한다. 일반적으로 옛 버전인 IPv4를 사용한다.

IP 데이터그램(Datagram) == IP 헤더 + PDU(Protocol Data Unit)

IP 데이터그램이란 3계층에서 PDU에 IP 헤더를 추가한 상태를 의미한다. IP 헤더에는 여러 정보들이 있다. 가장 중요한 것은 송신처와 수신처의 IP 주소이다.

IP 주소

IP 주소라는 건 IP라는 프로토콜에서 정해진 논리 주소, 즉 네트워크 주소를 의미한다.

21. IP 주소 1

계층형 주소

C의 주소를 A에 있는 B에 있는 C와 같이 표현한다면, 계층형 주소라고 말한다. IP 주소는 계층형 주소이며 반대로 MAC 주소는 평면형 주소이다.

IP 주소(논리 주소)

IP 주소는 계층형 주소이다. 네트워크 관리자가 컴퓨터에 할당한다. 네트워크에 접속할 때마다 붙인다. 소속된 네트워크가 변경되면 논리 주소도 바뀐다.

MAC 주소와의 차이

MAC 주소는 IEEE가 붙인 벤더 코드와 벤더가 붙인 할당 코드로 이루어져 있다. 사용하는 쪽에서는 변경이 불가능하며 인터페이스에 고정된 주소이므로 인터페이스가 교환하면 변경된다.

3계층 주소

MAC 주소와 같이 논리 주소에도 유니캐스트, 멀티캐스트, 브로드캐스트의 3종류 주소가 있다. 유니캐스트 주소의 논리 주소 중 네트워크를 표시하는 번호는 접속되어 있는 모든 네트워크에서 유일해야 한다. 또한 컴퓨터 번호는 소속된 네트워크 내에서 유일해야 한다.

네트워크에서 유일한 주소

서로 다른 네트워크 A와 네트워크 A가 연결되어 있지 않다면 번호가 같아도 상관없다.

네트워크 A와 네트워크 B가 연결되어 있고, 네트워크 A의 컴퓨터 a와 네트워크 B의 컴퓨터 a가 있다고 하자. 소속되어있는 네트워크가 다르므로 컴퓨터 번호가 같더라도 괜찮다.

IP 주소, 3.37.75.75

IP 주소는 MAC 주소(48비트)와 달리 32비트이다. 8비트마다 10진수로 표기하고, 그 사이에 점(옥텟, Octet)을 찍는다. 이 주소가 클래스에 의해 네트워크 번호와 컴퓨터 번호로 나타낸다.

22. IP 주소 2

ICANN(The Internet Corporation for Assigned Names and Number)

ICANN이라는 조직은 IP 주소를 관리하는 단체이다. IP 주소를 실제로 사용하는 인터넷 사업자나 기업 등에 클래스에 따라 할당한다.

클래스

클래스는 A~E까지 5단계로 이루어져 있다. 주로 A, B, C단계를 할당한다.

클래스 A, B, C 특징

클래스 A는 제1옥텟, 클래스 B는 제1~2옥텟, 클래스 C는 제1~3옥텟을 네트워크 번호로 사용한다.

따라서 클래스 A는 네트워크 번호로 제1옥텟(8비트)만 사용하므로 제2~4옥텟을 컴퓨터 번호로 할당할 수 있다. 즉 많은 컴퓨터를 소유할 수 있다.

클래스 A는 정부나 기관, 대기업과 같이 규모가 큰 곳에서 사용된다.

클래스풀 어드레싱(Classfull Addressing)

이처럼 클래스로 나눠어 IP 주소를 할당하는 방식을 의미한다.

호스트(Host) 번호

호스트란 컴퓨터 등 통신의 주체가 되는 기기를 가리킨다. 호스트 번호란 IP 주소에서 네트워크 번호를 제외한 컴퓨터 번호를 의미한다.

3.37.75.0 또는 3.37.75.255

클래스 C의 경우, 제4옥텟이 호스트 번호로 사용된다. 3.37.75.0처럼 호스트 번호가 전부 0으로 이루어져 있다면 네트워크 자체를 나타낸다.

반대로 전부 1로 이루어져 있는 3.37.75.255와 같은 경우는 브로드캐스트 주소(전체가 수신하는 주소)를 의미한다.

23. 서브네팅

서브네트워크(Subnetwork) 혹은 서브넷(Subnet)

주소를 나타낼 때 커다란 네트워크를 몇 개의 네트워크로 작게 분할하여 표현한다. 이때 분할된 작은 네트워크를 서브네트워크라고 한다.

호스트 번호 => 서브넷 번호 + 호스트 번호

이전에 IP주소는 네트워크 번호와 호스트 번호로 이루어져 있다고 하였다. 이 호스트 번호의 일부를 나눠 서브넷 번호로 활용한다. 서브넷 숫자를 크게 하면 표현할 수 있는 호스트 수는 감소한다.

서브네팅(Subnetting)

이렇게 네트워크를 서브넷화하는 것을 의미한다.

서브넷마스크(Subnetmask)

그러면 호스트번호의 어디까지를 서브넷 번호로 사용할까? 이 정보를 서브넷마스크로 나타낸다.

B클래스의 255.255.252.0

예를 들어 B클래스인 경우 제1~2옥텟은 네트워크 부분이며 제3~4옥텟은 호스트 부분이다. 각 옥텟은 8비트로 이루어져 있다. 만약 서브넷 번호로 6비트를 사용한다면, 서브넷 마스크는 위의 비트를 10진수로 표시한 255.255.252.0으로 표현한다.

24. 클래스리스 어드레싱

클래스리스 어드레싱(Classless Addressing)

지금은 위에서 살펴본 클래스풀 어드레싱을 사용하지 않는다. 크기를 A, B, C로만 구분하니까 낭비가 심하다. 예를 들어 1000개의 IP주소가 필요한 경우, B클래스를 사용해야 하는데, 약 6만개의 주소가 낭비된다.

그래서 클래스라는 구분을 없앤 어드래싱이 바로 클래스리스 어드레싱이다.

슈퍼넷(Super Network)

호스트 번호로 10비트가 필요하다면 네트워크 번호로 32-10인 22비트를 할당할 수 있다. 또는 클래스C의 네트워크 4개(8비트 4개, 10비트)를 모아서 큰 네트워크로 만들 수도 있다. 이것을 슈퍼넷이라고 부른다.

프리픽스 길이(Prefix-Length) 3.37.75.0/22

Prefix 길이란, 네트워크 번호의 길이값을 나타내는 값이다. 위의 경우 네트워크 길이는 22비트이므로 프리픽스 길이인 22를 붙여 3.37.75.0/22 로 표현할 수 있다.

25. DHCP

IP 데이터그램을 위한 4가지 주소

이더넷을 사용해서 IP 데이터그램(IP 헤더 + PDU)을 송수신하기 위해서는 수신처와 송신처의 각각 MAC 주소와 IP 주소가 필요하다.

DHCP(Dynamic Host Configuration Protocol)

네트워크 관리자가 IP 주소를 정할 수도 있지만, 동적으로 IP 주소가 컴퓨터에 설정되는 방법도 있다. 이것을 DHCP라는 프로토콜이라고 한다.

DHCP 상세

DHCP는 할당된 IP 주소를 관리하고, 실제로 할당 작업을 수행하는 서버(Server)와 클라이언트(Client)로 이루어진다. 클라이언트가 IP 주소를 요청하면 서버는 사용되고 있지 않은 IP 주소를 찾아 할당한다.

IP 주소 풀

관리자가 할당할 수 있는 주소 범위를 의미한다. 예를 들어 3.37.75.0/22 인 경우 호스트 번호는 32비트에서 프리픽스 길이(네트워크 길이) 22를 뺀 10비트를 사용하므로 2의 10승에서 주소로 할당하지 못하는 2를 뺀 값(전체가 0이어서 네트워크 자체를 나타내거나 전체가 1이어서 전체 호스트를 나타내는 특별한 경우)만큼의 IP 주소를 만들 수 있다.

IP 주소 대여 기간

만약에 클라이언트가 IP 주소를 너무 오랫동안 사용하거나 사용하는 도중에 고장났다면 어떡할까? 그러면 서버는 해당 IP 주소가 계속해서 사용중이라고 판단해 해당 주소를 더이상 사용할 수 없게 될 것이다. 이 문제를 해결하기 위해서, 우리는 할당하기 보다는 대여해준다. 클라이언트가 계속해서 사용하고 싶다면 대여 기간을 연장한다.

DHCP 메세지

PDU(Protocol Data Unit)에는 이더넷 헤더, IP 헤더, UDP 헤더 뿐만 아니라 DHCP 메세지도 붙는다. DHCP 메세지에는 클라이언트나 서버의 IP 주소 정보를 가지고 있다. 또한 중요한 옵션 정보를 가지고 있다.

DHCP 메세지의 옵션 정보

옵션 정보에는 메시지타입과 클라이언트 설정, 서버 주소 및 대여 기간 등이 있다.

DHCP 동작

클라이언트와 서버 간에 브로드캐스트를 사용해서 DISCOVER, OFFER, REQUEST, ACK 4종류의 메세지를 주고받는다. 클라이언트는 자기가 어느 네트워크에 속해 있는지, 누구에게 메세지를 보내면 좋을지 모르기 때문에 전체수신으로 보낸다.

26. ARP

데이터 통신에 필요한 4가지 주소 순서

  1. 송신처의 MAC 주소 → 송신할 인터페이스에 고정된 주소를 사용한다.
  2. 송신처의 IP 주소 → 송신할 인터페이스에 수동이나 DHCP에서 설정된 주소를 사용한다.
  3. 수신처의 IP 주소
  4. 수신처의 MAC 주소

ARP(Address Resolution Protocol)

주소 해결 프로토콜이라고 한다. 수신처의 해당 IP 주소에 해당하는 MAC 주소를 질문한다.

ARP 테이블

ARP 테이블을 활용하여 IP 주소에 대응하는 MAC 주소를 얻는다. 대응하는 정보가 없다면 브로드캐스트로 ARP 요청을 하여 MAC 주소를 얻는다.

ARP 테이블 정보 파기

ARP 테이블의 정보는 일정 시간(300초)가 경과하면 파기한다. 인터페이스를 교환한다면 MAC 주소가 바뀌며, 그러면 IP 주소가 달라 데이터가 도달하지 않을 수 있기 때문이다.

27. DNS

도메인 명(Domain Name)

도메인 명이란 송신할 상대의 컴퓨터 이름을 의미한다. 영문과 숫자로 구성된다. http:// 뒤에 오는 문자열이 그 예시이다. IP 주소는 숫자로 구성되어 있어 다루기 힘들기에 문자열로 다룬다.

ICANN

도메인 명은 유일해야 하므로 IP 주소와 마찬가지로 ICANN이 관리하고 있다.

DNS(Domain Name System)

DNS란 도메인 명과 IP 주소를 대응시킨 시스템이다. 도메인 명과 IP 주소의 대응 데이터베이스를 갖고 있는 DNS 서버에 문의해서 수신처의 IP 주소를 얻는다.

현재 인터넷

현재 인터넷은 모두가 도메인 명으로 서비스를 하도록 되어 있다.

profile
👩‍💻

0개의 댓글