[혼자공부하는네트워크] 네트워크 계층

뿌이·2025년 1월 29일
0

네트워크

목록 보기
3/7
post-thumbnail

네트워크 계층의 기능

라우팅: 패킷이 이동할 최적의 경로를 찾음

수신지 : IP주소

수신인 : MAC주소

IP

IP : internet protocol

기능

  • 주소 지정

  • 단편화

  • 식별자 : 패킷에 할당된 번호

  • 플래그 : 세 개의 비트로 구성

첫번째 비트는 사용되지 않음

두번째 비트 : DF 비트

1: IP 단편화 수행하지말라
0: 가능하다
세 번째 비트 (1bit) MF(More Fragment) 비트. 현재의 조각이 마지막이면 0. 뒤따라 오는 조각이 있으면 1.

  • 단편화 오프셋
    초기 데이터에서 몇 번째로 떨어진 패킷인지를 나타냄
    단편화되어 전송되는 패킷들은 수신지에 순서대로 도착하지 않을 수 있음
    수신자가 패킷들을 순서대로 재조합 하려면 단편화된 패킷이 초기 데이터에서 몇 번째에 해당하는 패킷인지 알아야함
  • TTL
    패킷의 수명
    무의미한 패킷이 네트워크상에 지속적으로 남아있는 것을 방지하기 위해 존재
    패킷이 하나의 라우터를 거칠때마다 TTL 이 1씩 감소함

IPv6

다음 헤더

대표적인 확장 헤더

홉 간 옵션
수신지 옵션
라우팅
단편

IPv6의 단편화

단편화 확장 헤더에도 다음 헤더 필드가 있음

단편화 오프셋

전체 메시지에서 현재 단편화된 패킷의 위치

홉 제한

IPv4패킷의 TTL 필드와 비슷

송신지 IP 주소

수신지 IP 주소

ARP

ARP : IP 주소를 통해 MAC주소를 알아내는 프로토콜

동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC주소를 알아낼 수 있음

ARP 동작

ARP 요청

브로드캐스트 메시지 전송 : 확성기를 사용하는거랑 같은 효과

ARP 응답

유니캐스트 메시지 : ARP 응답이라는 ARP 패킷 , 이 메시지를 수신하면 MAC주소를 알게됨

ARP 테이블 갱신

ARP 요청-응답을 통해 알게된 IP 주소와 MAC주소의 연관관계를 ARP 테이블에 저장

ARP 테이블 확인 명령어

Arp -a

다른 네트워크에 속해있을 경우 해당 네트워크 별로 ARP요청-응답이 수행된다.

단편화를 피하는 방법

단편화

전송하고자 하는 패킷의 크기를 MTU 이하의 복수의 패킷으론 나누는 것

단편화 많이 수행되는 것이 좋을까?

NO

불필요한 트래픽 증가와 대역폭 낭비될 수 있으므로 NO

IP단편화를 최대한 피하면서 송신하는 방법

IP 패킷을 주고받는 모든 노드가 IP 단편화 없이 주고받을 수 있는 최대 크기 만큼만 전송해야 한다

IP단편화 없이 주고받을 수 있는 최대 크기 = 경로 MTU

경로 MTU 발견 : 경로 MTU 를 구하고 해당 크기만큼만 보내는 것

실제로 단편화는 자주 일어나지는 않는다..
대부분 DF 비트가 세팅되어있기 때문이다.

IP 주소의 구조와 클래스풀 주소체계

Ip 핵심 기능 : 주소지정

주소 지정은 IP 주소로 이루어짐

IP 주소의 구조

크게 네트워크 주소와 호스트 주소로 구성

네트워크 주소

네트워크를 표현하는 부분
호스트가 속한 특정 네트워크를 식별

호스트 주소

호스트를 표현하는 부분
특정 호스트를 식별

172.16.12.45
IP에서
네트워크 주소 : 172.16
호스트 주소 : 12.45

IP 주소에서 네트워크 주소와 호스트 주소 크기는 각각 어느정도가 적당할까?

