지난 시간에는 OSPF 망에서 Router-LSA를 통해 각 라우터가 Network Topology Map을 만들고 Link Cost 기반으로 Shortest Path Tree를 구성하는 절차에 대해 설명을 드렸습니다.
오늘은 위의 과정을 통해 생성된 OSPF Topology에 External Network이 연결되는 경우, 어떻게 OSPF 라우터들은 External Network의 라우팅 정보를 배우고, 그 Network으로 가는 Shortest Path를 알게 되는지 그 과정을 살펴 보도록 하겠습니다.
OSPF External Network
■ OSPF 관점에서 External Network이란?
External Network이란 OSPF로 구성된 하나의 네트워크(AS 혹은 Routing Domain이라 부름)과 연결된 "외부 네트워크"를 말합니다. 즉, OSPF가 enable된 라우터간에는 Router-LSA(지난 시간에 설명), Network-LSA등으로 서로간에 라우팅 정보를 주고 받게 되고, OSPF가 enable되지 않은 망의 라우팅 정보는 External Network으로 분류되어 AS-External-LSA를 통해 External Network의 라우팅 정보를 OSPF 망에서 알 수 있게 됩니다. External Network의 예는 아래와 같습니다.
■ AS와 Routing Domain
보통 통신사업자는 망 내부 전체의 Intra-domain Routing 프로토콜로 OSPF나 IS-IS를 선택하여 운영하게 되는데, 이와 같이 동일 IGP 프로토콜로 운영되는 하나의 망을 AS 혹은 Routing Domain이라 부릅니다.
아래 내용에 따르면 AS 보다는 Routing Domain이란 표현이 더 일반적인 듯 합니다.
The IETF concept of autonomous system (AS) is, in ISO terms, a routing domain. I much prefer the second term. These days, an AS has a specific meaning in BGP networks, to differentiate one area of autonomous administrative control from another, and as entries interconnected by EBGP. Whthin a single AS, multiple IGPs can be running. In contrast, a routing domain is always the scope of a single set of routers speaking the same routing protocol to each other, unbroken by any other routing protocol |
출처: Jeff Doyle, OSPF and IS-IS: Choosing an IGP for Large-Scale Networks, 2005, Addison-Wesley
OSPF Network Topology
그림 상에 5개의 OSPF 라우터(R1 ~ R5)가 존재하고, 라우터간 연결 링크에 대한 IP 주소와 OSPF Link Cost 및 각 라우터의 OSPF Router ID(RID)인 Loopback 주소(예. R1의 경우 10.1.0.1/32)가 표시되어 있습니다.
즉, R1에 직결된(connected) 100.1.1.0/24는 External Network이고, R2에서 라우터(회색 라우터)를 거쳐 연결된(static route) 200.1.1.0/24도 External Network이 됩니다.
앞서 설명 드린바와 같이 External Network과 연결되는 OSPF 라우터를 "OSPF 망의 가장자리(Border)에 위치한 라우터"의 의미로 ASBR(Autonomous System Border Router)이라 부릅니다.
ASBR: External 라우팅 정보를 OSPF 내부 라우터들로 전파
1. R1이 External Network (Connected Network) 정보를 전파
R1의 설정(redistribute connected subnets)에 의해서 External Network 100.1.1.0/24 정보가 AS-External-LSA를 통해 R2, R3로 전파됩니다[t=1]. 그리고 이를 수신한 R2, R3는 본 AS-External-LSA가 수신된 핑크를 제외한 링크로 AS-External-LSA를 flooding 합니다. 그래서 R4, R5는 동일한 AS-External-LSA를 2개씩 수신하는데[t=2], 이 경우 LSA 식별자인 {LS Type, Link State ID, Advertising Router}가 동일한 경우 두번째 수신한 LSA를 폐기합니다.
R1이 보낸 AS-External-LSA에 포함된 정보는 다음과 같습니다.
이와 같이 R1이 보낸 AS-External-LSA를 R2 ~ R5가 수신하게 되면 각 라우터는 그 정보를 OSPF LSDB(Link State DataBase)에 저장하고 OSPF Network Topology 상에 해당 External Network으로 가기 위한 Shortest Path Tree를 구성하게 됩니다 (맨 밑에 그림 참조).
2. R2가 External Network (Static Route) 정보를 전파
R2의 설정(200.1.1.0/24로 가기 위한 static route 및 redistribute static subnets)에 의해서 External Network 200.1.1.0/24 정보가 AS-External-LSA를 통해 R1, R4, R5로 전파됩니다[t=1]. 그리고 이를 수신한 R1, R4, R5는 본 AS-External-LSA가 수신된 링크를 제외한 링크로 AS-External-LSA를 flooding 합니다.
R1, R3, R4, R5는 이 정보(AS-External-LSA)를 LSDB에 저장하고, OSPF Network Topology 상에 해당 External Network으로 가기 위한 Shortest Path Tree를 구성하게 됩니다 (맨 밑에 그림 참조).
역자 주: External Route를 OSPF 망으로 전파할때 2가지 옵션(External Type 1 & External Type 2) 중에 하나를 선택할 수 있습니다. 위 그림의 설정은 External Type 1(CLI 상에 metric-type 1)으로 예를 든 것입니다. 이 2가지 옵션에 대해서는 다음 기회에 설명을 드리도록 하겠습니다.
R1 ~ R5: Shortest Path Tree 구성하기
위에서 설명한 2개의 External Network(100.1.1.0/24, 200.1.1.0/24)에 대해 각 라우터는 최단 경로 즉, Shortest Path Tree를 구성하고, 이렇게 만들어진 Shortest Path 정보 즉, External Network Prefix와 최단경로로 가기 위한 Next Hop 정보가 라우터의 RIB(Routing Information Base)와 FIB(Forwarding Information Base)에 인스톨 됩니다. (예. R5는 External Network 200.1.1.0/24로 가기 위한 최단경로상의 Next Hop은 R2(1.1.5.1)이고, 100.1.1.0/24로 가기 위한 최단경로상의 Next Hop도 R2(1.1.5.1)임)
* 아래 Comments에 추가 설명(박형규님/넷매니아즈 글) 참고하세요~
그런데 Externeal Route에 두가지 타입이 있으며, 타입별로 cost 계산이 달라지는데요..
예시된 config 를 보니 시스코장비인듯 한데.. config 대로라면 시스코의 경우 디폴트가 타입2이기 때문에
external route 가 타입2로 전파되어 SPT 결과가 달라질걸로 보입니다..
external route 타입에 대해서도 보충설명을 해주시면 좋을듯 하네요^^
제가 장비 설정을 거의 해 본적이 없어서 "시스코의 default가 External Type-2 (E2)"인지 몰랐네요 ^^*
일단 초보자님들(박형규님같은 expert 말구요~)의 혼란스러움을 막기 위해 CLI에 E1으로 명시를 해야 겠네요.
그리고 초보자님들에게 한번에 많은 지식을 전달하면 힘들어 하실 것 같아 E1, E2 얘기는 일부로 뺐거든요.
이 부분에 대해서는 다음에 블로그글 작성해 보도록 하겠습니다.
그리고 이제 마지막으로...
제가 알고 있기로는요. 위 그림에서 External Route 타입이 E1이든 E2이든 결과가 동일할 거라 생각했습니다.
왜냐면...
"E2 타입의 Route로 가는 동일 Cost 경로가 여러개인 경우, Internal Cost(즉, OSPF Shortest Path)를 보고 Next-Hop을 결정한다"로 알고 있거든요.
그래서 위 그림에서 R3는 200.1.1.0/24에 대한 Next Hop이 아래와 같이 3개가 잡힐 수 있지만
- R1 (200.1.1.0/24로 가는 Cost는 40)
- R4 (200.1.1.0/24로 가는 Cost는 40)
- R5 (200.1.1.0/24로 가는 Cost는 40)
OSPF Internal Cost가 가장 짧은 R1을 선택하여 RIB/FIB에 쓴다.
라고 알고 있습니다.
아래는 웹에서 급하게 찾은 관련 내용이구요.
When several equal-cost Type 2 router exist, the internal distance to the advertising router is used to break the tie. (http://opalsoft.net/qos/OSPF-12.htm )
혹시 제가 잘못 알고 있는 부분이 있으면 좋은 말씀 부탁드릴께요. ^^*
E2 경로라하더라도 E1 경로와 동일한 결과가 나오겠네요.
다만 R1이 next hop이 되는 결론에 이르는 과정에 약간의 보충 설명이 필요할듯 한데요..
작성자님의 글에 따르면 R3에서 가장짧은 cost로 연결된 네이버가 넥스트홉이 되는것으로 이해됩니다.
즉 R1이 next-hop 으로 결정되는 이유가 R3의 네이버인 R1,R4,R5 중 R4와R5까지의 cost는 20이고,
R1까지의 cost는 10이라서, cost가 가장짧은 R1이 next-hop 으로 선정된다 라고 쓰신것 같습니다.
이게 맞다면, 이부분에 오류가 있는데요..
동일 cost 를 가진 여러개의 경로가 존재할 경우 E2 타입의 route의 경우 우선순위를 결정하는 것은
ASBR까지의 가장 짧은 cost를 가지는 경로에 있는 네이버가 넥스트홉이 되는걸로 알고 있습니다.
즉 R3의 경우 ASBR까지의 경로 중 R1을 경유하는 경로의 cost가 20으로 가장 짧기 때문에 R1을 넥스트홉으로 선정하게 된다는 것입니다.(R4와R5를 경유하는 경로의 cost는 30으로 동일함)
여기까지는 작성자님께서 쓰신 내용과 동일한 결과가 나오는데요..
그런데 만약 R1과R2 사이의 cost를 30으로 변경하게되면 전혀 다른 결과가 나오게 됩니다.
ASBR까지의 경로중 가장짧은 경로로 넥스트홉을 선정하게 되면, R1을 경유하는 경로의 cost 는 40이 되고,
R4 와 R5를 경유하는 경로가 cost 30으로 R1을 경유하는 경로보다 짧기 때문에 R3에서는 2개의 route가 모두
R3의 RIB/FIB 에 등록이 될것입니다.
그러나 가장짧은 cost를 가진 네이버를 넥스트홉으로 선정하게 되면, 여전히 가장짧은 cost인 10을 가진 R1이
넥스트홉이 된다는 것이죠.
첨언하신 웹의 내용중 advertising router 는 ASBR로 보셔야 될걸로 압니다.
작성자님께서 쓰신 내용이 제가 쓴 내용과 동일한의도였다면 미리 사과드리겠습니다.--;;
아무튼 혼란을 드려서 죄송하구요..
지금까지 본 OSPF 관련 글중 가장 쉽게 이해되는 내용이라 너무 좋았습니다.
다음편도 기대하겠습니다.^^
감사합니다.. 즐거운 주말 보내세요~
이렇게 관심가져 주시고, 좋은 설명 남겨 주셔서 얼마나 감사한데요.
박형규님 설명에 동의하구요. 그래서 블로그글 마지막에 한마디 적어 놓았습니다 ^^*
앞으로도 좋은 설명 부탁드릴께요.
감사합니다.
그런데.. 프린트시에 그림은 괜찮지만 글자가 모두 깨져서 나옵니다.ㅠㅠ OSPF 1편도 마찬가지구요
프린트는 익스플로러, 크롬에서 시도했지만 모두 출력에러가 발생합니다.
확인 좀 부탁드려도 될까요?
감사합니다.
아래 질문에 답변 부탁드릴께요.
1. 사용 OS (XP/Vista/7) ?
2. PC에 나눔고딕 폰트가 설치되었는지? (관련 링크: https://www.netmanias.com/bbs/view.php?id=qna&no=5028 )
두 컴퓨터 모두 나눔고딕 폰트는 설치되어 있지 않습니다.
OSPF가 hello packet으로 인접한 라우터들에게만 정보를 업데이트 시키는 이유가 있다고 하는데 그게 무엇때문인가요?
이걸 아시는 분이 별로 없다고 하시던데..
Hello packet에 있는 정보중 따로 Update 시킬만한 정보가 어떤것이 있는지는 잘 모르겠네요.
아래 site에 OSPF 의 기본적인 Header 정보가 잘 설명이 되어있으니, 필요시 참조 바랍니다.
https://sites.google.com/site/amitsciscozone/home/important-tips/ospf/ospf-packet-types
근데 위에서 설명하신대로 E2 타입의 Route로 가는 동일 Cost 경로가 여러개인 경우, Internal Cost로 최적의 링크를 판단한다면 굳이 metric-type1 이 왜 있어야 하는지 의문입니다.
목적지까지 가는데 여러개의 링크가 존재할때 E2 타입만 사용하더라도 Internal Cost를 비교해서 동일하면 Load balancing을 수행할거고 틀리다면 최적의 링크만 선택할테니 말이죠.
- link1: internal cost = 100, external cost = 150
- link2: internal cost = 150, external cost = 100
E1으로 설정시 link1을 통할 것이고, E2로 설정시 link2를 통할 것입니다.
"E2 타입에서 external cost가 동일한 경우"라면 굳이 E1의 의미를 찾을 수 없겠지만 위 예와 같이 external cost가 다른 두 경로에 대해서는 사업자의 정책에 따라 E1 혹은 E2를 선택적으로 사용할 수 있어야 하겠죠.
근데 제가 이해가 잘 안가서 그런데요. External Link가 두개 존재한다는 말이 어떤 의미인가요?
특정 라우터의 OSPF Process에서 redistribution을 수행하면 external route 들이 재분배 되는데
이때 OSPF 내의 Link들을 internal link라고 한다면 external link는 무엇을 의미하는지요?
제 생각에는 external link라는 개념은 없을것 같습니다만...
KT, SKBB와 연결되는 링크를 external link로 표현한 것입니다.
(표준상의 용어가 아니라 헷갈리게 해 드려 죄송해요~*)
AREA0의 OSPF E1,2,N1,N2 경로가 다른 AREA로 광고되면, 경로타입이 IA로 변경되서 광고되나요?
감사합니다
좋은 정보 고맙습니다.