데이터망 CH5. Network layer - Control plane

Alpha, Orderly·2023년 4월 19일
1

데이터 망

목록 보기
5/8

Network-layer Function

Forwarding - Data plane

  • 라우터의 Input에서 올바른 라우터의 output으로 패킷을 이동하는것.

Routing - Control plane

  • 라우터가 가져온 패킷의 목적지를 지정하는것

Control plane

1. Per-Router control - Oldschool

  • router들끼리 상호작용해서 forwarding table을 만든다.

2. Locically centralized control / Software Defined Networking

  • 원격 서버에서 라우터에 라우팅 테이블을 설치한다.

  • 아래 과정에 앞서 각각의 라우터가 자신과 직접 연결된 다른 라우터들의 정보를 패킷으로 만들어 모든 라우터에 broadcast 한다.
  • 네트워크의 모든 라우터에 보내진 않고, 자신이 속한 network ID 내부의 라우터들에게만 보통 보낸다.

Routing Protocol

  • 네트워크 라우터 사이로 보내는 Host에서 받는 Host로의 최적의 경로를 정하는것.

Path / 경로

  • 초기 송신 Host에서 최종 수신 Host까지 패킷이 거쳐가는 라우터들의 연속

중점적인 요소

  • Cost Effective
  • Fast
  • Least Congestion

라우팅 알고리즘

ca,bc_{a,b} : a와 b를 직접 연결하는 비용

  • 비용은 네트워크 관리자에 의해 지정되며, 대역폭 혹은 혼잡 상태에 의해 결정된다.
  • 중앙화 : 네트워크 토폴로지, 모든 노드는 링크의 비용을 알고 있다.
    • "Link state broadcast" 를 통해 이루어짐
    • 모든 노드가 같은 정보를 가진다.

그래프 예시


u에서 시작하는 최소비용경로 트리


u에 있는 라우팅 테이블

Oscillations possible < 진동가능성 > 문제

  • 링크 비용이 바뀌면 최단경로로 패킷이 몰리게 된다.
  • 패킷이 몰린 쪽에 congestion이 발생해 링크 비용이 상승한다.
  • 최단경로가 또 바뀐다
  • 또 그쪽으로 패킷이 몰려 congestion이 생긴다
  • 반복

Distance vector

  • 분산된 구조로 물리적으로 연결된 이웃들의 정보만을 가지고 있다.
  • 반복적인 연산을 통해 이웃 이외의 정보를 알게 됨, 전체적 정보는 벨만 포드 알고리즘을 사용한다.

