[네트워크] 네트워크 계층 : 제어 평면

4 분 소요

라우터별 제어와 논리적으로 중앙 집중된 제어

라우터별 제어

http://dl.dropbox.com/s/5dknwe1ucoiawei/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EC%A0%9C%EC%96%B4%20%ED%8F%89%EB%A9%B4-1.png

  • 라우터별 제어는 라우팅 알고리즘들이 모든 라우터 각각에서 동작하는 방식을 말한다.
  • 포워딩 및 라우팅 기능이 모두 각 라우터에 포함되어 있다.
  • OSPFBGP 프로토콜은 라우터별 제어 방식을 기반으로 한다.

논리적으로 중앙 집중된 제어

http://dl.dropbox.com/s/3hnka7eni9bkfi3/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EC%A0%9C%EC%96%B4%20%ED%8F%89%EB%A9%B4-2.png

  • 논리적으로 중앙 집중된 제어란 논리적으로 중앙 집중된 단일 컨트롤러가 포워딩 테이블을 작성하고, 이를 개별 라우터가 사용할 수 있도록 배포하는 방식을 말한다.
  • 여러 개의 서버에 라우팅 서비스가 구현된다 하더라도, 마치 하나의 중앙 서비스 지점에 있는 것처럼 서비스에 접근한다는 의미이다.
  • 컨트롤러는 각 라우터의 제어 에이전트(CA)와 상호 작용하여 라우터의 플로우 테이블을 구성 및 관리한다.
  • CA는 서로 상호 작용하지 않으며, 포워딩 테이블을 계산하는 데에도 참여하지 않는다.


라우팅 알고리즘

  • 라우팅 알고리즘의 목표는 송신자부터 수신자까지 라우터의 네트워크를 통과하는 최소 비용 경로를 결정하는 것이다.


라우팅 알고리즘을 분류하는 세 방법

  1. 중앙 집중형 vs. 분산형
  2. 정적 알고리즘 vs. 동적 알고리즘
  3. 부하에 민감한 알고리즘 vs. 부하에 민감하지 않은 알고리즘


중앙 집중형 라우팅 알고리즘과 분산 라우팅 알고리즘

  • 중앙 집중형 라우팅 알고리즘
    • 중앙 집중형 라우팅 알고리즘은 네트워크 전체에 대한 모든 정보를 갖고 출발지와 목적지 사이의 최소 비용 경로를 계산한다.
    • 전체 상태 정보를 가지는 알고리즘을 링크 상태 알고리즘(link-state, LS)이라고 한다.
  • 분산 라우팅 알고리즘
    • 분산 라우팅 알고리즘은 최소 비용 경로 계산이 라우터들에 의해 반복적이고 분산된 방식으로 수행한다.
    • 각 노드는 연결된 링크에 대한 비용 정보만을 가지고 시작한다.
    • 거리 벡터 알고리즘(distance-vector, DV)이라고도 한다.


정적 라우팅 알고리즘과 동적 라우팅 알고리즘

  • 정적 라우팅 알고리즘 : 사람의 개입으로 인한 결과로 경로는 아주 느리게 변한다.
  • 동적 라우팅 알고리즘 : 네트워크 트래픽 부하나 토폴로지 변화에 따라 라우팅 경로를 바꾼다.


부하에 민감한 알고리즘과 부하에 민감하지 않은 알고리즘

  • 부하에 민감한 알고리즘에서 링크 비용은 해당 링크의 현재 혼잡 수준을 나타내기 위해 동적으로 변한다.
  • 현재 사용중인 인터넷 라우팅 알고리즘들은 링크 비용이 현재의 혼잡을 반영하지 않기 때문에 부하에 민감하지 않다.


