동적 라우팅

tycode·2021년 5월 30일
1

C.S (Computer Science)

목록 보기
35/40
post-custom-banner

라우팅 프로토콜

라우팅 프로토콜은 정적(Static) & 동적(Dynmaic)으로 구분된다

  • 정적 라우팅: 경로 정보를 라우터에 미리 저장하여 패킷 전송
  • 동적 라우팅: 경로 정보가 네트워크 상황에 따라 더 빠른 경로로 변경되어 패킷 전송
  • 역할
    목적지까지의 최적 경로를 계산하고 라우팅 테이블에 업데이트
    동적으로 라우팅 테이블을 유지 및 관리하는 알고리즘

Distance Vector & Link State routing으로 구분한다

  • Distance Vector: 분산 업데이트, 각 라우터들의 의해 최소 비용 경로 계산 -> 인접 노드와 교환
    소규모 네트워크, 주기적이며 비동기 방식
  • Link State: 중앙 집중형 업데이트, 네트워크 전체 정보를 통해서 최소 비용 경로 계산
    대규모 네트워크에 적합, 이벤트 기반의 라우팅 테이블 관리

Distance Vector 라우팅

  • 거리 + 방향
  • 목저지 IP까지의 거리 = Hop카운트 = 라우터와 라우터 사이의 거리 + 인터페이스 방향
  • 인접 라우터들과 주기적으로 라우팅 테이블을 교환하여 확인 및 관리
  • 인접 라우팅 테이블만 관리 -> 메모리 절약
  • 비교적 구성이 간단
  • 주기적 라우팅 테이블 업데이트 -> 무의미한 트래픽 발생 가능
  • Convergence time(라우팅 테이블 업데이트 시간)이 느리다
  • 소규모 네트워크에 적용
  • Bellman-Ford 알고리즘에 기반하여 설계

Bellman-Ford 알고리즘

최단 경로 문제를 풀어주는 알고리즘

주기적 업데이트

  • 연결 링크의 비용 변경
  • 최단 거리의 변경

Listening -> Change -> Estimate -> Notify -> Update
기다림 -> 최단 거리 값 & 연결 링크 비용 변경 -> 인접 노드로 전달

  • 각 노드의 인접 경로별 Cost

  • t가 q에게 e까지의 경로 비용을 전달, q는 e까지의 경로 계산하여 업데이트
    q -> e = 4 + 1 = 5
    S

  • t가 w에게 e까지의 경로 비용을 전달, w는 e까지의 경로 계산하여 업데이트
    w -> e = 2 + 1 = 3

  • t가 w에게 q까지의 경로 비용을 전달, w는 q까지의 경로 계산하여 업데이트
    w -> q = 2 + 4 = 6

  • w가 q에게 e까지의 경로 비용을 전달, q는 e까지의 경로 계산하여 업데이트
    q -> e = 1 + 2 + 1 = 4
    최단 경로 값 변경 5 -> 4

  • 모든 라우팅 테이블 업데이트 완료 -> 컨버전스 타임 with Change -> 업데이트

  • 링크 상태
  • 즉, 회선의 대역폭을 고려하여 가중치를 부여
  • 네트워크 토폴로지 경로를 모든 라우터들에게 전달
  • 라우팅 정보가 변경되는 이벤트 건에 대해서만 전파 -> 네트워크 트래픽 감소
  • 전체 네트워크 상의 라우터들의 테이블 정보가 동일하게 유지
  • 각 라우터들은 최상의 경로 계산 -> Dijkstra's 다이스트라 알고리즘

예시

초기값은 무한이 되면 경로가 없다라는 뜻. 초기에는 무한으로 세팅되어 있다.

동적 라우팅

동적 라우팅 프로토콜은 AS(Autonomous System)에 따라 구분된다

  • IGP(Interior Gateway Protocol): AS 내에서 동작하는 라우팅 프로토콜
  • EGP(Exterior Gateway Protocol): AS와 AS간의 라우팅 프로토콜

AS

하나의 회사 또는 단체 안에서 동일한 정책으로 관리되는 라우터들의 집단

EGP

BGP(Border Gateway Protocol)

현재 인터넷에서 쓰이는 가장 대표적인 EGP라우팅 프로토콜

  • ISP to ISP 연결 간 사용
  • 경로 벡터 라우팅 프로토콜을 사용 - 루핑 방지
  • 빠른 속도 보다는 조직 또는 단체간 맺어진 정책에 의거하여 최적 경로 결정

