| 리포트 | 기술문서 | 테크-블로그 | 글로벌 블로그 | 원샷 갤러리 | 통신 방송 통계  | 한국 ICT 기업 총람 |

제품 검색

| 네트워크/통신 뉴스 | 기술자료실 | 자유게시판 |  
 
 
섹션 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/UHD IoT SDN/NFV Wi-Fi Video Streaming KT SK Telecom LG U+ OTT Network Protocol CDN YouTube Data Center
 
스폰서채널 |

 

  스폰서채널 서비스란?
OSPF 쉽게 이해하기 (1편: Shortest Path Tree 토폴로지 생성 절차)
OSPF Basic (Part 1: Build of Shortest Path Tree Topology)
May 07, 2012 | By 유창모 (cmyoo@netmanias.com)
코멘트 (23)
47

지난 시간에 LTE over MPLS L3VPN 망을 위한 IP/MPLS 프로토콜을 설명 드리면서 "모든 IP 라우터는 OSPF나 IS-IS와 같은 IGP 프로토콜을 이용하여 IP 망 토폴로지 정보를 서로간에 주고 받고, Shotest Path Tree 토폴로지를 구성한다"라고 말씀을 드렸었는데요.

오늘은 OSPF 프로토콜을 통해 어떻게 라우터들이 OSPF 망(IP 망)의 전체 토폴로지를 알아내고, Shortest Path Tree를 구성하는지 살펴보도록 보겠습니다.

사실 OSPF와 같은 라우팅 프로토콜은 라우팅 비전문가들에게는 그 원리를 이해하기가 쉽지 않은 기술 분야입니다. Cisco나 Juniper 장비의 라우팅 설정(CLI)을 잘 하시는 분들은 많이 보았는데, 프로토콜 원리를 이해하고 계시는 분들은 그리 많지 않은 듯 합니다.

 

오늘 설명은 "라우팅 비전문가"도 쉽게 그 기술을 이해할 수 있도록 "그림"을 많이 넣어 보았습니다.

 

OSPF 네트워크 토폴로지

 

 

그림 상에 5개의 OSPF 라우터(R1 ~ R5)가 존재하고, 라우터간 연결 링크에 대한 IP 주소와 OSPF Cost 및 각 라우터의 Loopback 주소(예. R1의 경우 10.1.0.1)가 표시되어 있습니다. 그리고 파란색 줄(링크)가 OSPF가 enable되어 있음을 표시하고 있습니다.

  • OSPF에서 얘기하는 Cost란 각 링크로 패킷을 전달하는데 드는 "소요 비용"으로 OSPF는 Cost가 작은 경로를 최적의 경로(Shortest Path)로 인식합니다. 통상적으로 Link Cost는 링크 속도(bandwidth of a link)에 따라 그 값을 정의합니다. 그래서 예로 100Mbps 링크보다는 1GE 링크 Cost가 작을 것이고, 1GE 링크 보다는 10GE 링크가 Cost가 작을 것입니다. (Link Cost는 라우터의 각 Interface별로 운영자가 CLI를 통해 설정함)
  • 라우터간에 OSPF 프로토콜 메시지를 주고 받기 위해서는 각 라우터를 식별할 수 있는 IP 주소(OSPF RID(Router ID))가 필요한데 이를 위해 보통 Loopback 주소를 사용합니다. Physical Link의 IP 주소를 사용해도 상관은 없지만 다음과 같은 차이로 인해 Loopback 주소를 선호하지요.
    • Physical Link IP 주소 사용의 경우: 해당 Physical Link가 down 되는 경우 그 IP 주소가 사라짐. 즉, 이 주소를 OSPF RID로 사용한 OSPF 라우터는 더 이상 OSPF neighbor(나와 연결되어 있는 라우터)와 통신이 불가함
    • Loopback IP 주소 사용의 경우: Loopback 주소는 어떤 특정 Physical Link와 바인딩되어 있지 않은 Logical한 주소이기 때문에, Physical Link가 down되더라도 Loopback 주소는 계속 살아 있음
 

각 라우터는 자신의 링크 IP 주소를 다른 라우터들로 전파

 

1. R1이 자신의 링크 정보를 다른 OSPF 라우터들로 전파

 

 