Dx(y)D_x(y)가 x에서 y로 가는 최소비용 거리의 비용일때
Dx(y)=minv(cx,v+Dv(y))D_x(y) = min_v(c_{x,v} + D_v(y))

  • x에서 y로 가는 비용은 x에서 v로 가는 거리와 v에서 y로 가는 거리의 합 중 최솟값과 같다
  • v는 x와 이웃한 노드

  • Link cost가 감소한 경우 업데이트가 빠르다.

    • link cost 변화 탐지 및 DV 업데이트 하고 이웃에게 알림
    • 이웃들은 정보를 얻고 자신의 테이블 업데이트 후 이웃들에게 알림
    • 더이상 바뀌지 않을때 까지 반복

  1. Poisoned Reverse
  • Z가 X로 가는 정보를 Y로 부터 받았기 때문에 Z가 다시 Y 에게 X로 가는 정보를 줄 필요가 없다.

    Z가 Y에게 자신의 라우팅 정보를 전달할 때는 X로 갈 수 없다고 알려준다. (독을 칠해놓는다.)`

  1. Split Horizon
  • Z가 Y에게 자신의 라우팅 정보를 전달할 때 X 정보를 없애고 보낸다.

    Y가 X로 가는 길을 Z에게 알려줬기 때문에 어차피 Y는 X로 가는 길을 알고 있기 때문이다.

  1. Triggered update
  • Y가 X로 가는 길이 끊겼다는 사실을 Z에게 알려주면, Z도 Y를 통해 X로 가는 길이 없음을 알게된다.

Intra-ISP 라우팅 / OSPF

Scalability

  • 망의 규모가 커졌을때를 대비한 확장성
  • 모든 라우터가 LS 혹은 DV로 통일되어 있을시,
    LS라면 모든 link 정보를 수집해야 해 시간과 오버헤드가 크고
    DV로 통일할 경우 모든 라우팅 테이블의 정보를 주고 받으며 저장할수 없다.

실제 사용법

Administrative autonomy

  • 인터넷을 네트워크의 네트워크로 만들고, 각 네트워크 관리자가 고유의 네트워크 영역 ( Autonomous System / AS ) 의 라우팅 컨트롤
  • AS는 도메인으로도 불린다.

Autonomous System

  • AS를 구역으로 나누어 그 안에 라우터를 포함한다.

Intra-AS

  • 동일 AS 내에서 작동하는 라우팅 방법
  • AS내 모든 라우터들은 같은 프로토콜로 동작해야 한다.
  • Gateway router : 각 AS의 가장자리에서 다른 AS의 라우터로 연결되는 link를 가지는 라우터.
RIP : Routing Information Protocol
  • DV
  • 30초마다 RT를 서로 교환 > count-to-infinity 유발 > 요즘 사용하지 않음
EIGRP : cisco 독점기술, DV
OSPF : Open Shortest Path First
  • LS로 동작한다.
  • 전체 토폴로지를 그리고 라우팅 테이블을 만듦
  • 다익스크라 알고리즘 사용해 포워팅 테이블을 계산한다.
  • 각 라우터들은 전체 AS 내의 다른 라우터들에게 IP를 사용해 OSPF link-state 정보 전달
  • 여러 link cost가 존재할수 있다.
  • Hierarchical OSPF
    • 네트워크가 커서 계층구조로 나누어 OSPF를 적용하는것
    • area / backbone 내에서만 link state전달됨
    • 한 area에서 외부로 향하는 데이터그램은 area border router로 전달된다.
    • 한 area내 정보를 요약해 다른 area로 전달한다.
    • backbone router / boundary router를 거쳐 다른 area의 라우터로 전달된다.

Inter-AS

  • AS간의 라우팅 방법
  • gateway들 끼리 일어난다.

Routing among ISP : BGP

Border gateway Protocol
  • 서브넷이 자신의 존재를 알리고, 인터넷의 다른 부분들에게 도달 가능한 목적지들을 알려준다.
  • eBGP
    • 이웃하는 AS로부터 접근가능한 서브넷의 정보를 얻는다.
  • iBGP
    • 접근 가능 관련 정보를 모든 내부 라우터에게 전달한다.
  • Gateway router는 eBGP와 iBGP 둘 다 동작하게 된다.



Intra vs Inter

policy

  • inter-AS : 관리자는 트래픽이 어떻게 라우팅되고, 누가 네트워크로 라우트 시켜주는지를 제어한다.
  • intra-AS : 하나의 관리자

Scale

  • 계층적인 라우팅은 테이블의 사이즈를 줄여주고, 갱신 트래픽을 줄여준다.

Performance

  • intra-AS : 퍼포먼스에 집중할 수 있다.
  • inter-AS : 정책이 퍼포먼스를 결정한다.



SDN Control plane

  • 각 라우터 및 모든 라우터의 개별 라우팅 구성요소는 컴퓨터 포워딩 테이블가 상호작용한다.
  • Remote controller가 라우터들 내에 포워딩 테이블을 계산 및 설치한다

사용 이유

더 쉬운 네트워크의 관리

  • 라우터의 잘못된 구성 피하고 트래픽 흐름을 더 유연하게 대처한다.

Table-based forwarding / OpenFlow API 가 라우터 프로그래밍 가능

  • 중앙에서 테이블을 계산하고 배포하기 쉽다.

Control plane 의 Open implementation 제공

  • 독자적으로 라우팅 알고리즘 개발하는것보다 빠르게 진화한다.

장점

  • SDN을 이용시 가능한 것들
  • 경로가 2개 이상일때, 유연하게 경로를 지정하는것
    • 기존의 경우 최선의 경로만 사용하려 한다.
  • 여러 경로로 트래픽을 나누어 보내는것
    • 기존의 경우 새로운 라우팅 알고리즘이 필요하다.

SDN 의 구조

OPENFLOW : Table-based switch control 위한 API : Controller와 소통하기 위한 프로토콜.

Data-plane switch

  • 하드웨어에 Generalized data-plane forwarding 구현
  • Controller의 감독 하에 forwarding/flow table이 계산되고 설치된다.

SDN Controller

  • Network OS로, Application이 공통적으로 사용할 기능을 관리한다.
  • Network State Information을 유지한다.
  • Northbound API : Network-control application과 상호작용
  • Southbound API : network switch와 상호작용
  • 성능 / 확장성 / 실패-관용 / 견고성을 위해 분산 시스템에 구현한다.

Network-Control App

  • Low-level service와 SDN Controller가 제공하는 API 통해 Control function을 구현한다.

SDN Controller Structure

  • 상단 : routing / access control / load balance 와 소통 위한 추상화 API 레이어
  • 중단 : 분산 데이터베이스로 네트워크 링크, 스위치, 서비스의 상태를 관리한다.
  • 하단 : SDN Controller과 Switch간 통신, OpenFlow / SNMP 등을 사용한다.

Openflow 프로토콜

  • 컨트롤러와 스위치 사이에서 작동
  • TCP를 이용해 메시지를 교환한다.
  • 메시지 종류
    • 컨트롤러 > 스위치
    • 스위치 > 컨트롤러 ( 비동기적 )
    • 동기적 신호 전달

ICMP

  • 특정 포맷의 메시지를 만들고, 상대에게 전달하기 위해 IP 프로토콜을 사용함

특징

  • network-layer의 정보를 주고받기 위해 host-router 간에 사용한다.
    • error reporting : 목적지에 제대로 전달되지 않을시 송신측에 이유를 전달한다.
    • echo request
  • ICMP message는 error을 유발한 IP datagram의 앞에 8byte를 추가해서 code, type을 포함시킨다.

Traceroute와 ICMP

  • 송신지에서 수신지로 UDP 패킷을 보내는데, 처음 보낼때는 TTL을 1로, 다음은 하나씩 늘려가며 보낸다.
  • n번째로 보낸 데이터그램은 n번째 라우터까지 전달된다, n번째 라우터에서 TTL이 0이 되기에 이를 버리고 ICMP 메시지를 송신지에 보낸다.
    • ICMP 메시지는 라우터의 이름 / IP 주소를 포함할수 있다.
  • ICMP 메시지가 송신지에 도착시 RTT를 기록한다.

이외 용도

  • Ping
  • Route 찾기 : 네트워크 내 라우터 식별
  • Traceroute : 경로 찾기

Network management

Managing server

  • 네트워크 장비를 감시 / 설정 / 관리 한다.

Managed device

  • 관리 가능하고 설정 변경 가능한 HW/SW 컴포넌트로 구성된 장치

Network management protocol

  • Managing server와 Managed device가 정보를 주고 받기 위한 프로토콜
    • Managing server : 디바이스 관리/설정 및 질의
    • Device : Managing server에게 데이터와 이벤트 전송

Data

  • 기기 상태, 설정 데이터, 작동 데이터, 기기 통계

Network Management 접근법

CLI

  • 직접적으로 개별 장치와 연결한다.

SNMP - Simple Network Management Protocol / MIB - Management Information Base

  • SNMP를 이용해 기기 데이터 (MIB) 를 질의 및 설정한다.
  • server > agent 요청, agent > server 응답 혹은 agent > server로 trap message를 보내는 방식으로 작동
  • 각각의 네트워크 장비에 저장된 MIB를 빼오거나 관리한다.

  • SNMP msg type
    • "manager-to-agent" function

      • GetRequest
      • GetNextRequest
      • GetBulkRequest
      • SetRequest
    • "agent-to-manager" function

      • Response
      • Trap

MIB

  • 기기의 MIB 모듈에 모아진다.
  • Structure of Management Information ( SMI ) 형식으로 작성된다.

NETCONF / YANG

NETCONF : SNMP의 단점 보완. NETCONF의 문법은 YANG이 정의

  • actions : retrieve, set, modify, activate conf
  • operations
    • : 설정값
    • : 설정값, 데이터
    • ,
    • : SNMP의 TRAP과 유사
  • atomic-actions
  • RPC
  • YANG : NETCONF와 함께 쓰이는 데이터 모델링 언어
    • NETCONF의 구조, 문법, 의미 정의.
profile
만능 컴덕후 겸 번지 팬

0개의 댓글