구성

eBGP & iBGP

설정

Router ID, Neighbor, Network 설정

  • Router ID: 라우터 별 식별용 IP설정
  • Neighbor: 자동 탐지 불가, 수동으로 인접 라우터의 AS번호를 설정
    Connected 인터페이스로 Next hop 설정
  • Network: 전파할 네트워크 대역

BGP 메시지 4가지

인접 라우터 관계 확인 및 라우팅 정보 교환하는 용도

  • OPEN: 인접 라우터와 연결된 후 보내는 메시지
    BGP 버전, AS번호, Hold Time, Operation parameter

  • UPDATE: 경로에 대한 속성 값
    Unreachable Route, Path Attribute, Network Layer Reachability

  • NOTIFICATION: 에러가 감지 되면 에러 코드를 보내고 BGP 연결 종료

  • KEEPALIVE: 주기적으로 인접 라우터와의 연결을 확인

BGP FSM(Finite State Machine)

피어 라우터와의 동작을 결정하기 위해 6가지 유한 상태 머신 사용

  1. Idle: 모든 자원을 초기화하고 피어 연결 준비 상태
  2. Connected: 연결이 완료되기를 기다리는 상태
  3. Active: 연결 실패 이후 다시 연결을 시도하는 상태
  4. Open Sent: OPEN 메시지를 보내는 상태
  5. Open Confirm: OPEN 메시지를 받은 상태
  6. Established: KEEPALIVE 메시지를 받은 상태
  • 예제: 상태별 처리 과정

1) Idle -> Connect
1-1. 연결 성공: Open 메시지를 보낸다
1-2. 연결 실패: Active 상태로 변경

2) Connect 또는 Active -> Open Sent
2-1. 오류 검출: NOTIFICATION 메시지를 보낸다
2-2. 정상: KEEPALIVE 메시지를 보낸다

3) OPEN -> Open Confirm
3-1. KEEPALIVE 메시지 받은 상태: Established
3-2. NOTIFICATION 메시지를 받은 상태: Idle

IGP

RIP(Routing Information Protocol)

  • Distance Vector 기반의 IGP용 라우팅 프로토콜
  • 속도가 아닌 거리(라우터의 홉)기반 경로 선택
  • 주기적으로 전체 라우팅 테이블 업데이트 - 30초
  • 최대 홉 카운트는 15
  • 구성이 간단, 적은 메모리 사용, 소규모 네트워크에서 주로 사용

RIPv1: Classful 라우팅, 라우팅 업데이트시 서브넷마스크 정보를 전달하지 않음
-브로드 캐스팅

RIPv2: Classless 라우팅, 라우팅 업데이트시 서브넷마스크 정보 전달
-멀티캐스팅, Triggered Update 설정 가능

RIP 메시지 포맷

Command: 명령 1 Request, 2 Response
Version: 1 or 2
Family: 프로토콜 정보, IP=2
IP Address: 목적지 주소, Subnetmask, Next Hop
Distance: 홉 카운트

RIP 동작

  1. 요청 메시지
    라우터가 초기화 또는 라우팅 테이블의 특정 엔트리 타이머 종료시
    특정 네트워크 주소 또는 전체 라우팅 정보를 요청

  2. 응답 메시지
    요청 메시지 수신 후 응답 또는 주기적(30초)으로 자신의 라우팅 정보를 전파
    일정시간(180초) 동안 특정 경로에 대한 응답이 없으면 홉 카운트 16으로 설정

Router(config)#router rip
Router(config-router)#network 10.0.0.0
Router(config-router)#network 192.168.1.252
Router(config-router)#network 192.168.1.248

RIP 메시지 수신

  • 신규 목적지 -> 라우팅 테이블에 추가
  • Next Hop 정보가 수정된 경우 -> Next Hop 정보 변경
  • Hop Count 비교 -> 숫자가 작으며 변경, 크면 무시

OSPF

Open Shortest Path First

  • 링크 스테이트 라우팅 알고리즘을 사용하는 IGP용 라우팅 프로토콜
  • RIPv1의 단점을 보환
    • 홉 카운트의 제한이 없음
    • VLSM(Variable-Length Subnet Mask)사용하여 효율적 IP관리
    • 변경된 정보만 전파, 적은 양의 라우팅 트래픽 유발
    • 단순 라우터의 홉이 아닌 ㄹ이크의 상태로 경로 설정
    • Convergence 타임이 빠름

구성

