라우터의 동작 방식

정문·2022년 6월 9일
1

Network

목록 보기
8/12

라우팅 프로토콜

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

  • 정적 라우팅 : 경로 정보를 라우터에 미리 저장하여 패킷 전송
  • 동적 라우팅 : 경로 정보가 네트워크 상황에 따라 더 빠른 경로로 변경되어 패킷 전송

Static(정적) 라우팅

가장 기본적인 라우팅 방식으로 수동으로 경로를 라우터에 설정하여 패킷을 처리
경로는 라우팅 테이블에 목적지 IP주소 & 인터페이스 정보를 설정

(예시)테스트망 구성

  • IP대역 할당 : 211.109.131.0/24
  • Router 대수 : 3
  • PC 대수 : 3
  • 세그먼트(경로) : 6개
  • 서브넷 나누기 : 총 6개 네트워크

IP 네트워크 할당 - 서브넷 마스크

211.109.131.0/24를 7개 대역으로 분할

IP 주소 할당

각 서브네팅된 네트워크에 맞춰 IP 설정

각 PC의 정적 라우팅 테이블 작성

각 PC의 경로는 1개, 곧 자신의 대역을 제외하고 전부 인접한 라우터(게이트웨이)로 경로 설정. 보통 디폴트 게이트웨이만 설정

각 라우터들의 정적 라우팅 테이블 구성

경로별 네트워크 대역을 확인하여 커넥티드, 정적, 디폴트 라우팅 설정
커넥티드는 포트에 직접 연결된 네트워크 대역, 설정 필요 없음

예제 - Bob to Linda

  1. Bob이 목적지 Linda(131.242)로 통신 시도
  2. 목적지 IP 주소는 자기대역이 아니므로 R2로 전달 - 디폴트 게이트웨이
  3. R2도 Connected 대역이 아니므로 R1으로 전달
  4. R1은 정적 라우팅 테이블을 참조하여 R3로 전달
  5. R3는 Connected 대역인 e2포트로 전달
  6. Linda 패킷 수신 완료

Hop & TTL

전세계 네트워크 호스트는 IP라우팅을 통해서 연결

  • Hop : 소스와 목적지 간의 경로
  • TTL(Time to Live) : 패킷이 폐기되기 전 hop 카운트

각 라우터는 패킷이 인입되면 TTL값을 1씩 감소, TTL = 0이 되면 폐기, 부정확한 패킷의 루프를 방지

라우팅 경로 확인 명령어 : Tracert, Traceroute

동적 라우팅

라우팅 알고리즘

목적지까지의 최적 경로를 계산하고 라우팅 테이블에 업데이트
동적으로 라우팅 테이블을 유지, 관리하는 알고리즘
Distance Vector / Link State로 구분

Distance Vector 라우팅

분산 업데이트, 각 라우터들에 의해 최소 비용 경로 계산 -> 인접노드와 교환
소규모 네트워크, 주기적이며 비동기 방식, 거리+방향에 초점

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

중앙 집중형 업데이트, 네트워크 전체 정보를 통해서 최소 비용 경로 계산
대규모 네트워크에 적합, 이벤트 기반의 라우팅 테이블 관리, 링크 상태에 초점

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

동적 라우팅 구분

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

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

AS

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

EGP

BGP(Border Gateway Protocol)

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

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

BGP 구성

  • eBGP : 서로 다른 AS간의 연결 및 라우팅 정보 교환 - external
  • iBGP : 동일 AS내에서 BGP 라우팅 정보 교환 - internal

BGP 설정

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

BGP 메시지

인접 라우터 관계확인 및 라우팅 정보 교환

  • 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. Connect : 연결이 완료되기를 기다리는 상태
  3. Active : 연결 실패 이후 다시 연결을 시도하는 상태
  4. Open Sent : OPEN 메시지를 보내는 상태
  5. Open Confirm : OPEN 메시지를 받은 상태
  6. Established : KEEPALIVE 메시지를 받은 상태
  • 상태별 처리 과정
  1. Idle -> Connect

    1-1. 연결 성공 : Open 메시지 보냄
    1-2. 연결 실패 : Active 상태로 변경

  2. Connect or Active -> Open Sent

    2-1. 오류 검출 : NOTIFICATION 메시지를 보냄
    2-2. 정상 : KEEPALIVE 메시지를 보냄

  3. Open Sent -> Open Confirm

    3-1. KEEPALIVE 메시지 받은 상태 : Established
    3-2. NOTIFICATION 메시지 받은 상태 : Idle

IGP

RIP(Routing Information Protocol)

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

  • RIPv1 : Classful 라우팅, 라우팅 업데이트시 서브넷 마스크 정보 전달x, 브로드캐스팅
  • RIPv2 : Classless 라우팅, 라우팅 업데이트시 서브넷 마스크 정보 전달o, 멀티캐시팅, Triggered Update 설정 가능

RIP 메시지 포맷

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

RIP 동작

  1. 요청 메시지

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

  2. 응답 메시지

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

  • RIP 메시지 수신

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

OSPF(Open Shortest Path First)

Link State를 사용하는 IGP용 라우팅 프로토콜

RIPv1의 단점을 보완

  • 홉 카운트의 제한이 없음
  • VLSM(Valiable-Length Subnet Mask)을 사용하여 효율적 IP 관리
  • 변경된 정보만 전파, 적은 량의 라우팅 트래픽 유발
  • 단순 라우터의 홉이 아닌 링크의 상태로 경로 설정
  • Convergence Time이 빠름

구성

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

  • ASBR(AS Boundary Router) : 다른 AS에 있는 라우터와 라우팅 정보 교환
  • Backbone Router : AS내의 여러 Area를 모두 연결, OSPF 도메인 내에서 모든 링크 상태 정보를 취합하고 분배
  • ABR(Area Border Router) : 각 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 Neighbor 테이블

    Neighbor을 성립한 인접 라우터 정보 관ㄹ
    Neighbor 라우터 ID 확인

  2. OSPF DB 테이블

    Neighbor에게 수신한 라우팅 업데이트 정보를 관리
    LSA 메시지를 이용하여 LSDB 동기화
    LSDB 정보를 기반으로 최적 경로를 선출

  3. 라우팅 테이블

    최적 경로 등록
    Inter Area 라우팅 정보, 다른 Area 업데이트 정보, 외부 AS 업데이트 정보

Neighbor 테이블의 라우터 상태변화

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

링크 종류

  1. Point to Point : 라우터와 라우터가 1:1로 직접 연결
  2. Transient : 여러개의 라우터가 동일한 Area에서 버스를 통해서 연결
  3. Stub : 하나의 Area에 1개 라우터만 연결
  4. Virtual : 물리적으로 백본영역과 연결이 어려운 상태에서 가상으로 연결

DR & BDR

  • DR(Designated Router)과 BDR(Back-up Designated Router)은 중복되는 LSA교환을 방지하고자 선출

  • LSA(Link State Advertisement)

    라우팅 기초 정보가 담겨진 패킷으로 링크상태, 인접 관계 형성, 요약 정보 등 네트워크/링크의 경로 비용을 포함

  • 그 외 라우터들은 LSA 정보를 교환하지 않고 Hello만 교환하고 Neighbor 관계 형성

  • DR/BDR은 다른 라우터들과 LSA 정보를 교환하여 인접 Neighbor 관계를 형성

  • OSPF Priority가 가장 높은 라우터를 DR로 선출

  • Priority가 동일하면 라우터 ID로 선출

동작과정

  1. R1이 새로 OSPF 라우팅으로 구성
  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은 다시 모든 라우터들에게 전달
profile
공부 정리 블로그

0개의 댓글