R1은 자신의 Link(Interface) 주소와 Loopback 주소를 Router-LSA에 실어 R2, R3로 전달합니다[t = 1]. 그리고 이를 수신한 R2, R3는 Router-LSA가 수신된 링크를 제외한 나머지 링크로 Router-LSA를 flooding 합니다. 그래서 R4와 R5는 동일한 Router-LSA를 2개씩 수신합니다[t = 2]. 이 경우, LSA 식별자에 해당하는 {LS Type, Link State ID, Advertising Router}가 동일한 경우 두번째 수신한 LSA를 폐기합니다.

  • LS Type: Router-LSA (1), Network-LSA (2), External-LSA (5) 등의 타입을 구분
  • Link State ID: Router-LSA인 경우 Advertising Router와 동일 값 (10.1.0.1)
  • Advertising Router: Router-LSA를 생성한 라우터의 ID (OSPF RID 즉, Loopback 주소 = 10.1.0.1) 
R1이 보낸 Router-LSA에 포함되는 정보는 다음과 같습니다. (위 그림의 우측 상단을 보세요)
  • Link Type: 링크 타입을 가리키는 값으로 그 타입에 따라 Link ID와 Link Data에 들어가는 값이 달라짐
    • Link Type = 1: Point-to-point connection(그림상에서 라우터간 연결은 모두 여기에 해당)
    • Link Type = 3: Stub network(라우터의 loopback 주소)
  • Link ID: R1과 연결된 OSPF Neighbor의 Router ID(Link Type=1,  OSPF Neighbor간에 Hello 메시지를 주고 받는 과정에서 Neighbor의 RID를 알게 됨) 혹은 R1의 Loopback 주소(Link Type=3)
  • Link Data: R1의 Link IP 주소(Link Type=1) 혹은 R1의 Loopback 주소에 대한 subnet mask (/32 = 255.255.255.255)
  • Metric: 해당 Link의 cost(CLI로 각 링크의 cost는 설정함). Loopback 주소(stub network)인 경우 cost는 0
이와 같이 R1이 보낸 Router-LSA를 R2 ~ R5가 수신 하게 되면 각 라우터는 그 정보를 OSPF LSDB(Link State DataBase)에 저장하고 그 정보를 바탕으로 OSPF Topology를 그리게 됩니다. 현재까지의 정보로 R1 ~ R5 라우터가 알 수 있는 Topology는 다음과 같습니다.
  • R1의 Loopback 주소 (10.1.0.1/32)
  • R1의 Link 주소 1.1.1.1은 R2(10.1.0.2)와 연결되어 있음
  • R1의 Link 주소 1.1.2.1은 R3(10.1.0.3)과 연결되어 있음
 
2. R2가 자신의 링크 정보를 다른 OSPF 라우터들로 전파
 

 

R2는 자신의 Link(Interface) 주소와 Loopback 주소를 Router-LSA에 실어 R1, R4, R5로 전달하고[t = 1], 이를 수신한 R1, R4, R5는 Router-LSA가 수신된 링크를 제외한 나머지 링크로 Router-LSA를 flooding 합니다[t = 2]. 
 
R1, R3, R4, R5는 이 정보(Router-LSA)를 LSDB에 저장하고, 이제 위 그림과 같은 "OSPF Network Topology"를 알게 됩니다.
 
3. R3가 자신의 링크 정보를 다른 OSPF 라우터들로 전파
 

 

R3는 자신의 Link(Interface) 주소와 Loopback 주소를 Router-LSA에 실어 R1, R4, R5로 전달하고[t = 1], 이를 수신한 R1, R4, R5는 Router-LSA가 수신된 링크를 제외한 나머지 링크로 Router-LSA를 flooding 합니다[t = 2]. 
 
R1, R2, R4, R5는 이 정보(Router-LSA)를 LSDB에 저장하고, 이제 위 그림과 같은 "OSPF Network Topology"를 알게 됩니다.

 

4. R4가 자신의 링크 정보를 다른 OSPF 라우터들로 전파

 

 

R4는 자신의 Link(Interface) 주소와 Loopback 주소를 Router-LSA에 실어 R2, R3로 전달하고[t = 1], 이를 수신한 R2, R3는  Router-LSA가 수신된 링크를 제외한 나머지 링크로 Router-LSA를 flooding 합니다[t = 2]. 
 
