Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

동적 라우팅 프로토콜 - OSPF 본문

네트워크/Cisco

동적 라우팅 프로토콜 - OSPF

세레프 2023. 6. 6. 23:47

네트워크에서 서로 다른 subnet으로 데이터를 전송할 때, 라우터를 통해 해당 subnet으로 전송할 수 있는 최적의 경로를 선택해서 데이터를 전송한다. 이때, 라우터는 라우팅 테이블을 기반으로 최적의 경로를 설정하는데, 이를 라우팅이라고 하며, 라우팅 테이블에 네트위크의 정보를 저장하는 것 라우팅 작업이라고 한다. 

 

라우터

컴퓨터와 컴퓨터는 네트워크로 연결이 되어 있는데, 이때 사용되는 네트워크는 하나의 프로토콜이 아닌 여러 개의 프로토콜로 구성되어 있다. 이렇게 여러 개의 프로토콜을 연결하기 위해서는

my-it-diary.tistory.com

 

라우팅 작업

 라우터 자신과 링크되어있는 네트워크 정보만 라우팅 테이블에 저장하고 있다. 그래서 적절한 경로로 라우팅하기 위해서는 직접 연결 되지 않은 네트워크 정보를 라우팅 테이블에 추가해야 한다. 즉, 최적 경로를 결정하기 위해서는 경로의 라우팅 정보를 라우팅 테이블에 저장해야 하며, 이 과정을 라우팅 작업이라고 한다. 

 

라우팅 작업은 관리자가 직접 라우팅 정보를 추가하는 정적 라우팅 라우팅 프로토콜을 통해 자동적으로 추가하는 동적 라우팅으로 나눌 수 있다. 이때, 라우팅 프로토콜이란 목적지 네트워크로 가는 최적 경로를 알아내기 위해 사용하는 프로토콜로, 라우팅 테이블에 올라오기 위해서는 라우팅 프로토콜이 필요하다. 

IGP, EGP
 네트워크를 그룹별로 나눈다고 했을 때, 그룹 내부에서 라우터 정보 교환을 하기 위해 사용하는 프로토콜 IGP라고 하며, 그룹 외부의 라우터와 내부의 라우터간의 정보교환을 하기위해 사용하는 프로토콜 EGP라고 한다. 

 예시를 들면, 같은 ISP에서 사용하는 라우터 끼리 정보를 교환하는 경우에는 IGP를 사용하며, 다른 ISP에서 사용하는 라우터 끼리 정보를 교환하는 경우에는 EGP를 사용한다. 

 

동적 라우팅

 관리자가 직접 경로를 입력하지 않아도 자동적으로 라우팅 테이블에 네트워크 정보를 저장하는 라우팅 작업으로, 동적 라우팅 프로토콜을 통해 구성 되어 있는 라우터의 네트워크 정보를 받아서 최적 경로를 탐색하고 라우팅 테이블에 올린다.

 이때, 동적 라우팅에 사용하는 라우팅 프로토콜 동적 라우팅 프로토콜이라고 하며, 무엇을 기준으로 최적 경로를 결정하냐에 따라서 동적 라우팅 프로토콜이 분류된다.

최적 경로 결정 기준 프로토콜 종류 해당 종류에 소속된 프로토콜
지나가는 라우터의 갯수(Hop의 수) Distance Vector routing protocol RIPv1, IGRP
대역폭 속도 Link state OSPF,IS-IS, EIGRP

 동적 라우팅 프로토콜을 사용하는 경우, 라우터에 저장되어 있는 네트워크 정보를 프로토콜을 통해 교환하기에 때문에, 관리자 일일이 경로를 입력하지 않는다. 그리고 서로 네트워크 정보에 변화가 생기면 정보를 교환하도록 설정돠어 있기 때문에, 경로에 문제가 발생하거나 변화가 생기더라도 변화한 정보를 전송해서 라우팅 테이블을 최신화 시킨다. 이때, 라우터끼리 네트워크 정보를 교환하기 위해서 동적 라우팅 프로토콜은 두 라우터가 같은 라우팅 프로토콜이여야 한다.

 

 하지만 라우터가 직접 최적 경로를 계산하기 때문에, 라우팅 속도가 느리며, 라우터의 CPU와 메모리를 많이 사용하기애 라우터의 성능이 정적 라우팅 보단 좋지않다. 그리고 일부 동적 라우팅 프로토콜은 라우터 테이블을 주기적으로 교환하기에 대역폭의 일부를 사용한다.

 