계층적 구조, 여러개의 Area로 나뉘고 각 영역은 독립적으로 라우팅 수행

ASBR: 다른 AS에 있는 라우터와 라우팅 정보 교환
Backbone Router: AS내의 여러 Area를 모두 연결, OSPF도메인 내에서 모든 링크 상태 정보를 취합하고 분배
ABR: 각 Area와 백본 Area 0을 연결

OSPF 메시지

프로토콜 ID 89, 인접 라우터의 발견 및 관계 유지, 멀티캐스트 사용

  1. Hello: 인접 라우터 및 로컬 링크 상태 검색, 관계를 설정하고 주요 매개변수 전달
    일정 간격으로 인접 라우터들의 상태(Keepalive)를 확인
  • LSDB(Link State Database): 각 OSPF Area 내 전체 망 정보, 링크 상태 및 경로 정보
  • LSA(Link State Advertisement) 패킷들에 의해 구축, LSU? & DD 메시지를 통해 전달

LSDB정보 업데이트 및 관리 메시지

  1. DBD(Database Description): OSPF정보 구축을 위해 LSDB내용을 전달
  2. LSR(Link State Request): 상대 라우터에게 링크 상태 정보를 요청
  3. LSU(Link State Update): 네트워크 변화 발생시 인접 라우터에게 상태 전달
  4. LSAck(Link State Acknowledgment): 수신 확인, 신뢰성 확보

테이블 종류

  1. OSPF 네이버 테이블
    -네이버를 성립한 인접 라우터 정보 관리
    -네이버 라우터 ID확인
  2. OSPF DB 테이블
    -네이버에게 수신한 라우팅 업데이트 정보를 관리
    -LSA 메시지를 이용하여 LSDB 동기화
    -LSDB 정보를 기반으로 최적 경로를 선출
  3. 라우팅 테이블
    -최적 경로 등록
    -Inter Area라우팅 정보, 다른 Area 업데이트 정보, 외부 AS 업데이트 정보

네이버 테이블의 라우터 상태 변화

  1. Down: Power off
  2. init
    Hello 메시지를 받으면 init상태, 인식
  3. 2 way
    Hello 메시지로 Neighbor확인
    확인된 내용을 neighbor list에 업데이트
  4. Exstar(실행)
    DBD메시지를 통해 마스크/슬레이브 선출
  5. Exchange(교환)
    DBD 메시지를 통해 링크 상태 정보 교환
  6. Loading(전송)
    LSR을 통해 완전한 정보 요청
    LSU를 통해 상대방에게 업데이트를 보낸다
  7. Full
    인접한 네이버 라우터들의 정보를 유지

링크 종류

  1. Point to Point
    라우터와 라우터가 1:1로 직접 연결

  2. Transient
    여러개의 라우터가 동일한 Area에서 버스를 통해서 연결

  3. Stub
    하나의 Area에 1개 라우터만 연결

  4. Virtual
    물리적으로 백본영역과 연결이 어려운 상태에서 가상으로 연결

DR & BDR

DR: Designated Router
BDR: Back-uup Designated Router

  • DR과 BDR은 중복되는 LSA교환을 방지하고자 선출
  • LSA(Link State Advertisment)
    • 라우팅 기초 정보가 담겨진 패킷으로 링크 상태, 진접 관계 형성, 요약 정보
    • 네트워크/링크의 경로 비용 포함
  • 그외 라우터들은 LSA정보를 교환하지 않고 Hello만 교환하고 네이버 관계 형성
  • DR/BDR은 다른 라우터들과 LSA 정보를 교환하여 인접 네이버 관계를 형성
  • OSPF Priority가 가장 높은 라우터를 DR로 선출
  • Priority가 동일하면 라우터 ID로 선출

동작 과정

  1. R1이 새로 OSPF 라우팅으로 구성/Join
  2. Hello 메시지로 인접 라우터 확인
  3. DR & BDR 주소 확인
  4. LSA정보를 DR & BDR에게 전달
  5. BDR은 타이머 세팅, DR수행 감시
  6. DR은 LSA정보를 다른 모든 라우터들에게 전달
    모든 라우터들에게 ack을 수신
  7. DR이 BDR타이머 동안 제대로 수행 못하면,
    BDR이 DR로 선출되고, 추가로 BDR선출
  8. 링크 다운시 R2는 DR에게 알리고
    DR은 다시 모든 라우터들에게 전달
post-custom-banner

0개의 댓글