R1, R2, R3, R5는 이 정보(Router-LSA)를 LSDB에 저장하고, 이제 위 그림과 같은 "OSPF Network Topology"를 알게 됩니다.
 

5. R5가 자신의 링크 정보를 다른 OSPF 라우터들로 전파

 

 

R5는 자신의 Link(Interface) 주소와 Loopback 주소를 Router-LSA에 실어 R2, R3로 전달하고[t = 1], 이를 수신한 R2, R3는  Router-LSA가 수신된 링크를 제외한 나머지 링크로 Router-LSA를 flooding 합니다[t = 2]. 
 
R1 ~ R4는 이 정보(Router-LSA)를 LSDB에 저장하고, 이제 위 그림과 같은 "OSPF Network Topology"를 알게 됩니다.

 

역자 주 1: 실제로는 모든 라우터가 동시 다발적으로 자신의 Router-LSA를 OSPF neighbor들로 flooding 하지만, 본 설명에서는 이해를 돕고자 각 라우터가 순차적으로 Router-LSA를 보낸다고 하였습니다.
역자 주 2: 라우터의 링크 타입을 point-to-point로 설정(CLI)해야 Router-LSA가 나가게 되고, 그렇지 않은 경우(예. broadcast 타입) Network-LSA가 나가게 됩니다. 라우터간 링크 연결은 point-to-point가 일반적이므로 초보자님들께서는 Router-LSA만 생각하세요~*

 

각 라우터에서 OSPF Topology 그림 그리기

 

 

5개의 라우터들간에 Router-LSA를 주고 받게 되면, 모든 OSPF 라우터는 동일한 LSDB를 가지게 됩니다.

그리고 이 LSDB를 통해 위 그림과 같이 각 라우터는 모두 동일한 그림의 OSPF Topology Map을 완성합니다.

 

Shortest Path Tree 구성하기

 

 

위에서 생성한 OSPF Topology를 기반으로 각 라우터는 목적지(Destination Network)로 가는 최단 경로 즉, Shortest Path Tree를 구성합니다.

그리고 이렇게 만들어진 Shortest Path 정보가 라우터의 RIB(Routing Information Base)와 FIB(Forwarding Information Base)에 인스톨 됩니다. (참고: RIB는 OSPF와 같은 라우팅 프로토콜이 돌고 있는 Control Plane에서 관리하는 라우팅 테이블이고, FIB는 패킷을  포워딩(wire-speed packet forwarding by packet processor)하는 Data Plane에 위치한 라우팅 테이블입니다.)

 

OSPF에 대해 좀 더 자세히 알고 싶으신 분들을 위해 2권의 책을 추천드립니다.

  • John T. Moy, "OSPF: Anatomy of an Internet Routing Protocol", 1998, Addison-Wesley
    • OSPF 창시자의 저서이고, 프로토콜 규격에 충실
  • Jeff Doyle, "OSPF and IS-IS: Choosing an IGP for Large-Scale Networks", 2005, Addison-Wesley
    • OSPF와 IS-IS를 비교하였고, 또한 프로토콜 규격의 설명과 Cisco/Juniper 장비 설정도 함께 다루고 있음 (추천!)

 

심상민 2012-05-09 08:33:42
라우터 설정방법에 대해서만 알았었는데, 그 원리를 이해할 수 있게 되어 참 좋네요.

감사합니다~
박형규 2012-05-11 16:29:27
SPT 에 대해 아주 쉽게 잘 설명해 주셨네요..
초보자도 금방 이해할 수 있을것 같습니다. ^^
다만 cost 관련 예에서 단순 거리에 따른 cost 비교예시는 부적절한듯 합니다.
비전문가가 봤을때는 10M거리 와 100M거리 사이에도 cost 비교가 되어 10M거리 링크가 더 낮은 cost 를 가진다고
오해할 수도 있을듯 하네요.^^
넷매니아즈 2012-05-11 16:40:32
아~ 박형규님 말씀처럼 오해하실 수도 있겠네요.

보통 라우터의 Cost 설정은 Link Speed (Bandwidth of Link)로 하니 이 말만 남기고 거리 얘기는 빼야 겠네요~