OSPF

 OSPF는 대역폭, 딜레이값, 신뢰도를 metric값으로 사용하는 프로토콜로, 여러 라우터를 지나도 해당 경로의 메트리값에 따라 최적경로가 결정된다.

 그리고 두 라우터가 같은 프로토콜로 연결되면, 연결된 두 라우터는 이웃상태가 되며, 변경사항이 발생하는 경우에만 해당 프로토콜을 통해 인접 라우터에게 정보를 전송된다.

 이때, 프로토콜에 저장되는 classless 네트워크 정보이며, 와일드 마스크도 같이 정보에 추가하기에 자동축약이 이뤄지지 않는다. 

 

 OSPF는 같은 area단위로 네트워크 정보를 교환하기에, 같은 프로세스 번호를 사용한다 하더라도 네트워크 정보의 area가 다르다면, area 0(백본 area)과 연결되어 있지 않는 이상, 해당 네트워크의 정보는 공유되지 않는다. 반대로 다른 프로세스 번호를 사용하더라도 area만 같으면 라우터간의 연결에는 영향을 주지 않는다.

  • router ospf [프로세스 넘버] : ospf를 활성화 / 설정하기 위한 명령어
  • network [subnet IP주소] [와일드 마스크] : OSPF를 통해 해당 네트워크 정보를 전달하도록 하는 명령어, 와일드 마스크를 통해 호스트 IP 주소의 범위를 결정한다.

//router 0
Router(config)#router ospf 7
Router(config-router)#network 192.168.10.0 0.0.0.255 area 1
Router(config-router)#network 30.30.30.0 0.0.0.255 area 1

//router 1
Router(config)#router ospf 7
Router(config-router)# network 20.20.20.0 0.0.0.255 area 0
Router(config-router)# network 192.168.20.0 0.0.0.255 area 0
Router(config-router)# network 30.30.30.0 0.0.0.255 area 1

//router 2
Router(config)#router ospf 1
Router(config-router)# network 20.20.20.0 0.0.0.255 area 0
Router(config-router)# network 192.168.30.0 0.0.0.255 area 0

 

가상 링크

  OSPF는 서로 다른 area에서 네트워크를 교환할 때, 서로에게 필요한 네트워크 정보만 교환한다. 그리고 area가 2개 이상일 경우, 백본 area(area 0)이 필요하며, 모든 area는 백본 area물리적으로 연결 되어 있어야 한다.

 즉 서로 같은 area에 있지 않는 네트워크 정보는 백본 area와 연결되어 있지 않으면 area끼리는 공유되지 않는다. 하지만 백본 area에 이어저 있지않은 area도 통신이 가능하게 해야하는 경우가 있다. 그럼 백본 area와 연결되어 있지 않은 area는 어떻게 연결해서 사용할 수 있을까?

 

 만약 백본 area에 물리적으로 링크 되어 있지 않는다면, 가상 인터페이스를 통해 링크 시켜야한다. 이를 가상링크라고 하는데, area 0와 연결되어 있는 area를 transit area로 만들어서 논리적으로 링크 되도록 하는 기술로, area 0과 연결되어 있는 라우터의 라우터 ID와 area 0과 연결되어 있지 않은 area와 연결된 라우터의 라우터 ID를 연결해서 경유 라우터로 설정한다. 

 이때 라우터 ID는 제일 높은 첫번째 옥텟을 가진 IP를 라우터 ID로 잡으며, 물리 인터페이스보다 가상인터페이스로 우선시로 잡기 때문에, 루프백 인터페이스(자신을 표현하는 실험용 인터페이스)를 생성해서 IP주소를 부여한다. 

show ip ospf interface 로 확인

  1. 논리 인터페이스 생성
    • interface loopback [번호] : 루프백 인터페이스 생성
    • ip address [IP 주소] [Subnetmask] : IP주소 부여
  2. 가상 링크 설정
    • area [ transit area로 만들 area ] virtual-link [area의 말단 라우터 ID] : area의 말단 라우터 ID를 통해 해당 area를 transit area로 설정하는 명령어

//router 0
Router(config)#int loopback 1
Router(config-if)#ip add 2.2.2.2 255.255.255.0
Router(config-if)#
Router(config-if)#router ospf 7
Router(config-router)#network 192.168.10.0 0.0.0.255 area 1
Router(config-router)#network 30.30.30.0 0.0.0.255 area 1
Router(config-router)#net 10.10.10.0 0.0.0.255 area 2
Router(config-router)#area 1 virtual-link 1.1.1.1

//router 1
Router(config)#int loopback 1
Router(config-if)#ip add 1.1.1.1 255.255.255.0
Router(config-if)#
Router(config)#router ospf 7
Router(config-router)# network 20.20.20.0 0.0.0.255 area 0
Router(config-router)# network 192.168.20.0 0.0.0.255 area 0
Router(config-router)# network 30.30.30.0 0.0.0.255 area 1
Router(config-router)#area 1 virtual-link 2.2.2.2

//router 2
Router(config)#router ospf 7
Router(config-router)# network 20.20.20.0 0.0.0.255 area 0
Router(config-router)# network 192.168.30.0 0.0.0.255 area 0

//router 5
Router(config)#router ospf 7
Router(config-router)# network 10.10.10.0 0.0.0.255 area 2
Router(config-router)# network 192.168.40.0 0.0.0.255 area 2

'네트워크 > Cisco' 카테고리의 다른 글

라우터 프로토콜 재분배  (0) 2023.06.07
동적 라우팅 프로토콜 - EIDRP  (0) 2023.06.04
라우팅 테이블 축약  (0) 2023.06.04
게이트웨이 이중화  (0) 2023.05.29
동적 라우팅 작업 - RIP  (0) 2023.05.28
Comments