네트워크 주소가 하나의 옥텟으로 이루어질 경우
한 네트워크당 호스트 주소 할당에 8비트를 사용할 수 있음
상대적으로 적은 호스트에 IP 주소를 할당

무조건 호스트 주소 공간을 크게 할당하면?

호스트가 할당되지 않은 다수의 IP주소가 낭비

이러한 고민을 해결하기 위해 나온게 IP 클래스 이다.

클래스

네트워크 크기에 따라 IP 주소를 분류하는 기준

클래스풀 주소 체계 : 클래스를 기반으로 IP 주소를 관리하는 주소 체계

필요한 호스트 IP 개수에 따라 클래스를 달리 선택 : 네트워크 크기 조정 가능

많은 호스트 할당이 필요하다면 A 클래스

많은 호스트 할당이 필요없다면? C클래스

A 클래스 : 많은 호스트 할당 가능

C클래스 : 적은 호스트 할당 가능

A 클래스

B와 C클래스에 비해 할당 가능한 호스트 주소의 수가 많음
네트워크 주소는 비트 ‘0’으로 시작하는 1 옥텟, 호스트주소는 3옥텟
가장 처음 옥텟의 주소가 0~127일 경우 A클래스임을 짐작할 수 있음

B클래스

네트워크 주소는 비트‘10’으로 시작하는 2옥텟, 호스트 주소도 2옥텟으로 구성
가장 처음 옥텟의 주소가 128~191일 경우 B클래스 주소임을 짐작할 수 있음

C클래스

네트워크 주소는 비트 ‘110’으로 시작하는 3옥텟, 호스트 주소는 1옥텟으로 구성
클래스풀 주소 체계

호스트 주소 공간을 모두 사용할 수 있는 것은 아님

호스트 주소가 전부 0인 IP 주소
호스트 주소가 전부 1인 IP 주소
그래서 항상 할당 가능한 호스트 수에서 2개를 제외하고 세야함

클래스리스 주소 체계와 서브네팅

클래스풀 주소 체계의 한계

클래스별 네트워크 크기가 고정되어있어 사전에 정해진 크기 외의 다른 크기 네트워크구성 불가능

이러한 단점을 극복하기 위해 나온게 오늘날의 많이 이용되는 클래스리스 주소 체계이다.

클래스리스 주소체계

인터넷 주소를 규격화된 크기별로 구분하는 클래스풀 주소체계와 반대로, IP 주소를 규격화하지 않는 주소체계

서브넷 마스크

클래스 없이 IP 주소의 네트워크 주소, 호스트 주소를 구분하는 수단
IP 주소상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열
네트워크 내 부분적인 네트워크를 구분짓는 비트열

서브네팅

서브넷 마스크를 이용해 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것
서브넷 마스크로 네트워크 주소와 호스트 주소를 구분짓는 방법
서브넷 마스크 표기 : CIDR 표기법

192.168.0.2/25
여기서 /25는 1의 개수가 25인 서브넷 마스크다 라는 뜻이다
1의 개수와 0의 개수는 굳이 손으로 계산할 필요는 없고, 서브넷 계산기를 이용해서 계산하면 됨

공인 IP 주소와 사설 IP 주소

IP주소의 분류

공인 IP 주소
사설 IP 주소

공인 IP 주소

전세계에서 고유한 IP주소

네트워크간의 통신, 이를테면 인터넷을 이용할 때 사용하는 IP 주소

공인 IP 주소는 ISP나 공인 IP 주소 할당

사설 IP주소

사설 네트워크에서 사용하기 위한 IP 주소

사설 IP주소로 사용하도록 특별히 예약된 IP 주소 공간

사설 IP 주소의 할당 주체는 일반적으로 라우터(공유기)

사설IP주소는 호스트가 속한 사설 네트워크에서만 유효한 주소

얼마든지 다른 네트워크상의 사설ip주소와 중복 가능

일반적으로 네트워크간의 통신은 사설 IP주소가 아닌 공인 IP 주소를 통해 이루어짐

그렇다면 사설IP주소를 사용하는 호스트는 어떻게 공인 IP 주소로 변환할까?

NAT (나트)