앞으로도 좋은 의견 부탁드릴께요. 감사합니다.
조성민 2012-05-13 20:55:16
설명해 주신 부분 중 Link ID와 Link Data의 정보가 바뀐거 아닌가요 ? (Link ID: 인접 라우터 ID, Link Data: 로컬 인터페이스 주소로 되어야 하지 않나요?) 그리고 OSPF 인터페이스 타입에 따라 LSA에 들어가는 정보가 달라서 타입도 언급이 되어야 할 듯 한데요
넷매니아즈 2012-05-14 12:46:43
조성민님. 다 옳은 말씀이십니다.

오류 수정과 함께 Link Type에 대한 언급도 포함시켰습니다.

혹시 또 다른 오류가 있으면 알려 주세요~ 감사합니다. ^^*
서상원 2014-07-04 15:09:04

너무 좋은 글입니다.

OSPF 기본 지식을 습득하는데 큰 도움이 될것 같습니다.

감사드려요.^^
 

newer 2015-04-08 16:09:07

좋은 잘 올려주셔서 감사합니다. ~^^

박정숙 2015-09-09 15:13:46

안녕하세요? 글 잘 읽고 갑니다. 그런데 보통 인터넷 검색하면 OSPF의 메트릭(코스트)은 hop count, delay, bandwidth를 고려한다고 되어 있잖아요. 진짜 그런가요? hop count, bandwidth까지는 그런 것 같은데, delay는 설정 상으로는 잘 안 보이는 것 같습니다. 혹시 다른 고려항목이 있다면 어떤 것이 있는지 아시면 좀 가르쳐 주세요. 2328 표준에도 BW 외에 다른 것은 안 보이는 것 같아서 드리는 말씀입니다. 감사합니다.

박승균 2016-01-21 14:25:19

초보자인 저도 이해가 될 정도로 쉽게 정리해주셔서 감사합니다.

궁금한점은,

  - R1->R4로 가야하는 트래픽이 있을 때

  - 기본경로(R1->R2->R4)가 트랙픽이 폭주하게 될 경우에

  - 대체경로(R1->R3->R4)로 우회하는 기능도 가지고 있나요?

즉, CLI로 운용자가 Link Cost를 설정하지 않고 시스템간에 자동으로 Link 품질을 확인하여 Cost를 변경운용 하는 등의 기능이 있는지요?

쉬운 설명 부탁드립니다. 감사합니다.

이승목 2016-01-26 12:18:22
kjp@gabia.com 2016-03-31 17:07:02

와, 매우 좋은 글 감사드립니다.

rag 2016-04-24 08:49:32

초보자 기준이..?

주니예영 2016-07-27 10:56:18

좋은글 감사합니다. OSPF의 기본개념부터 작동원리까찌 아주 잘 이해할 수 있었습니다.

한가지 궁금한점은 RID를 지정할때 루프IP를 사용하는게 좋다고 하셨는데요.

이게 링크IP를 사용하게 되면 해당포트 다운시 대체경로에 있는 라우터까지도 통신이 끊겨버려서 그런건가요?

루프IP의 경우는 그 반대이구요.

 

이지훈 2016-07-28 10:56:17

운영자 입장에서 관리의 편의성과 말씀하신 인터페이스 다운의 염려가 없어 loopback 주소를 사용하는 것으로 알고 있습니다.

아래 링크 참고하세요.

http://defaultnetworking.blogspot.kr/2012/05/advantages-of-loopback-interfaces-on.html

안성기 2016-08-04 13:53:24

OSPF 설명 갑 입니다..

 

감사합니다 ㅎ

머지이게 2016-09-27 10:24:57

초보자라니...; 네트웍에 이해도가 풍부한 중~상급 엔지니어 전용 설명글인 듯;;

111 2017-03-30 21:42:15

R1은 자신의 Link(Interface) 주소와 Loopback 주소를 Router-LSA에 실어 R2, R3로 전달합니다[t = 1]. 그리고 이를 수신한 R2, R3는 Router-LSA가 수신된 링크를 제외한 나머지 링크로 Router-LSA를 flooding 합니다. 그래서 R4와 R5는 동일한 Router-LSA를 2개씩 수신합니다[t = 2]. 이 경우, LSA 식별자에 해당하는 {LS Type, Link State ID, Advertising Router}가 동일한 경우 두번째 수신한 LSA를 폐기합니다.

 

