본문 바로가기
Network/컴퓨터 네트워킹 하향식 접근

[컴퓨터 네트워킹 하향식 접근] 4. 네트워크 계층

by creatingeveryday 2023. 2. 18.
네트워크 계층의 목적은?

 

  • 네트워크 계층의 책임
    • 네트워크 계층은 호스트 사이의 통신 서비스를 제공한다.
    • 호스트는 IP 주소로 구별할 수 있다.
    • IP 프로토콜은 트랜스포트 계층의 segment를 전달받아 IP 헤더를 붙여서 datagram(IP 계층의 패킷을 지칭)을 만들고 데이터 링크 계층으로 전달한다.
    • 라우팅
      • 출발지부터 목적지까지의 길을 설정해 주는 것
      • 라우팅 알고리즘은 라우터의 포워딩 테이블을 생성하는 정보를 제공한다.
    • 포워딩
      • 결정되어 있는 라우터를 따라서 패킷을 옮겨주는 것
      • 경로 이동시 라우터의 포워딩 테이블이 안내한다.
      • 목적지 기반 포워딩
      • 일반화된 포워딩
  • 라우터
    • 구조
      • 입력포트
        • input queue(버퍼)
        • HOL blocking 현상
      • 출력포트
        • 대기 큐
      • 스위칭
        • 입력 포트와 출력 포트를 연결한다.
      • 라우팅 프로세서
        • 라우팅 프로세서는 control plane 영역 기능을 수행.
        • 기존의 라우터에서는 라우팅 프로토콜을 실행하고 라우팅 테이블과 연결된 링크 상태 정보를 유지 관리하며 라우터의 포워딩 테이블을 계산한다.
        • SDN 라우터에서 라우팅 프로세서는 원격 컨트롤러와 통신하여 원격 컨트롤러에서 계산된 포워딩 테이블 엔트리를 수신하고 라우터의 입력포트에 이러한 엔트리를 설치한다.
        • 네트워크 관리 기능 수행
  • 인터넷 프로토콜 (IP)
    • IPv4, IPv6
    • IP 헤더
      • TTL(Time To Live)
        • 데이터그램이 목적지에 도착하지 못했을 경우 네트워크 내에서 떠돌아다니는 것을 방지하기 위하여 설정이다. 목적지까지 거쳐갈 수 있는 최대 라우터 개수를 의미한다.
      • checksum
      • 출발지와 목적지 IP 주소
    • 주소 체계
      • IPv4
        • 32bit 길이의 식별자를 할당
        • 사람이 보기 쉽게 8bit 단위로 나누고 십진수로 바꾸고 점을 찍어서 표현 예) 221.1.1.1
        • 주소는 네트워크 ID와 호스트 ID로 나뉜다.
          • class A: 앞 8bit 가 네트워크 ID(0~127)로 사용, 뒤 24 bit 가 호스트 ID로 사용된다.
          • class B: 앞 16bit 가 네트워크 ID, 뒤 16 bit 가 호스트 ID
          • class C: 앞 24bit 가 네트워크 ID, 뒤 8 bit가 호스트 ID
        • 서브네트워킹
          • 네트워크 내부의 임의의 논리적인 네트워크를 만들어 네트워크를 효율적으로 관리할 수 있다.
        • CIDR(Classless Inter-Domain Routing)
          • 기존의 클래스 주소체계와 달리 보다 효율적이고 유연하게 네트워크 주소를 조직할 수 있다.
          • 낮은 레벨의 네트워크를 모아서 하나의 네트워크처럼 활용할 수 있다.
      • DHCP 동적 호스트 구성 프로토콜
        • DHCP는 호스트가 자신의 IP 주소를 네트워크에 있는 서버로부터 자동으로 얻을 수 있게 한다.
        • 접속하는 순간 DHCP 서버가 IP 주소 부여
        • DHCP는 호스트 IP 주소의 할당 뿐만 아니라 서브넷 마스크, 디폴트 게이트웨이 주소나 로컬 DNS 서버 주소 같은 추가 정보도 얻게 해 준다.
        • DHCP는 호스트가 빈번하게 접속하고 떠나는 영역에서 폭넓게 사용된다.
        • 떠난 호스트의 주소를 회수하여 다른 호스트에게 다시 부여하는 방식으로 IP주소를 재사용할 수도 있다.
        • 클라이언트 서버 프로토콜
        • 단계
          • DHCP DISCOVER: 새로 접속한 클라이언트가 DHCP discover message 전송
            • 출발지 주소는 0.0.0.0, 도착지 주소는 255.255.255.255 67번 포트로 전송
          • DHCP OFFER: DHCP offer message를 클라이언트에게 제공
            • DHCP 서버가 수신한 discover 메시지의 트랜잭션 ID, 클라이언트에 제공된 IP 주소, 네트워크 마스크, IP 주소 유효기간을 포함한다.
          • DHCP REQUEST: DHCP 서버를 선택하여 DHCP 요청 메시지를 전송한다.
          • DHCP ACK: 전달받은 요청메시지에 대해 DHCP 서버가 응답한다.
            • 클라이언트가 DHCP ACK 메시지를 받으면 클라이언트는 DHCP 할당 IP 주소를 임대 기간 동안 사용할 수 있다.
      • NAT(Network Address Translation)
        • 네트워크 주소를 효율적으로 사용할 수 있게 해주는 기술
        • 하나의 주소로 로컬 네트워크 내의 모든 호스트들이 외부와 통신할 수 있다.
        • 내부 호스트는 외부 호스트와 구분될 필요가 없다.
        • 외부에서 하나의 주소로 통신이 들어오면 내부에서 알아서 구별하여 사용할 수 있다.
        • 내부에서 사설망 private IP로 구분한다. 내부에서만 쓰이는 비공식적인 IP 주소로 ISP에게 부여받은 외부 통신 주소인 public IP와 구분하여 사용할 수 있다.
        • 그러므로 내부에서 호스트가 직접 서버를 운영할 땐 포트포워딩 기술이 필요하다.
      • IPv6
        • 부족한 IP주소 문제 때문에 등장하게 되었다.
        • IPv4에 비해 간결하고 간소하게 만들어졌다.
        • 32bit에서 128bit로 주소 크기 자체를 확장
        • 40byte의 고정된 헤더 길이를 가진다. 고정된 길이를 가지므로 라우터가 IP 데이터그램 헤더를 더 빨리 처리할 수 있다.
        • 단편화/재결합은 호스트에서만 수행된다.
        • 트랜스포트 계층 프로토콜과 데이터 링크 프로토콜이 체크섬을 이미 수행하고 있으므로 네트워크 계층에서는 생략하였다.
      • match plus action
        • 라우팅 방식의 변화
          • 기존의 IP 네트워크에서는 동일한 목적지의 패킷은 동일한 방식으로 forwarding 해야 했었다.
          • SDN 네트워크에서는 각각의 패킷 스위치는 원격 컨트롤러에 의해 계산 및 분포된 매치 플러스 액션 테이블을 포함하고 있으며, 이런 원격 컨트롤러가 설정한 flow table을 사용하여 목적지가 동일해도 서로 다른 방식으로 forwarding 할 수 있다.
  • 네트워크 계층의 제어평면(control plane)
    • 제어평면은 데이터 그램이 출발지 호스트부터 목적지 호스트까지의 경로를 따라 어떻게 전달되야 하는지 제어한다. 그리고 네트워크 계층 구성 요소와 서비스를 어떻게 설정하고 관리할지도 제어한다.
    • 제어평면을 다루는 방법
      • 전통적인 방법: 라우터별 제어
        • 라우팅 알고리즘의 각 라우터에서 동작하면서 라우터의 포워딩 테이블의 내용을 결정한다.
        • 각 라우터는 다른 라우터의 라우팅 구성요소와 통신하여 자신의 포워딩 테이블의 값을 계산한다.
        • 라우터는 포워딩과 라우팅 기능을 모두 갖고 있다.
        • OSPF, BGP 프로토콜은 라우터별 제어 방식을 기반으로 동작한다.
      • 현대적인 방법: 논리적 중앙 집중형 제어
        • SDN(Software-defined networking): 소프트웨어 정의 네트워킹
          • 라우터와 물리적으로 분리된 중앙의 컨트롤러가 포워딩 테이블을 세팅하고 라우터는 포워딩 기능만을 수행한다.
          • 중앙서버에서 모든 라우터들이 가지는 정보를 수집한 뒤에 그 정보를 기반으로 포워딩 테이블을 만들어주고 라우터에 전달한다.
          • 더 많은 정보를 가지고 포워딩 테이블을 만들기 때문에 보다 효율적인 길을 선택할 수 있다는 장점이 있다.
          • 중앙의 라우팅 컨트롤러는 라우터의 제어 에이전트(control agent, CA)와 상호작용하여 라우터의 플로우 테이블을 구성 및 관리한다.
          • 라우터별 제어방식과는 다르게 라우터의 CA간 직접적으로 상호작용하지 않는다.
          • 매치 플러스 액션 추상화를 통해 라우터는 기존에는 별도의 장치로 구현되었던 다양한 기능(부하분산, 방화벽, NAT)뿐만 아니라 전통적인 IP 포워딩을 수행할 수 있다.
    • 라우팅 알고리즘
      • 목표
        • 송신자부터 수신자까지 라우터의 네트워크를 통과하는 좋은 경로를 결정하는 것
        • 일반적으로 좋은 경로는 최소 비용 경로를 의미한다.
      • 종류
        • 중앙 집중형 라우팅 알고리즘(centralized routing algorithm)
          • 네트워크 전체에 대한 완전한 정보를 가지고 경로를 설정한다.
          • 전체 상태 정보를 갖는 링크 상태(link-state,LS) 알고리즘이다.
            • 각 라우터가 상태 정보 메시지를 통해 네트워크 전체 토폴로지(topology)를 구성하고 이를 바탕으로 최단 경로의 포워딩 테이블을 만드는 방식
          • 상용 프로토콜: OSPF(Open Shortest Path First)
        • 분산 라우팅 알고리즘(decentralized routing algorithm)
          • 어떤 노드도 모든 링크의 비용에 대한 완전한 정보를 가지고 있지 않다.
          • 최소 비용 경로의 계산이 라우터들에 의해 반복적이고 분산된 방식으로 수행된다.
          • 각 노드가 네트워크 내 다른 모든 노드까지 거리(비용)의 추정값을 벡터 형태로 유지하는 거리 벡터(distance-vector, DV) 알고리즘이다. 
            • 각 라우터가 주기적으로 이웃 라우터와 라우팅 정보를 주고받음으로써 다른 노드에 이르는 거리 비용을 갱신하는 방식
          • 각 라우터는 하나 이상의 직접 연결된 이웃으로부터 정보를 받고 계산을 수행하며, 계산된 결과를 다시 그 이웃들에게 배포하는 분산적인 방식을 사용하고 있으며, 이웃끼리 정보를 더 이상 교환하지 않을 때까지 프로세스가 지속된다는 점에서 반복적이다.
          • 상용 프로토콜 : RIP(Routing Information Protocol)
    • AS(autonomous system)
      • AS란? 
        • 한 관리 기관에서 관리하는 IP 네트워크의 집합, 동일한 network prefix(도메인)를 가진다.
        • AS는 전 세계적으로 고유한 AS 번호로 식별될 수 있다.
        • 라우팅을 AS 내부 라우팅과 AS 외부 라우팅으로 구별할 수 있다.
        • 하나의 AS 내에서는 동일한 라우팅 알고리즘(AS 내부 라우팅 프로토콜(intra-AS routing protocol)) 사용해야한다. 
      • 등장 배경
        • 경로계산의 복잡성을 감소시킨다.
          • 인터넷의 라우터 수가 증가함에 따라 라우팅 정보의 통신 계산 저장에 필요한 오버헤드가 걷잡을 수 없이 증가한다. 모든 라우터가 동일한 라우팅 알고리즘을 수행한다면  이들 라우터 각각에 모든 가능한 목적지로의 라우팅 정보를 저장하기 위해서 막대한 양의 메모리가 필요할 것이다.
        • ISP는 자신의 라우터들로 구성된 네트워크를 원하는 대로 운용하거나 네트워크 내부 구성을 외부에 감추길 원했다. 조직은 자신의 내부 네트워크를 외부 네트워크에 연결하면서도 자신이 원하는 대로 네트워크를 운영하고 관리할 수 있어야 했다.
    • 인터넷 서비스 제공업자(ISP) 간의 라우팅
      • border router(gateway router): 외부의 다른 AS와 링크를 갖는 라우터
      • border 라우터가 통신을 할때는 동일한 프로토콜 BGP를 사용한다.
      • BGP(Border Gateway Protocol) inter-domain routing, 특별히 Path vector protocol이라고 부른다.
      • 패킷의 목적지가 AS 외부에 존재할 때 패킷은 여러 AS를 통과하는 경로로 라우팅되어야한다. intra-AS 라우팅 알고리즘으로는 불충분하다. 하나의 라우터 내의 포워딩 테이블은 intra-AS 라우팅과 inter-AS 라우팅의 동작이 합쳐져서 구성된다.
  • SDN(Software Defined Networking)
    • SDN은 네트워크 기능을 분리하여 관리할 수 있게한다.
    • SDN 구조의 특징
      • 플로우 기반 포워딩
        • 전통적인 포워딩은 IP 데이터그램의 목적지 주소를 기반으로 이루어진다.
        • SDN으로 제어되는 스위치들에서의 패킷 전달은 트랜스포트 계층, 네트워크 계층, 링크 계층 헤더의 어떤 값을 기반으로 하든 이루어질 수 있다.
      • 데이터 평면과 제어 평면의 분리
        • 데이터 평면은 네트워크의 스위치들로 구성되어 있으며 상대적으로 단순하고 빠른 장치로서 자신들의 플로우 테이블 내용을 기반으로 매치 플러스 액션을 수행한다.
        • 제어 평면은 서버와 스위치들의 플로우 테이블을 결정, 관리하는 소프트웨어로 이루어진다.
      • 네트워크 제어 기능이 데이터 평면 스위치 외부에 존재
        • 제어평면은 SDN 컨트롤러와 네트워크 제어 애플리케이션들의 집합으로 이루어져 있다.
        • SDN 컨트롤러는 정확한 상태 정보를 유지하고 이 정보를 네트워크 제어 애플리케이션들에 제공하며, 애플리케이션들이 하부 네트워크 장치들을 모니터 하고 프로그램하고 제어까지 할 수 있도록 수단을 제공한다.
      • 프로그램이 가능한 네트워크
        • 제어평면의 네트워크 제어 애플리케이션을 통해 네트워크를 프로그램할 수 있다.
        • 라우팅 네트워크 제어 애플리케이션은 SDN 컨트롤러가 갖고 있는 노드 상태 및 링크 상태 정보를 기반으로 출발지와 목적지 사이의 종단 간 경로를 결정한다.
        • 어떤 패킷을 스위치에서 막을지 결정하는 접속제어 기능도 수행할 수 있다.
        • 서버의 부하를 분산시키는 방식으로 패킷을 전달할 수도 있다.
  • Open Flow
    • 데이터 평면의 Open Flow 스위치와 제어평면의 Open Flow 스위치가 통신할 때 사용하는 프로토콜
    • 컨트롤러가 스위치의 상태를 조회하거나 설정할 수 있다. 
  • 인터넷 제어 메시지 프로토콜(Internet Control Message Protocol, ICMP)
    • 호스트와 라우터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용된다.
    • 주로 에러 리포팅 용도로 사용된다.
    • 예: 목적지를 찾을 수 없을 경우 라우터가 오류 발생을 알리기 위해 ICMP 메시지를 만들어서 호스트에게 보낸다.
    • ICMP 메시지는 IP 데이터그램 위에서 동작하며 IP 페이로드로 전송된다.

댓글