IP 주소 변환 기술 : 주로 사설 IP 주소(네트워크 내부)와 공인 IP주소(네트워크 외부)를 변환

대부분의 라우터와 가정용 공유기는 NAT 기능 내장

사설 네트워크의 패킷 속 사설 IP 주소는 공유기를 거쳐 공인 IP 주소로 변경
외부 네트워크의 패킷 속 공인 iP 주소는 공유기를 거쳐 사설 IP주소로 변경

공인 ip주소와 사설 IP 주소 확인 방법

Window : ipconfig

Mac os : ifconfig

만일 10.0.0.0/8 , 172.16.0.0/12, 192.168.0.0/16 중 하나가 보인다면 사설 IP주소임

공인 IP 주소 확인 방법

네이버 검색창에 내 IP 주소 를 검색하면 공인 IP주소를 알 수 있다.

정적 IP 주소 동적 IP 주소

정적 IP 주소와 동적 IP 주소

정적 할당

호스트에 수작업으로 IP 주소를 부여하는 방식

정적 IP 주소 부여 방법

윈도우나 맥 OS 등의 네트워크 설정에서 IP주소를 수동으로 설정

일반적으로 부여하고자 하는 IP주소, 서브넷 마스크, 게이트웨이(라우터)주소, DNS 주소(공개된 DNS 서버 주소)를 적음

기본 게이트웨이

서로 다른 네트워크를 연결하는 하드웨어적/소프트웨어적 수단

모든 IP 주소를 정적으로 할당할 수 있을까요?

ㄴㄴ

호스트의 수가 많아질 경우 관리곤란

동적할당

호스트에 IP주소를 프로토콜을 활용해 자동으로 IP주소를 할당하는 방식

DHCP를 통한 IP 주소 할당

클라이언트와 DHCP 서버 간 메시지 송수신을 통해 할당이 이루어짐

클라이언트 : IP 주소를 할당받고자 하는 호스트
Dhcp 서버 : 호스트에게 IP 주소를 제공하는 호스트
DHCP로 할당받은 동적 IP주소는 사용할 기간(임대기간)이 정해져 있다

IP 주소 할당 과정에서 주고받는 메시지

  1. DHCP Discover(클라이언트 -> DHCP 서버)
    DHCP 서버 찾는 메시지
  2. DHCP Offer(DHCP서버 -> 클라이언트)
  3. DHCP Request
  4. DHCP ACK(DHCP서버 -> 클라이언트)
    최종 승인과 같은 메시지
    DHCP ACK 메시지를 클라이언트는 이제 할당받은 IP 주소를 자신의 IP 주소로 설정 후 임대기간 동안 IP 주소 사용

임대기간이 끝나면 임대갱신을 통해 기본적으로 2차례 연장을 진행하고, 자동 임대 갱신이 모두 실패하면 그때 IP 주소 반납

127.0.0.1과 0.0.0.0

예약주소

특수한 목적을 위해 예약된 IP 주소

  • 사설 네트워크
  • 127.0.0.1 : 자기자신을 가리키는 특별한 주소 ( localhost)
  • 0.0.0.0/8
    호스트가 IP주소를 할당받기 전에 임시로 할당되는 IP 주소
    특별히 지칭할 IP주소가 없을 때 사용되는 IP 주소
  • 0.0.0.0/0
    모든 임의의 IP 주소
    주로 라우티에서 디폴트 라우트를 나타내기 위해 사용
    디폴트 라우트 : 패킷을 어떤 IP 주소로 전달할 지 결정하기 어려울 경우 기본적으로 패킷을 전달할 경로
    0.0.0.0/8과 유사하지만 다른 의미를 가짐

라우팅 테이블

LAN 을 넘어 통신하기

데이터 링크 계층의 한계

라우터

네트워크 간 통신을 가능케하는 네트워크 계층의 장비

라우팅 과정(홉 수) 확인 방법

윈도우 : tracert www.google.com

맥 OS : traceroute www.google.com

라우터는 라우팅을 어떻게 수행할까?

라우팅은 라우팅테이블을 이용해서 어디로 패킷을 보낼지 결정하게 됨