이 부분에 대해서 궁금한게 있는데 두번째 수신한 lsa를 폐기한다는게 cost값이 더 높아 뒤늦게 수신된 r3쪽으로부터의 lsa flooding을 폐기한다는 말이랑 같은 말인가요??

조득희 2017-06-21 11:46:29

감사합니다.

 

 2017-08-24 13:31:37

진짜 잘 설명하신글이에요 ㅜㅜ감사합니다

 2017-10-03 15:05:06

너무 감사합니다!!! 

모모네 2018-04-18 09:28:46

정말 좋은 설명 감사합니다!

절대로 2018-07-11 10:41:06

이게 초보자 수준이라니 ㅋㅋ;;  절대 초보자 수준으로 쉽게 알아들을만한 내용이 아닌데

무슨 이유 때문에 저런걸 설정해줘야 한다든지 어떤 원리에 의해서 왜 써야한다든지에 대한것도 없이

그냥 일반적으로 구성에 대해서만 소개 되어있네.

see 2019-03-27 12:50:13

t2에는 수신된 곳을 제외한 곳에 보내니..R1에는 보내지 않지요?

Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.
View All (946)
5G (65) AI (5) ALTO (1) AR (2) ARP (6) AT&T (1) Akamai (5) Authentication (5) BT (1) Backhaul (2) Big Data (2) Bridging (5) C-RAN/Fronthaul (17) CDN (20) CIoT (2) CPRI (6) Carrier Aggregation (5) Charging (2) China Mobile (2) Cisco (6) CoMP (3) Comcast (1) DHCP (6) DNS (15) Data Center (15) EMM (1) EPS Bearer (7) Ethernet (3) FTTH (8) GSLB (5) Gigabit Internet (17) Google (17) Google Global Cache (8) Google TV (1) HLS (5) HTTP (5) HTTP Adaptive Streaming (7) HTTP Progressive Download (2) Handover (5) Huawei (1) IGMP (3) IP (6) IP Allocation (8) IP Routing (20) IPSec (4) IPTV (25) IoST (2) IoT (42) KT (44) Korea (8) Korea ICT Vendor (1) L3 Switch (5) LG U+ (24) LTE (99) LTE-A (10) LTE-A Pro (1) LTE-M (1) LTE-U (3) LoRa (5) MEC (4) MPLS (3) MWC 2013 (1) MWC 2015 (3) MWC 2016 (2) MWC 2017 (1) Mobile IPTV (1) Multi-Screen (1) Multicast (2) NAT (9) NB-IoT (6) NTT Docomo (1) Netflix (5) Network Protocol (49) Network Slicing (3) OSPF (3) OTT (20) Operator CDN (1) P2P (3) PS-LTE (3) Pooq (2) QoS (5) RCS (1) RRH (1) Request Routing (3) SD-WAN (8) SDN/NFV (33) SK Broadband (1) SK Telecom (37) Samsung (2) Security (8) Self-Driving (3) Shortest Path Tree (2) Small Cell (3) Spectrum Sharing (1) TAU (2) Transparent Caching (9) UHD (7) VLAN (2) VPN (3) VR (3) Video Streaming (22) VoLTE (1) VoWiFi (1) WAN Optimization (1) Wi-Fi (30) WiBro(WiMAX) (2) YouTube (16) eICIC (1) eMBMS (1) ePDG (6) u+ tv G (4) 로컬 5G (1)

 

 

     
         
     

 

     
     

넷매니아즈 회원 가입 하기

2019년 1월 현재 넷매니아즈 회원은 49,000+분입니다.

 

넷매니아즈 회원 가입을 하시면,

► 넷매니아즈 신규 컨텐츠 발행 소식 등의 정보를

   이메일 뉴스레터로 발송해드립니다.

► 넷매니아즈의 모든 컨텐츠를 pdf 파일로 다운로드

   받으실 수 있습니다. 

     
     

 

     
         
     

 

 

비밀번호 확인
코멘트 작성시 등록하신 비밀번호를 입력하여주세요.
비밀번호