Section 01. 네트워크 분할

01. 서브넷 마스크의 특징

효율적인 주소 활용을 위해 조직의 규모에 따라 하나의 클래스를 여러 개의 서브넷으로 분할한다.

서브넷 마스크: IP 주소에서 특정 정보를 추출하기 위한 장치

  • 보통 네트워크 주소 부분을 1로, 호스트 주소 부분을 0으로 한다.
  • AND 연산을 통해 IP 주소 중에서 네트워크 주소만을 추출할 수 있다.

특성상 앞에서부터 1이 연달아 나타나는 형태가 된다.

→ IP 주소 옆에 1의 개수를 써주면 간단하게 서브넷 마스크 표현 가능

02. 네트워크 분할 방법

하나의 네트워크 안에서는 네트워크 주소가 고정되어 있고, 호스트 별로 호스트 주소가 다르게 표시된다. 이때 호스트 주소의 맨 앞부터 네트워크 주소처럼 고정되는 비트를 추가하면서 분할한다.

A, B 회사는 C 클래스로 8bit를 호스트 주소로 사용한다. 이때, 두 회사는 총 256개의 호스트를 가질 수 있는 C 클래스를 128개씩 사용할 수 있도록 네트워크를 분할하려고 한다.

2개로 분할하는 경우이기 때문에 log22=1log_2{2} = 1, 즉 하나의 비트로 분할한다.

각 회사의 호스트 주소의 가장 첫 번째 주소를 0, 혹은 1로 고정하고 남은 7bit는 호스트 주소가 된다,

분할하며 고정되는 비트는 네트워크 주소가 되어 총 25bit를 네트워크 주소로 사용한다. 따라서, 서브넷 마스크를 표기할 때는 /25 라고 표기한다.

03. 서브넷 분할 원리

네트워크 주소를 나타내는 1의 개수가 늘어날 때마다 2의 지수승으로 네트워크를 분할한다.

  1. B 클래스

  2. C 클래스

네트워크가 짝수로만 만들어지는 것은 아니고, 분할을 여러 번 사용하면 홀수 개의 서브넷도 만들 수 있다.

Section 02. 주소 변환 관련 프로토콜

01. 주소 변환의 필요성

IP 주소는 인터넷에서 목적지 LAN까지 도달하기 위해 필요한 주소이다.

IP 주소를 통해 LAN에 도착하면 그 내부에서 호스트를 찾거나, IP 주소로 LAN 내부에서 통신을 할 경우, MAC 주소를 알아야 한다.

02. 주소 변환 프로토콜 - ARP

ARP(Address Resolution Protocol): 주소변환 서버 없이도 IP 주소를 MAC 주소로 바꾸는 프로토콜

- ARP 방식

  1. 특정 IP의 MAC 주소를 알고 싶은 호스트는 LAN 전체에 브로드캐스팅한다.
  2. 질문을 받은 호스트 중 해당 IP를 가진 노드는 자신의 MAC 주소를 알려준다.
  3. 이때 각 호스트들은 획득한 ARP 정보를 캐시(cache)에 보관한다.

ARP가 가지고 있는 캐시 데이터 확인 → cmd에 arp -a 라고 검색

  • 아래 컴퓨터는 192.168.0.1, 192.168.0.5, 192.168.0.6에 대한 MAC 주소 저장
  • 192.168.0.255는 브로드캐스트 주소

- IP 충돌 처리

예를 들어, IP 주소를 228.255.75.7로 변경할 경우, IP를 사용하기 전 LAN 전체에 해당 IP 주소의 MAC 주소가 무엇인지 ARP 메시지를 보낸다.

  • 이때, 응답하는 호스트가 있다면 IP 주소가 충돌한 것이다. (이미 사용하고 있는 호스트가 존재함) → 양쪽의 컴퓨터에 경고 메시지 출력 → 먼저 사용하고 있던 호스트에게 우선권 부여
  • 응답이 없다면 충돌이 없는 것이다. (사용하고 있는 호스트가 존재하지 않는 것) → 캐시를 갱신하도록 자신의 IP 주소와 MAC 주소를 전체에게 브로드캐스트 ⇒ GARP (Gratuitous ARP) 사용. 응답이 필요 없는 ARP.

03. 역주소 변환 프로토콜 - RARP와 BOOTP

RARP(Reverse ARP): 연산능력이나 저장장치가 없는 더미 터미널(단말기)이 IP 주소를 얻기 위해 사용하는 프로토콜

  • MAC 주소로부터 IP 주소를 얻는 프로토콜

  • RARP는 LAN에서만 브로드캐스트 메시지가 전파되기 때문에 LAN에서만 사용할 수 있고, 라우터를 넘어서 메시지를 전송할 수 없다는 단점이 존재한다.
  • BOOTP(bootstrap protocol): 부트스트랩 프로토콜. 라우터를 넘어서 주소변환을 할 수 있도록 만든 프로토콜.
    • UDP라고 불리는 전송계층 프로토콜 사용 (라우터를 넘어 전달할 수 있는 이유)

04. 유동 호스트 설정 프로토콜 - DHCP

DHCP(Dynamic Host Configuration Protocol): 고정 IP 방식의 문제점을 보완하기 위해, 컴퓨터가 부팅할 때 유동적으로 IP 주소, 서브넷 마스크, 게이트웨이, DNS 주소를 자동으로 설정하는 프로토콜

  • 고정 IP 방식은 모든 호스트의 IP 주소와 관련 값(서브넷 마스크, 게이트웨이, DNS 주소)를 일일이 수동으로 설정해야 한다는 문제점이 있다.
  • 메시지 전체에게 브로드캐스트하면 DHCP 서버가 사용하지 않는 주소와 서브넷 마스크, 게이트웨이 주소, DNS 주소를 해당 컴퓨터에 전달한다. (BOOTP와 유사)

05. 주소관련 프로토콜의 특징 요약

Section 03. 기타 네트워크 계층 프로토콜

01. 네트워크 관리 프로토콜

ICMP(Internet Control Message Protocol): 감시와 메시지 전송에 사용

ICMP를 직접 경험할 수 있는 방법

  • ping 명령어 다음 IP 주소를 작성하면 해당 호스트에 패킷을 보내고, 해당 호스트는 ping에 대한 답신(replay) 메시지를 보낸다.

    • ping은 호스트가 살았는지, 죽었는지, 서버까지 패킷이 오고 가는데 걸리는 시간을 알 수 있다.

    • Echo request: ping 명령어에서 호스트까지 메시지를 보내는 것

    • Echo reply: Echo request에 대한 응답

  • tracert 명령어는 해당 호스트까지 가는 경로를 추적한다.

    • trace route: tracert 명령어를 사용했을 때, 패킷이 어떤 라우터를 거쳐 목적지까지 도달하는지에 대한 경로를 알려준다. (라우팅 경로 추적)
  • destination unreachable: 도달 불가. 패킷이 목적지 주소를 찾지 못할 때

  • time exceeded: 패킷의 TTL이 0이 되는 경우 발생

  • redirect: 패킷의 경로가 잘못 설정 되었다고 판단될 때

profile
가보자고! 🔥

0개의 댓글