라우팅 테이블

라우팅 테이블에 포함된 정보

수신지 IP주소와 서브넷 마스크
다음 홉 : 최종 수신지까지 가기위해 다음으로 거쳐가야할 호스트의 IP나 인터페이스
네트워크 인터페이스 : 패킷을 내보낼 통로
메트릭: 해당 경로로 이동하는 데에 드는 비용, 라우팅 테이블의 여러 경로 중 메트릭이 낮은 경로를 선호
디폴트 라우트 : 라우팅 테이블에 경로가 없을 때
기본적으로 패킷을 내보낼 경로
모든 IP 주소를 의미하는 0.0.0.0/0으로 명시
일반적으로 기본 게이트웨이 주소 = 디폴트 라우트
네트워크 외부로 나아가기 위한 첫 경로, 일반적으로 라우터/공유기 주소

라우팅 테이블 확인하는법

윈도우 : route print

Mac os : -netstat -rn

실제 라우팅테이블 내부의 라우터를 확인해보는 방법

Show ip route

홉 : 데이터 패킷이 출발지에서 목적지로 이동하는 과정에서 거치는 네트워크 장비(주로 라우터)의 횟수

라우팅의 분류와 라우팅 프로토콜

정적 라우팅

사용자가 수동으로 직접 채워 넣은 라우팅 테이블의항목을 토대로 라우팅

동적 라우팅

네트워크의 규모가 커지고 관리해야할 라우터가 늘어나면 정적 라우팅만으로는 관리가힘듦

입력 실수가 발생할 수 있음
입력실수가 없어도 라우팅 경로상에 예상치 못한 문제가 발생할 경우 경로 우회가 어려움
자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅

라우팅 프로토콜 이용

동적 라우팅을 하면 라우팅 테이블 항목이 수시로 변할 수 있음

라우터들의 집단 네트워크, AS

동적라우팅과 라우팅 프로토콜을 이해하기 위한 배경 지식

한 회사나 단체에서 관리하는 라우터 집단

As가 라우터의 집단이기 때문에 AS안에서만 통신할 수도 있고 AS밖에서도 통신이 가능함

라우팅 프로토콜

라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기위한 프로토콜

라우팅 프로토콜의 종류

IGP : AS 내부에서 수행

  • RIP : 거리 벡터 기반 라우팅 프로토콜
    ‘거리’는 패킷이 경유한 라우터의 수, 즉 홉의 수를 의미
    특정 수신지까지 도달하기위해 ‘홉 수가 가장 적은 경로’를 최적의 경로라고 판단
    홉 수가 적을 수록 라우팅 테이블 상의 메트릭 값도 적어짐
  • OSPF : 링크상태 기반 라우팅 프로토콜
    현재 네트워크 구성을 마치 지도처럼 그린 뒤, 최적의 경로를 선택
    현재 네트워크의 상태를 그래프의 형태로 저장

EGP : BGP

AS간의 통신에서 사용되는 대표적인 프로토콜
엄밀하게는 AS간의 통신이 가능한 프로토콜
BGP는 RIP와 OSPF에 비해 최적의 경로를

결정하는 과정이 복잡하고, 일정하지 않은 경우가 많음

BGP 속성

  1. AS-PATH 속성
    BGP는 RIP처럼 단순 거리가 아닌 어디를 거쳐 어디로 이동하는지 나타내는 경로를 고려
  2. NEXT-HOP 속성
    홉, 다음으로 거칠 라우터의 IP 주소
    As1 -> AS2 경로의 NEXT-HOP :
  3. LOCAL-PREF 속성
    LOCAL PREFerence의 약자, 지역 선호도
    AS 외부 경로 선택에 있어 AS 내부에서 어떤 경로를 선호할지에 대한 척도
    일반적으로 AS-PATH나 NEXT-HOP보다 우선시
    LOCAL-PREF 값은 s 관리주체가 설정하는 정책의 영향을 받음

정책
As관리 주체에 따라 각기 다른 상이한 정책 사용 가능

profile
기록이 쌓이면 지식이 된다.

0개의 댓글

관련 채용 정보