링크 상태(link-state, LS) 라우팅 알고리즘

  • 링크 상태 알고리즘에서는 네트워크 토폴로지와 모든 링크 비용이 알려져 있어서 링크 상태 알고리즘의 입력값으로 사용된다.
  • 이는 각 노드가 자신과 연결된 링크의 식별자와 비용을 포함하는 링크 상태 패킷을 네트워크 상의 모든 다른 노드로 브로드캐스트 함으로써 가능해진다.
  • 링크 상태 알고리즘은 다익스트라 알고리즘을 사용한다.
  • 다익스트라는 우선순위 큐를 이용하여 구현 시, 최악의 경우 O(ElogV)의 시간 복잡도를, 우선순위 큐를 이용하지 않고 구현 시 O(V^2)의 시간 복잡도를 갖는다.


거리 벡터(distance-vector, DV) 라우팅 알고리즘

  • 거리 벡터 알고리즘은 반복적이고 비동기적이며 분산적이다.
  • LS 알고리즘은 모든 링크 정보들을 다 알고 시작한는 반면, DV 알고리즘에서 하나의 노드가 갖는 정보는 오로지 직접 연결된 이웃 링크 비용과 그 이웃들로부터 수신하는 정보뿐이다.
  • 각 노드는 이웃으로부터의 업데이트를 기다리고, 업데이트를 수신하면 새로 거리 벡터를 계산하고, 이 새로운 거리 벡터를 다시 이웃들에게 배포한다.
  • 거리 벡터 알고리즘은 벨만-포드 알고리즘을 사용한다.


자율 시스템(Autonomous System, AS)

  • AS는 동일한 관리 제어하에 있는 라우터의 그룹으로 구성된다.
  • 같은 AS 안에 있는 라우터들은 동일한 라우팅 알고리즘을 사용하고, 상대방에 대한 정보를 가지고 있다. 자율 시스템 내부에서 동작하는 라우팅 알고리즘을 AS 내부 라우팅 프로토콜이라고 한다.


개방형 최단 경로 우선(Open Shortest Path First, OSPF) 프로토콜

  • OSPF는 링크 상태 정보를 플러딩(flooding)하고, 다익스트라 최소 비용 경로 알고리즘을 사용하는 링크 상태 알고리즘이다.
  • OSPF를 사용하는 라우터는 인접한 라우터뿐만 아니라, 자율 시스템 내의 다른 모든 라우터에게 라우팅 정보를 브로드캐스트 한다.
  • 라우터는 링크 상태가 변경될 때마다, 링크 상태 정보를 브로드캐스트 한다.
  • 링크 상태가 변경되지 않았더라도, 정기적으로 링크 상태를 브로드캐스트 한다.


경계 게이트웨이 프로토콜(Border Gateway Protocol, BGP)

  • 인터넷 모든 AS들은 자율 시스템 간 라우팅 프로토콜로 BGP를 사용한다.
  • BGP는 각 라우터에게 이웃 AS로부터 도달 가능한 서브넷 프리픽스 정보를 제공하고, 서브넷 주소 프리픽스로의 가장 좋은 경로를 결정하도록 해준다.


BGP를 통한 최고의 경로 결정

  • 라우터는 BGP 속성(AS-PATH, NEXT-HOP)을 포함시켜, BGP 연결을 통해 주소의 프리픽스를 알린다.
  • AS-PATH 속성은 메세지가 통과하는 AS들을 담는다. 메세지 루프를 감지하고 방지하기 위해 활용된다.
  • NEXT-HOP 속성은 AS-PATH를 시작하는 라우터(AS 내 처음 통과하는 라우터) 인터페이스의 IP 주소이다.


뜨거운 감자 라우팅(Hot Potato Routing)

  • 뜨거운 감자 라우팅에서는 경로 각각의 시작점인 NEXT-HOP 라우터까지의 경로 비용이 최소가 되는 경로를 선택한다.
  • AS 바깥 부분의 비용에는 신경쓰지 않고, 패킷을 최대한 신속히 자신의 AS 밖으로 내보내자는 아이디어이다.
  • 따라서, 자기 AS 외부에서 얼마의 비용이 들지는 신경쓰지 않고, 오로지 자신의 AS 내부 비용만 줄이려는 이기적인 알고리즘이다.


