최단경로 우선 프로토콜
최단경로 우선 프로토콜 또는 OSPF(Open Shortest Path First)는 IP 라우팅 프로토콜의 한 종류로, 링크 상태 라우팅 프로토콜(Link State Routing Protocol)에 기초하여, 자율시스템(AS) 내부의 라우터들끼리 라우팅 정보를 교환하는 라우팅 프로토콜이다.[1]
개요
규모가 크고 복잡한 TCP/IP 네트워크상에서 RIP(routing information protocol)보다 규모가 큰 네트워크에서도 사용할 수 있다. 1980년대 중반에 RIP 라우팅 프로토콜이 대규모의 이질적인 망에서 라우팅하는 데에 비효율적으로 동작했기 때문에, IETF에서는 SPF 알고리즘을 기초로 하는 IP 라우팅 알고리즘을 개발하게 되었다. IP 네트워킹에서 사용하기 위한 계층구조 동적 라우팅 프로토콜로, 하나의 AS(Autonomous System)안에서 동작하는 링크 스테이트 라우팅 프로토콜이자 대규모 엔터 프라이즈 네트워크에서 가장 널리 사용되는 내부 게이트웨이 프로토콜(Interior Gateway Protocol, IGP)이다. 최단 경로를 선택하기 위해 다익스트라의 SPF(Shortest Path First) 알고리즘을 사용한다.[2]
특징
내부 게이트웨이 프로토콜에 속하기 때문에 동일 자율 시스템 내에 있는 라우터끼리만 라우팅이 가능하다. 빠른 재수렴(Fast Reconvergence) 및 부분 갱신(Partial Update) 기능을 통해 네트워크가 안정되면 라우팅 갱신 정보가 전달되도록 하는데, 이는 링크 상태가 변화할 때만 라우팅 정보를 전송할 수 있음을 의미한다. 목적지까지의 최적 경로 선택을 위한 라우팅 메트릭으로 비용 값을 사용하고, 네트워크를 영역 단위로 나누어 구분했다. 자율시스템의 내부에 영역(Area) 개념을 두어, 2레벨 계층적 라우팅을 구현하여, 라우터의 중앙 처리 장치 등의 부담을 줄였다. 각 라우터는 특정 영역에 대한 완전한 링크 상태 데이터베이스(Link State Data Base, LSDB)를 구축한다. 라우터 인터페이스에 접속된 OSPF 네트워크 종류에 따라 동작 방식이 달라진다. VLSM(Variavle Length Subnet Mask) 및 CIDR(Classless InterDomain Routing)을 지원한다.[1] 라우팅 정보 전송 시 목적지 네트워크, 라우팅 메트릭 값만 알려주는 RIP, EIGRP, BGP 등 거리벡터 라우팅 프로토콜과는 달리, 최단 경로 우선 프로토콜에서는 목적지 네트워크, 라우팅 메트릭 값 외에도 라우팅 정보를 만든 라우터 및 해당 라우팅 정보를 전송하는 라우터를 알려준다.
구성
최단경로 우선 프로토콜의 패킷은 IP 헤더와 최단경로 우선 프로토콜 공통 헤더, 최단경로 우선 프로토콜 메시지 본문으로 구성되어있다. 모든 최단 경로 우선 프로토콜 메시지들은 24바이트의 공통 헤더를 갖는데, 여기에는 버전, 타입, 패킷 길이, 발신지 IP 주소, 영역 [[아이디], 체크섬, 인증타입, 인증에 대한 필드가 있어야 한다. 타입 필드에서는 최단경로 우선 프로토콜 메시지 패킷의 5가지 종류 중 어떤 메시지인지를 표시해주어야 한다. 패킷 길이는 최단경로 우선 프로토콜의 헤더를 포함한 전체 길이가 있어야 하고, 발신지 IP 주소는 최단경로 우선 프로토콜 패킷의 발신지 라우터를 식별하는 ID를 가지고 있어야 한다. 한 자율 시스템 내에서 모든 최단경로 우선 프로토콜은 32비트의 유일한 값을 가져야 하고, 라우터 자신의 로컬 루프 백 주소를 많이 사용하여 여의치 않을 경우, 살아있는 인터페이스의 IP 주소 중 가장 숫자가 높은 것을 주요 사용한다. 영역 아이디는 최단경로 우선 프로토콜 패킷을 생성, 발송하는 라우터가 속한 최단경로 우선 프로토콜 영역의 식별 아이디를 가지고 있어야 한다. 체크섬은 16비트의 순환중복검사(Cyclic Redundancy Checking) 계산 방법으로, 뒤의 인증 관련 필드들을 제외한 나머지에 대한 체크섬을 계산한다. 인증 타입 필드에는 인증을 받지 않은 경우 0, 간단한 비밀번호 인증의 경우 1, 메시지 압축(Message Digest, MD)5의 경우 2를 가지고 있어야 하고, 인증 필드는 인증 타입 필드에 따라 달라진다.[3]
헬로 패킷
타입 코드 1번으로, 이웃 관계를 맺기 위해 최단경로 우선 프로토콜 라우터가 부팅 시 송출하는 패킷이다. 최단경로 우선 프로토콜로 설정된 라우터는 우선적으로 헬로 패킷을 사용하여 이웃한 라우터들에게 자신을 알리고, 이웃한 라우터를 파악하여 인접 관계를 생성, 유지한다. 지속 관계를 유지하고, 인접 관계 형성하는데 동의하여야 하는 매개변수를 교환하기 위해 헬로 패킷을 사용한다. 또한 헬로 패킷을 사용하여 멀티액세스 네트워크에서 DR 및 BDR 선출을 할 수 있다. 헬로 패킷의 목적지 IP 주소는 멀티캐스트와 유니캐스트 두 가지가 있다. 멀티캐스트 주소는 모든 최단경로 우선 프로토콜들이 224.0.0.5 형식의 IP 주소를 사용한다. 브로드캐스트 멀티 액세스 네트워크와 점 대 점 네트워크 등이 멀티 캐스트 주소를 사용한다. 프레임 릴레이나 비동기전달모드와 같은 비브로드캐스트 멀티 액세스 형태의 네트워크에서는 유니캐스트 IP 주소를 사용한다. 가상화 링크의 경우에도 유니캐스트 IP 주소로 직접 전송을 한다. 최단경로 우선 프로토콜의 헬로 메시지 포맷에는 최단 경로 우선 프로토콜 공통 헤더, 서브넷 마스크, 헬로 인터벌, 옵션, 라우터 우선순위, 데드 인터벌, 지정 라우터의 IP 주소, 백업 라우터의 IP 주소, 이웃 라우터 리스트 등이 있다. 최단경로 우선 프로토콜 공통 헤더는 앞에선 본 공통 헤더를 의미한다. 서브넷 마스크는 32비트로, 헬로 메시지를 보내는 해당 인터페이스의 IP 서브넷 마스크고, 헬로 인터벌은 라우터의 각 인터페이스 종별로 다른 값이 할당 가능한 송출 주기와 브로드캐스트 멀티 액세스 네트워크와 점 대 점 네트워크는 10초, 비브로드캐스트 멀티 액세스 네트워크는 30초인 기본 주기가 있다. 옵션은 총 8비트로 0 6비트와, E 플래그 1비트, T 플래그 1비트로 구성되어있다. E 플래그가 1로 설정되면, 그 영역은 스텁 영역으로, 외부 정보가 필요 없음을 알리는 것이고, T 플래그는 1로 설정되면 라우터가 다중 메트릭을 지원한다. 라우터 우선순위는 8비트로, 1은 기본 값이고, 0일 경우 선출되지 않는다. 이 숫자가 높을수록 DR 및 BDR로 선출된다. 데드 인터벌은 라우터가 죽은 것으로 선언하기까지의 시간으로, 헬로 인터벌의 4배가 기본이고, 해당 라우터로부터 헬로 패킷을 받는 즉시 리셋된다. 브로드캐스트 멀티 액세스 네트워크와 점 대 점 네트워크는 40초마다, 비브로트캐스트 멀티 액세스 네트워크는 120초마다 리셋된다. 지정된 라우터의 IP주소는 총 32비트로, DR이 지정되지 않으면 0으로 세팅하고, 백업 라우터의 IP 주소는 BDR이 지정되지 않으면 0으로 세팅한다. 이웃 라우터 리스트는 데드 인터벌 안에 헬로 패킷을 송신한 모든 이웃 라우터들의 IP 주소 목록이다. 이 필드들 중, 헬로 인터벌, 데드 인터벌, 영역 아이디, 서브넷 마스크, 인증 암호 등은 이웃 라우터들과 반드시 서로 같은 값을 공유해야 한다.[4]
데이터베이스 기술 패킷
데이터베이스 기술 패킷(Database Description Packet, DDP)은 최단경로 우선 프로토콜에서 헬로 패킷에 의해 이웃 라우터 간의 인접 관계를 형성한 후 주고받는 그들의 링크 상태와 관련된 요약 정보 패킷이다. 여기에는 자신의 영역에 대한 망 정보 데이터베이스인 링크 상태 데이터베이스의 간략하고 요약된 내용이 포함된다. 자율시스템 또는 영역에 대한 링크 상태 데이터베이스를 다른 최단경로 우선 프로토콜 라우터에게 전달할 때 주로 사용된다. 데이터베이스 기술 패킷에는 IP 헤더, 최단경로 우선 프로토콜 공통 헤더, 인터페이스 MTU, 옵션, 플래그, 링크 상태 데이터베이스 설명 순서 번호, 다수의 라우팅 정보 필드가 있다. 인터페이스 MTU 필드는 2바이트로, 단편화하지 않고 최대로 전송할 수 있는 최대 IP 패킷 크기를 가진다. 옵션 필드는 1바이트로 선택사항이다. 플래그는 1바이트로, 데이터베이스 기술 패킷을 언제 보내는지, 누가 보내는지에 따라 다르다. 0~4 비트는 예약을 의미하고, 5비트는 데이터베이스 기술 패킷을 처음(Initial, I), 보내는 것으로 1로 세팅된다. 6비트는 데이터베이스 기술 패킷이 더(More, M) 있으면 1로 세팅한다. 7비트일 경우 데이터베이스 기술 패킷을 보내는 라우터가 마스터이면 1, 슬레이브이면 0으로 세팅한다. 링크 상태 데이터베이스 설명 순서번호 필드는 링크 상태 데이터베이스 메시지별로 정렬할 수 있도록 하는 순서번호를 가진다.[5]
링크 상태 요구 패킷
링크 상태 요구 패킷(Link State Request Packet, LSU)은 최단경로 우선 프로토콜 라우터가 최신의 링크 상태 데이터베이스 정보를 유지할 수 있게 하는, 정보 요구 패킷이다. 상대 라우터가 보낸 데이터베이스 기술 패킷을 보고, 자신에게 없는 네트워크 정보가 있게 되면, 보다 상세한 네트워크 정보를 요청할 때 쓰인다. 이를 통해 최단경로 우선 프로토콜 영역 내 모든 라우터가 링크 상태 데이터베이스를 동일하게 구축하고, 유지할 수 있게 해준다. 링크 상태 요구 패킷에는 최단경로 우선 프로토콜 공통 헤더, 링크 상태 타입, 링크 상태 아이디, 광고 라우터, 다수의 라우팅 정보 필드가 있다. 링크 상태 타입 필드는 원하는 라우팅 정보의 유형을 가지고 있고, 링크 상태 아이디 필드는 라우팅 정보 식별을 위한 연결된 라우터나 네트워크의 IP 주소를 갖고 있다. 광고 라우터는 갱신 요청된 라우팅 정보를 생성하여야 하는 라우터의 ID를 가지고 있다.[6]
링크 상태 갱신 패킷
링크 상태 갱신 패킷(Link State Update Packet)은 최단경로 우선 프로토콜 동작의 핵심적인 요소로, 각 라우터가 자신의 링크 상태 정보를 광고할 때 사용하는 패킷이다. 링크 상태 요구 패킷에 응답함으로써 상대방이 요구한 자신의 라우팅 정보를 상세하게 알려줄 때도 사용한다. 링크 상태 요구 패킷을 수신한 라우터는 라우팅 테이블을 다음과 같이 구분하여 재구축한다. 링크 상태 데이터베이스에 없는 링크 상태 정보를 받으면 링크 상태 데이터베이스에 새로 추가 등록한 뒤, DR에게 라우팅 정보를 송출한다. 링크 상태 데이터베이스에 이미 있는 링크 정보 중 내용이 같은 경우, 그냥 무시한다. 링크 상태 데이터베이스에 이미 있는 링크 정보지만, 그 내용이 같지 않다면 링크 상태 데이터베이스에 새로 추가 등록한 뒤, DR에게 라우팅 정보를 송출한다. 다수의 링크 상태 요청을 하나로 모아 링크 상태 갱신 패킷에 포함시킨다. 링크 상태 갱신 패킷은 최단경로 우선 프로토콜 공통 헤더와 라우팅 정보 수, 라우팅 정보 일반 헤더, 다수의 라우팅 정보에 관한 정보를 담은 필드 등이 있다. 링크 상태 갱신 패킷은 서로 다른 몇 개의 라우팅 정보들을 포함 가능하게 한다. 몇 개의 라우팅 정보에 공통되는 일반 라우팅 정보 헤더가 있게 되고, 라우팅 정보 수 필드에는 링크 상태 갱신 패킷에 포함된 라우팅 정보의 수가 있어야 한다.[7]
링크 상태 확인 응답 패킷
링크 상태 확인 응답 패킷(Link State Acknowledgement)은 링크 상태 갱신 패킷에 대한 응답용 패킷으로써, 여러 라우팅 정보 헤더들이 하나의 패킷에 담겨 보내진다. 일반적으로 멀티캐스트에 의해 전송한다. 링크 상태 확인 응답 패킷은 최단경로 우선 프로토콜 공통 헤더와 여러 개의 라우팅 정보 헤더로 구성되어 있다.[8]
네트워크 종류
최단경로 우선 프로토콜의 네트워크는 공식적으로 점 대 점 네트워크, 브로드캐스트 멀티 액세스 네트워크, 비브로드캐스트 멀티 액세스 네트워크 3가지로 구분된다. 이 3가지 외에 시스코(Cisco)사에서 점 대 다중점, 가상 네트워크, 루프백 네트워크는 비공식적으로 추가한 네트워크 분류다. 최단경로 우선 프로토콜의 네트워크는 기본적으로 라우터 인터페이스 타입이나 2계층 링크계층 프로토콜에 의해 자동 결정되지만, 수동으로 변경할 수 있다.[9]
점 대 점
단 두 대의 라우터만이 존재하며, 서로 일대일 통신을 하는 가장 단순한 형태의 망 구성 방식이다. SPF 알고리즘을 사용하여 상대 목적지 라우터의 IP 주소는 224.0.0.5 형식을 사용한다. 점 대 점 네트워크에는 HDLC, PPP, 등 직렬 시리얼 인터페이스와 같은 WAN 링크가 있다.[10] DR이나 BDR을 선출하지 않고, 이웃을 자동 형성 한다.
브로드캐스트 멀티 액세스
브로드캐스트 멀티 액세스 네트워크(Broadcast Multiaccess Network, BMA)는 여러 장비가 하나의 네트워크에 공존하여 동시에 다중적인 연결이 가능하다. 따라서 동시에 브로드캐스팅이나 멀티 캐스팅을 허용한다는 특징을 갖는다. 여기에는 이더넷, 토큰 링, FDDI 등이 해당한다. 하나의 이더넷 스위치에 여러 최단경로 우선 프로토콜 라우터가 접속되어있는 구조로, 대규모 라우터들을 운용하는 기업체, ISP 등에서의 구성 방식으로 사용된다.
비브로드캐스트 멀티 액세스
비브로드캐스트 멀티 액세스 네트워크(NonBroadcast Multiaccess Network, NBMA)는 여러 장비가 하나의 네트워크에 공존하여 동시적인 연결을 할 수는 있지만, 브로드캐스팅이나 멀티캐스팅을 허용하지 않는 특성을 갖는 네트워크로, 프레임 릴레이(Frame Relay), ATM, X.25 등이 있다. 일반적으로 하나의 물리적 회선 내에 다수의 가상회선을 사용하여 멀티 액세스를 가능하게 한다. 최단경로 우선 프로토콜 라우터가 브로드캐스트 멀티 액세스 네트워크나 비브로드캐스트 멀티 액세스 네트워크의 형태일 때는 DR과 BDR을 선출하고, 해당 네트워크를 대표하게 한다. 상대 목적지 IP 주소는 DR과 BDR에서 동일 네트워크 내의 다른 모든 라우터에게 발송할 때 목적지 주소와 동일 네트워크 내에서 모든 DR, BDR에게 발송할 때 패킷의 목적지 주소가 다르다. 전자의 경우, SPF 알고리즘을 따라 224.0.0.5 형식의 IP 주소를 사용하고, 후자의 경우 224.0.0.6 형식의 IP 주소를 사용한다.[11]
점 대 다중점
점 대 점 형태와 조금 다르게, 1개의 노드가 다수의 여러 노드에게 방송할 수 있는 형태의 구조로, 스타형 구조나 버스형 구조에 흔히 나타난다. 점대 다중점 구조를 사용하게 될 경우 여러 노드 간에 자원의 배분과 효율적 공유 등을 고려해야 한다. 점 대 다중점 네트워크에는 멀티 드롭, 스타형, 버스형, 멀티 포인트 프레임 릴레이 등이 있다.[10]
가상
최단경로 우선 프로토콜에서 모든 영역이 항상 백본 영역에 직접 연결 되어 있어야 하지만, 어떠한 문제에 의해 물리적으로 떨어져 있는 경우, 논리적으로 연결되어 있도록 하는 가상의 연결선을 가상 네트워크라고 하고, 가상 링크라고도 한다. 가상 링크가 지나가는 영역은 트랜짓 영역이라고 한다.[12]
기타
위에 나온 네트워크 이외에도 트랜짓 네트워크, 스텁 네트워크, 백본 네트워크가 있다. 트랜짓 네트워크는 라우터가 2대 이상 함께 연결, 공유되어 있고, 경유 되는 네트워크로, DR과 BDR의 선출이 있어야 한다. 스텁 네트워크는 라우터가 1대만 연결되어 바로 종단되는 라우터로, 스텁(Stub)은 끝을 의미한다. 하나의 단일 라우터로만 접근 가능하기 때문에, 외부 네트워크와의 교신이 필요하지 않다. 일반 영역의 라우터와 달리 외부 네트워크 정보를 수신하지 않고, 트래픽을 출입시킬 수는 있지만, 지나갈 수는 없다.[13] 백본 네트워크는 중요 공유 자원들을 연결하기 위해 특수한 기술이 적용되는 중추적인 기간 네트워크로, 최단경로 우선 프로토콜 영역 간에 정보의 전달을 공유시키는 네트워크이기 때문에 반드시 거쳐 가야 한다. 구내 빌딩 간에 복잡하게 구성된 랜들의 상호 연결을 위한 중앙화된 배선구조, 고속의 기간 케이블에 의한 상호 연결성 보장, 인터넷에서 각 ISP들을 상호 연결하기 위한 고속의 기간망 등이 여기에 해당한다.[14]
최단경로 우선 프로토콜 라우터
최단경로 우선 프로토콜 라우터는 정보 교환, 동일한 링크 상태 데이터베이스 유지, 최적 라우팅 테이블 구축 등의 역할을 한다. 이웃 라우터에서 링크 상태, 라우터 정보를 수집, 전달하고, 자신의 링크 상태를 광고한다. 소속 최단경로 우선 프로토콜 영역 내의 모든 라우터는 동일한 링크 상태 데이터베이스를 갖게 되고, SPF 알고리즘을 사용하여 최적 경로를 산출하며, 라우팅 테이블을 구축한다. 최단 경로 우선 프로토콜 라우터가 관리하는 라우팅 테이블에는 이웃 테이블(인접 테이블), 링크 상태 데이터베이스(토폴로지 데이터베이스), 라우팅 테이블이 있다. 이웃 테이블은 모든 인접 라우터들의 리스트를 관리하고, 양방향 통신을 수립한 모든 인접 라우터들의 리스트를 갖고 있는 것으로 각 라우터마다 고유하다. 링크 상태 데이터베이스는 소속 망에 대한 토폴로지를 관리한다. 네트워크 내의 모든 경로 정보들의 집합으로, 네트워크 내의 토폴로지를 보여준다. 동일한 영역 내의 모든 라우터들은 동일한 토폴로지 데이터베이스를 갖는다. 링크 상태 데이터베이스를 이용하여 라우팅 테이블이 최적 경로 루트의 리스트를 관리한다. 이때 비용계산은 대역폭을 기준으로 한다.[1] 최단경로 우선 프로토콜은 라우팅 정보량의 감소를 위해 라우팅 계위에 따라 라우터를 구분한다. 각 라우터는 특정 타입 하나에만 속하지 않고, 여러 라우터 타입에 속할 수 있고, 라우터의 구분은 라우터 관리 데이터베이스 및 라우팅 정보 생성 방식에 따라서 이루어진다.
종류
최단경로 우선 프로토콜 라우터의 종류에는 백본 라우터와 내부 라우터, 그리고 경계 라우터에 해당하는 영역 경계 라우터와 자율 시스템 경계 라우터가 있다. 백본 라우터(Backbone Router)는 자율 시스템 내의 여러 영역들을 모두 연결하는 백본 영역에서 특별한 역할을 하는 라우터로, 백본 영역(0)에 관한 데이터베이스를 갖는 라우터다. 최단경로 우선 프로토콜 도메인 내 모든 링크 상태 정보를 갖게 되고, 이를 통해 다른 영역 라우팅 정보를 수집 분배하는 역할을 하게 된다. 자신의 영역에 있는 라우팅 정보를 모아서 다른 영역에 전달하고, 다른 영역의 라우팅 정보를 받아서 자신의 영역에 있는 라우터에게 전파한다. 라우팅 도메인 내 각 영역에는 다른 영역과의 통로 역할을 하는 대표 라우터가 있는데, 최단경로 우선 프로토콜에서는 DR(Designated Router)라고 부른다.[15] 내부 라우터(Internal Router)는 하나의 영역에 속하는 내부 라우터로써, 영역 내에서만 라우팅 정보를 주고받을 수 있다. 내부 라우터의 인터페이스는 모두 해당 영역의 번호를 가진다. 영역 경계 라우터(Area Border Router, ABR)는 각 영역과 백본 영역 간을 연결시켜주는 영역 간의 경계 라우터다. 영역과 영역의 경계선에 있는 라우터로, 적어도 하나의 인터페이스는 영역 0에 해당해야 한다. 영역에 붙지 못하는 경우에는 가상 링크를 통해 속하게 한다. 자율시스템 경계 라우터(AS Boundary Router, ASBR)는 다른 자율시스템에 있는 라우터와 라우팅 정보를 주고받는 외곽 라우터다. 라우터의 인터페이스 중 일부가 최단경로 우선 프로토콜의 영역 밖에 있는 경우로, RIP와 OSPF의 경우 서로 다른 프로토콜이기 때문에 재분배를 해야 하는데, 이 경우 자율시스템 경계 라우터가 된다.[2]
상태
최단경로 우선 프로토콜의 테이블은 정보 교환 과정에 따라 다운 상태부터 풀 상태까지 순서대로 상태가 바뀐다.
- 다운(Down): 연결하고자 하는 라우터가 모두 꺼져있는 상태다. 관리자는 우선순위나 라우터 아이디를 설정하여 임의 지정할 수 있고, 이때 설정한 우선순위와 라우터 아이디가 높을수록 DR이 된다. 우선순위가 0인 라우터는 DR과 BDR 선출에서 제외된다.[2] 최단경로 우선 프로토콜이 설정되고, 헬로 패킷의 송신은 완료되었지만, 수신이 이루어지지 않은 상태다.
- 초기(Init): 근접 라우터로부터의 헬로 패킷은 수신했지만, 근접 라우터는 아직 내가 보낸 헬로 패킷을 받지 못한 상태로, 상대방이 전송한 헬로 패킷 안의 이웃 리스트에 내 라우터 아이디가 없는 경우다.
- 2단계: 헬로 패킷의 교환이 완료되어 쌍방향 통신을 하는 이웃 관계를 맺은 상태다. 멀티 액세스의 경우 이때 DR과 BDR을 선출한다. 서로가 전송한 헬로 패킷 안의 이웃 리스트에 서로의 라우터 아이디가 없는 상태다.[16] 이웃 테이블이 생성된다.[2]
- 실행(Exstart): 인접한 이웃이 되는 첫 번째 단계로, 라우터 아이디가 더 높은 라우터가 마스터 라우터가 되고, 다른 라우터가 슬레이브 라우터가 된다.
- 교환(Exchange): 각 라우터가 자신의 링크 상태 데이터베이스에 저장된 라우팅 정보의 헤더만을 데이터베이스 기술 패킷에 담아 상대방에게 전송한다. 데이터베이스 기술 패킷을 수신한 라우터는 자신의 데이터베이스 내용과 비교한 후 자신에게 없거나 자신의 것보다 더 최신 정보일 경우 상대방에게 상세한 라우팅 정보를 요청하기 위해 링크 상태 요청 목록에 기록하고, 데이터베이스 기술 패킷의 정보에 자신이 모르는 상태가 없다면 바로 풀 상태가 된다.
- 전송(Loading): 데이터베이스 기술 패킷 교환이 끝난 후 자신에게 없는 정보를 링크 상태 요구 패킷에게 요청한다. 링크 상태 요구 패킷을 요청받은 라우터는 정보를 링크 상태 갱신 패킷에 담아 전송한다.
- 풀(Full): 인접한 이웃 간의 라우팅 정보 교환이 모두 끝나는 상태다.[16] 앞의 과정이 모두 끝나면 SPF 알고리즘을 통해 메트릭을 계산한다.[2]
동작 과정
- 라우터 인접 수립: 라우터들이 헬로 패킷을 보내면서 초기 단계에 들어가고, 이웃 라우터로부터 받은 헬로 패킷에서 자신의 정보를 찾으면 2단계를 선택한다.
- DR 및 BDR 선출: DR(Designated Router)이란 모든 브로드캐스트 멀티 액세스에서 하나의 라우터가 DR로 선택되는데, DR은 모든 라우터와 인접하고 네트워크에서 대변인 역할을 한다. 모든 지역 라우터의 정보를 가진 라우팅 정보를 보낸다. BR(Backup Desinated Router)이란 DR이 고장 났을 때를 대비해 두 번째 라우터가 선출된다. DR과 같은 특성을 가지고 있지만 다른 라우터들을 업데이트 하거나 라우팅 정보를 보내지 않는다. 만일 DR이 일정 시간 동작을 하지 않는다면 BDR이 DR이 되고, BDR은 새로 선출된다. 최단경로 우선 프로토콜을 설정한 후 이웃끼리 2단계 상태에 있을 때, 액세스 인터페이스의 최단경로 우선순위 프로토콜의 우선순위가 가장 높은 라우터가 DR, 다음 우선순위의 라우터가 BDR이 된다. 우선순위가 모두 동일하면 라우터 아이디가 높은 것이 DR, 그 다음이 BDR이 된다. 한 번 DR, BDR이 선출되면 더 높은 우선순위가 들어와도 바뀌지 않고, DR이 다운될 경우 BDR이 DR이 되고, BDR을 새로 선출한다. DR이나 BDR이 아닌 라우터를 DRouter라고 부른다.
- 경로 발견: 라우트 발견이라고도 하는데, 이웃 라우터로부터 데이터베이스 기술 패킷을 수신하여 자신에게 없는 망정보를 요청한다. 새로운 망정보를 수신하여 토폴로지 데이터베이스에 저장하고, 수신확인 응답 패킷을 전송한다. 먼저 자신의 라우터 아이디와 시퀀싱 정보를 포함하는 데이터베이스 기술 패킷을 교환한다. 데이터베이스 기술 패킷이 새롭거나 보다 최신의 링크 상태를 광고하고 있다면 라우터는 링크 상태 요구 패킷을 보냄으로써 전송 상태에 들어간다. 라우터는 링크 상태 요구 패킷에 대한 응답으로 완전한 링크-상태 정보 LSU 패킷을 보낸다. 라우터들은 LSAck 패킷을 보냄으로 수신을 확인한다.
- 경로 선택: 적절한 라우트 선택이라고도 한다. 완전한 링크-상태 데이터베이스를 갖고 나면 트래픽을 전달하기 위해 라우팅 테이블을 생성한다. 최단경로 우선 프로토콜은 라우트를 결정하는 데 메트릭을 사용하고 메트릭은 비용 값을 사용한다. 시스코 IOS의 경로 비용은 매체에 따라 다르다. 또한 최단경로 우선 프로토콜의 메트릭을 코스트라고 부르는데, 출발지부터 목적지까지의 각 인터페이스에서 기준 대역폭을 각 대역폭으로 나눈 값의 합계이며, IOS의 디폴트 최단경로 우선 프로토콜 대역폭은 10^8이다. 여러 경로가 생길 경우, 코스트 값이 가장 작은 경로를 결정한다.
- 라우팅 정보 유지: 연결되어 있는 라우터 중 새로운 망이 추가되면, 링크의 변화를 감지하고, LSU 패킷을 DR 라우터에게 멀티캐스트 한다. DR 라우터는 멀티캐스트 주소로 최단 경로 우선 프로토콜을 실행하고 있는 모든 라우터를 목적지로 하는 LSU 패킷을 재전송한다. LSU 멀티캐스트 패킷을 수신한 라우터가 전용회선으로 연결된 다른 망의 라우터로 LSU 패킷을 멀티캐스트한다. 라우터 B는 자신의 토폴로지 데이터베이스를 갱신하고, 라우팅 테이블을 재작성한다.
관련 용어
링크 상태 라우팅 프로토콜
토폴로지의 변화에 빠른 반응을 수행할 수 있고, 토폴로지를 이해하기 때문에 SPF 알고리즘이 라우팅 루프에 빠지는 것을 막을 수 있다. 계층적 디자인에 따라 네트워크 확장성이 보장된다. 다만 라우터 내부의 리소스 소모가 많고, 중앙 처리 장치에서 잦은 SPF 알고리즘 발생, 메모리의 네트워크 토폴로지 정보 관리 필요 등 많은 양을 처리해야 한다. 또한 반드시 계층적 구조 규칙을 따라야 하고, 경우에 따라서는 많은 튜닝 옵션을 이해해야 한다.[17]
라우터 아이디
최단경로 우선 프로토콜의 경우, 링크 상태 라우팅 프로토콜로 각 라우터가 전체 토폴로지를 이해할 수 있어야 하고, 모든 라우터가 고유한 라우터 아이디를 갖는다. 각 라우터는 고유한 라우터 아이디로 서로를 식별할 수 있어야 한다. 라우터 아이디는 IPv4 형태를 갖는데, 형태만 IPv4를 가질 뿐, 실제 IP 주소와 아무런 관련이 없다. 따라서 다른 라우터의 IP 주소를 사용하거나 실제 토폴로지에 없는 IP 주소를 라우터의 ID로 사용해도 전혀 문제가 되지 않는다. 다만 인접한 라우터와 동일한 라우터 아이디를 사용해서는 안 된다. 응답 패킷과 보낸 패킷이 같은 아이디를 가지고 있기 때문에 루프에 빠진 것으로 간주된다. 라우터 아이디를 설정하는 방법은, 관리자가 수동으로 설정하는 방법과 라우터가 자동으로 결정하는 방법 두 가지가 있다. 관리자가 명령어를 사용하여 직접 라우터 아이디를 입력하면 수동으로 설정할 수 있다. 만약 관리자가 라우터 아이디를 지정하지 않는다면, 가상 인터페이스의 IP 주소 중 숫자가 가장 큰 IP를 라우터 아이디로 사용하거나, 가상 인터페이스가 존재하지 않는 경우 물리적 인터페이스의 IP 주소 중 숫자가 가장 큰 IP를 라우터 아이디로 사용한다.
라우팅 정보
라우팅 정보(Link State Advertisement, LSA) 타입은 7가지로 분류되고, 표현하는 링크의 내용에 따라 여러 가지 타입으로 나뉜다. 영역을 종류별로 나누는 것이 가능한 것도, 라우팅 정보 타입별로 분류하여 선택적으로 받을 수 있기 때문이다. 라우팅 정보 타입은 1~7까지 7가지가 있다. 타입 1은 모든 라우터가 해당되는 것으로, 라우터의 링크 상태가 해당되고, 라우터가 위치하는 영역 내부에서 전파된다. 타입 2는 DR에서 발생하는 라우팅 정보로, 이더넷에 붙어있는 라우터 리스트가 해당하고, DR이 위치하는 영역 내부에 있다. 타입 3은 ABR에서 발생하는 라우팅 정보로, 영역 밖의 라우팅 정보 즉, 네트워크 정보가 해당되는데, 라우팅 정보가 속한 영역 내부에 존재한다. 타입 4도 ABR에서 발생하는 라우팅 정보인데, 타입 3과 달리 ASBR까지의 도달 정보를 담고 있다는 점이 다르다. 타입 4는 모든 스텁 영역을 제외한 나머지 영역에서 존재한다. 타입 7은 ASBR 라우터로부터 발생하는 라우팅 정보로, 타입 5는 최단경로 우선 프로토콜 영역 밖의 라우팅 정보를, 타입 5와 동일하지만 NSSA에서만 사용이 가능하다. 타입 이라는 단어가 들어가는 모든 영역에 존재하고, 타입 7은 NSSA 내부에만 존재한다. 타입 6은 사용하지 않는다.[2]
자율 시스템
Autonomus System으로 줄여서 AS라고 불리는 자율시스템은 인터넷에 대한 라우팅 정책을 대표하는 하나 이상의 네트워크 운영자의 통제 하에서 각기 연결된 인터넷 프로토콜 라우팅 접두사들의 모임이다. ISPF에서 지원하는 자율 시스템이 여러 개 있을 수 있으나, 인터넷은 ISPF의 라우팅 정책만을 주시한다. 이 ISP는 공식적으로 등록된 자율 시스템 번호(Autonomous System Number, ASN)을 소유하고 있다. 고유의 자율 시스템 번호를 BGP 라우팅에서 사용하기 위해 개별 AS에 할당된다. AS 번호는 인터넷상의 개별 네트워크를 고유하게 식별하기 때문에 중요하다. 2007년까지 16비트(최대 65536개)로 할당되었다. 운용관리비 절감과 보안을 유지하기 위해서 네트워크를 나눌 때에 용이하다. 자율시스템이 여러 모여서 인터넷을 형성한다.[18]
활용
논리적 라우터에서의 구성
논리적 라우터에서 최단경로 우선 프로토콜을 구성하면 논리적 라우터 전체에서 VM을 연결하고 논리적 라우터에서 ESG(Edge Sercives Gateway)로 VM을 연결할 수 있다. 최단경로 우선 프로토콜 라우팅 정책은 동일한 코스트의 경로 간에 트래픽 로드 밸런싱의 동적 프로세스를 제공한다. 최단경로 우선 프로토콜 네트워크가 라우팅 영역으로 구분되어 트래픽 흐름을 최적화하고, 라우팅 테이블의 크기를 제한한다. 영역은 동일한 영역 아이디를 가진 최단경로 우선 프로토콜 네트워크, 라우터 및 링크의 논리적 모음이고, 영역 아이디로 식별된다. 논리적 라우터에 구성된 최단경로 우선 프로토콜에 표시된 대로 라우터 아이디를 구성해야 한다. 라우터 아이디를 사용하도록 설정할 경우 기본적으로 텍스트 상자가 논리적 라우터의 업링크 인터페이스로 채워진다. 순서는 다음과 같다.
- ‘vSphere Web Client’에 로그인한다.
- ‘네트워킹 보안 및 보안’(Networking&security)의 ‘NSX Edge’를 클릭한다.
- ‘논리적 라우터’를 두 번 클릭한다.
- ‘관리’에 들어간 뒤, ‘라우팅’에서 ‘OSPF’를 선택한다.
- 최단경로 우선 프로토콜을 사용하도록 설정해야 한다.
- ‘OSPF 구성’(OSPF Configuration) 옆에 있는 ‘편집’(Edit)을 클릭하고, ‘OSPF 사용’(Enable OSPF)을 클릭한다.
- ‘전달 주소’(Dorwarding Address)에서 호스트의 라우터 데이터 경로 모듈이 데이터 경로 패킷을 전달하기 위해 사용할 IP 주소를 입력한다
- ‘프로토콜 주소’(Protocol Address)에서 ‘전달 주소’(Forwarding Address)와 동일한 서브넷 내의 고유한 IP 주소를 입력한다. 프로토콜에서 프로토콜 주소를 사용하여 피어와의 인접성을 형성한다.
- 최단경로 우선 프로토콜 서비스를 다시 시작하는 중 패킷 전달이 중단되지 않도록 하려면, ‘정상적인 다시 시작’(Graceful Restart)을 사용하도록 설정한다.
- 최단경로 우선 프로토콜 영역을 구성한다.
- 기본적으로 구성되는 NSSA(Not To Stubby 영역) 51을 삭제한다. 이는 선택사항으로 삭제하지 않아도 상관은 없다.
- ‘영역 정의’(Area Definitions)에서 ‘추가’(Add)를 클릭한다. 영역 아이디를 입력한다. NSX Edge는 십진수 형식의 영역 아이디를 지원한다. 올바른 값은 0~4294967295이다.
- ‘유형’(Type)에서 ‘보통’(normal) 또는 ‘NSSA’를 선택한다. NSSA는 AS 외부 라우터 정보가 NSSA로 플러딩되는 것을 방지한다. NSSA 외부 대상에 대한 기본 라우팅을 사용한다. 따라서 NSSA는 최단경로 우선 프로토콜 라우팅 도메인의 종단에 있어야 한다. NSSA는 외부 경로를 최단경로 우선 프로토콜 라우팅 도메인에 가져올 수 있으므로 최단경로 우선 프로토콜 라우팅 도메인에 포함되지 않은 소규모 라우팅 도메인에 전송 서비스를 제공할 수 있다.
- ‘인증’(Authentication) 유형을 선택해야 한다. 최단경로 우선 프로토콜이 영역 수준에서 인증을 수행한다.
- 영역 내 모든 라우터에는 동일한 인증 및 해당하는 암호가 구성되어 있어야 한다. MD5 인증이 작동하려면, 수신 라우터와 전송 라우터가 동일한 MD5 키를 가지고 있어야 한다. ‘없음’(None)은 인증이 필요하지 않은 기본 값이고, ‘암호’(Password) 방식을 사용할 경우 전송된 패킷에 암호가 포함된다. ‘MD5’ 인증 방법은 MD5 암호화를 사용하는 것으로 전송된 패킷에 MD5 체크섬이 포함된다.
- 인터페이스를 영역에 매핑한다.
- ‘영역-인터페이스 매핑’(Area to Interface Mapping)에서 ‘추가’(Add)를 클릭하여 최단경로 우선 프로토콜 영역에 속한 인터페이스를 매핑한다.
- 매핑할 인터페이스를 선택하고 인터페이스를 매핑할 최단경로 우선 프로토콜 영역을 선택한다.
- 기본 최단경로 우선 프로토콜 설정을 편집한다. 이것은 선택사항으로, 대부분의 경우 기본 최단경로 우선 프로토콜 설정을 유지하는 것이 좋다. 설정을 변경할 경우 최단경로 우선 프로토콜 피어에서 동일한 설정을 사용하는지 확인해야 한다. ‘Hello 간격’(Hello Interval)은 인터페이스에서 전송되는 헬로 패킷 간의 기본 간격을 표시한다. ‘비활성 간격’(Dead Interval)은 인접 네트워크가 중단되었음을 라우터가 선언하기 전에 인접 네트워크로부터 하나 이상의 헬로 패킷이 수신되어야 하는 기본 간격을 표시한다. ‘우선순위’(Priority)는 인터페이스의 기본 우선순위를 표시한다. 우선순위가 가장 높은 인터페이스는 지정 라우터다. 인터페이스 ‘코스트’(cost)는 해당 인터페이스 전체에서 패킷을 보내는 데 필요한 기본 오버헤드를 표시한다. 인터페이스 코스트는 인터페이스 대역폭과 반비례한다. 대역폭이 클수록 코스트가 적어진다.[19]
전망
링크 상태 알고리즘을 사용하여 라우터 간에 최소한의 부분만을 교환하여 망의 효율을 저하시키지 않고, 라우터의 계위를 설정하여 확장성과 대규모 망에 적용할 수 있는 성질을 가지고 있다. RIP와 같이 특정 도메인 안에서 적용할 수 있는 도메인 내의 라우팅 프로토콜로서, RIP가 가지고 있는 여러 가지 단점을 해결할 수 있지만, 그 프로토콜 자체가 복잡하다는 단점도 가지고 있다. 현재 인터넷을 비롯하여 대부분의 대규모 IP 망인 경우, OSPF의 적용은 일반화되어 있고, 기존의 RIP 망을 OSPF 망으로 바꾸는 작업도 활발하다. 이더넷 스위치의 보급으로, 상대적으로 라우터의 중요성 및 역할이 많이 줄어들기는 했지만 외부와 연결하기 위해서는 어차피 라우터가 필요하고, 이 경우 최단경로 우선 프로토콜은 도메인 내의 라우팅 프로토콜로서, 다른 어떤 라우팅 프로토콜보다도 주도적인 역할을 할 것이다.[20]
각주
- ↑ 1.0 1.1 1.2 〈OSPF Open Shortest Path First OSPF 라우팅 프로토콜〉, 《정보통신기술용어해설》
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 TIM, 〈OSPF(Open Shortest Path First)〉, 《네이버 블로그》, 2010-06-14
- ↑ 〈OSPF Message Header, OSPF Packet Header OSPF 메시지 헤더, OSPF 헤더, OSPF 공통 헤더〉, 《정보통신기술용어해설》
- ↑ 〈OSPF Hello Message, OSPF Hello Protocol, Hello Packet OSPF Hello 메시지, OSPF Hello 프로토콜, Hello 패킷〉, 《정보통신기술용어해설》
- ↑ 〈DD, DDP Database Description Packet 데이터베이스 기술 패킷〉, 《정보통신기술용어해설》
- ↑ 〈LST Link State Request Packet, LS Request Packet 링크 상태 요청 패킷, 링크 상태 요구 패킷〉, 《정보통신기술용어해설》
- ↑ 〈LSU Link State Update, Link State Update Packet 링크 상태 갱신 패킷〉, 《정보통신기술용어해설》
- ↑ 〈LSAck Link State Acknowledgement 링크 상태 확인응답 패킷〉, 《정보통신기술용어해설》
- ↑ 〈OSPF Network, OSPF Link OSPF 네트워크, OSPF 링크〉, 《정보통신기술용어해설》
- ↑ 10.0 10.1 〈PTM, PMP, PTMP Point To Point, Point to Mulri Point 점대점 구조, 점대점 링크, 점대점 연결, 점 대 다중점 구조, 점 대 다중점 링크, 점 대 다중점〉, 《정보통신기술용어해설》
- ↑ 〈NBMA, BMA Non-Broadcast Multi-Access, Broadcast Multi-Access Network〉, 《정보통신기술용어해설》
- ↑ 〈Virtual Link, Virtual Network 가상링크〉, 《정보통신기술용어해설》
- ↑ 〈Stub Network, Stub Area, Stub Router 스텁 네트워크, 스텁 라우터〉, 《정보통신기술용어해설》
- ↑ 〈BN, CB Backbone, Backbone Network, Core Network 백본, 백본 망, 기간 망, 간선 망, 핵심 망, 코어 망〉, 《정보통신기술용어해설》
- ↑ 〈OSPF Router OSPF 라우터〉, 《정보통신기술용어해설》
- ↑ 16.0 16.1 Nirsa, 〈(Network) 동적 라우팅 OSPF(Open Shortest Path First) 개념 및 설정 방법〉, 《티스토리》, 2020-01-10
- ↑ 피망IT, 〈OSPF(Open Shortest Path First) 개념 (1)〉, 《티스토리》
- ↑ 〈자율 시스템〉, 《위키백과》
- ↑ 〈논리적 (분산) 라우터에서 OSPF 구성〉, 《VMware》, 2019-05-31
- ↑ 태사자, 〈OSPF의 간단한 소개〉, 《네이버 블로그》, 20104-02-10
참고자료
- 〈OSPF Open Shortest Path First OSPF 라우팅 프로토콜〉, 《정보통신기술용어해설》
- TIM, 〈OSPF(Open Shortest Path First)〉, 《네이버 블로그》, 2010-06-14
- 〈OSPF Message Header, OSPF Packet Header OSPF 메시지 헤더, OSPF 헤더, OSPF 공통 헤더〉, 《정보통신기술용어해설》
- 〈OSPF Hello Message, OSPF Hello Protocol, Hello Packet OSPF Hello 메시지, OSPF Hello 프로토콜, Hello 패킷〉, 《정보통신기술용어해설》
- 〈DD, DDP Database Description Packet 데이터베이스 기술 패킷〉, 《정보통신기술용어해설》
- 〈LST Link State Request Packet, LS Request Packet 링크 상태 요청 패킷, 링크 상태 요구 패킷〉, 《정보통신기술용어해설》
- 〈LSU Link State Update, Link State Update Packet 링크 상태 갱신 패킷〉, 《정보통신기술용어해설》
- 〈LSAck Link State Acknowledgement 링크 상태 확인응답 패킷〉, 《정보통신기술용어해설》
- 〈OSPF Network, OSPF Link OSPF 네트워크, OSPF 링크〉, 《정보통신기술용어해설》
- 〈PTM, PMP, PTMP Point To Point, Point to Mulri Point 점대점 구조, 점대점 링크, 점대점 연결, 점 대 다중점 구조, 점 대 다중점 링크, 점 대 다중점〉, 《정보통신기술용어해설》
- 〈NBMA, BMA Non-Broadcast Multi-Access, Broadcast Multi-Access Network〉, 《정보통신기술용어해설》
- 〈Virtual Link, Virtual Network 가상링크〉, 《정보통신기술용어해설》
- 〈Stub Network, Stub Area, Stub Router 스텁 네트워크, 스텁 라우터〉, 《정보통신기술용어해설》
- 〈BN, CB Backbone, Backbone Network, Core Network 백본, 백본 망, 기간 망, 간선 망, 핵심 망, 코어 망〉, 《정보통신기술용어해설》
- 〈OSPF Router OSPF 라우터〉, 《정보통신기술용어해설》
- Nirsa, 〈(Network) 동적 라우팅 OSPF(Open Shortest Path First) 개념 및 설정 방법〉, 《티스토리》, 2020-01-10
- 피망IT, 〈OSPF(Open Shortest Path First) 개념 (1)〉, 《티스토리》
- 〈자율 시스템〉, 《위키백과》
- 〈논리적 (분산) 라우터에서 OSPF 구성〉, 《VMware》, 2019-05-31
- 태사자, 〈OSPF의 간단한 소개〉, 《네이버 블로그》, 20104-02-10
같이 보기