AS간 경로 선택 알고리즘

  • BGP는 아래 절차에 따라 경로를 선택하게 된다.
    1. 지역 선호도가 높은 경로를 선택한다.
    2. 최단 AS-PATH를 갖는 경로를 선택한다.
    3. 뜨거운 감자 라우팅을 수행하여, NEXT-HOP 라우터까지의 거리가 가장 가까운 경로를 선택한다.
    4. 아직도 여러 경로가 남아 있다면, BGP 식별자를 이용하여 경로를 선택한다.
  • 경로 선택 알고리즘을 사용하면, BGP는 뜨거운 감자 라우팅만을 수행하지 않기에, 더 이상 이기적인 알고리즘이 아니게 된다.
  • 최단 AS-PATH를 가진 경로를 먼저 찾기 때문에, 결과적으로 종단 간 지연시간이 줄어들 것이다.


IP 애니캐스트

  • BGP는 IP 애니캐스트를 구현하는 데도 활용된다.
  • DNS 시스템에서는 DNS 질의를 가장 가까운 루트 DNS 서버로 전달하기 위해 IP 애니캐스트가 광범위하게 사용된다.


소프트웨어 정의 네트워크(Software Defined Network, SDN) 제어 평면

http://dl.dropbox.com/s/t6lal2zz1sq1ptb/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EC%A0%9C%EC%96%B4%20%ED%8F%89%EB%A9%B4-3.png

  • 제어 평면은 SDN 컨트롤러네트워크 제어 응용들의 집합으로 구성된다.
  • SDN 컨트롤러는 크게 세 개의 계층으로 구성된다.

    http://dl.dropbox.com/s/9t78np4nvu8riys/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EC%A0%9C%EC%96%B4%20%ED%8F%89%EB%A9%B4-4.png

    • 통신 계층
      • SDN 컨트롤러와 제어받는 장치들간의 통신은 사우스바운드(south-bound) 컨트롤러 인터페이스를 통해 이루어진다.
    • 네트워크 전역 상태 관리 계층
      • 플로우 테이블 등의 상태 정보들을 관리한다.
    • 네트워크 제어 응용 계층과의 인터페이스
      • SDN 컨트롤러와 네트워크 제어 응용들간의 통신은 노스바운드(northbound) 컨트롤러 인터페이스를 통해 이루어진다.
      • 이 API는 네트워크 제어 응용들이 상태 관리 계층 내의 네트워크 상태 정보플로우 테이블을 읽고 쓰도록 해준다.


인터넷 제어 메세지 프로토콜(ICMP)

  • 인터넷 제어 메세지 프로토콜(Internet Control Message Protocol, ICMP)은 호스트와 라우터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용된다.
  • ICMP는 IP 바로 위에 존재한다. TCP/UDP 와 같은 전송 계층 프로토콜과 마찬가지로, ICMP도 다중화와 역다중화를 거친다.
  • 오류 보고 목적으로 가장 많이 사용되지만, 오류 상태를 알리기 위해서만 사용되는 것은 아니다.
  • 출발지 억제 메세지로도 사용된다. 혼잡이 발생한 라우터가 호스트의 전송 속도를 늦추도록 ICMP 출발지 억제 메세지를 해당 호스트에 보낸다.


네트워크 관리 프로토콜(SNMP)

http://dl.dropbox.com/s/r8q1gw3hqy6ba4x/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EC%A0%9C%EC%96%B4%20%ED%8F%89%EB%A9%B4-5.png

  • 네트워크 관리 프로토콜(Simple Network Management Protocol, SNMP)은 관리 서버와 그 관리 서버를 대표하여 실행되고 있는 에이전트 사이에서 네트워크 관리 제어 및 정보 메세지를 전달하기 위해 사용된다.

카테고리:

업데이트:

댓글남기기