본문 바로가기
네트워크

mpls 초보탈출 11차

by Lauren X Ming 2022. 3. 12.

OSPF의 mpls

backbone area에 다른 area들이 연결되어있어야 함. 

근데 mpls를 돌린다면 backbone이 bgp가 됨.

<문제 1>
area1에서 network 정보를 배우고
bgp로 redistribute해서 bgp로 정보가 전달된 후에
다시 ospf로 redi되면 모두 external 정보로 보임(같은 네트워크는 type 3로 보여야 하는데..)

ospf의 route type(==lsa) 정보가 bgp로 redistribute되면서 사라져버림. 
그래서 다른 area에 있는 다른 사이트의 정보는 전부 type 5로 보일 것이다. 
type 3만 summary하기 위해서는, abr의 type3만 summary할 수 있음. type 5는 asbr이 summary함.
그래서 특정 type3만 summary 하겠다고 할 수 없음. 

stub area : type 5는 default 로 대체를 하고 ospf 내부 네트워크(type 3)만 전달시킴. 

그래서 MPLS에서는 OSPF-BGP를 확장해야 함

*참고*

출처 : https://zigispace.net/302

bgp망을 backbone으로 만들자
bgp backbone 입장에서는 ospf area 0조차도 그냥 하나의 일반 area로 간주함
즉, bgp backbone 망이 가장 강력한 area가 되고 superbackbone이 되는 것 

area 0 입장에서는 bgp backbone이 backbone역할을 하는지는 모르고, 그냥 bgp backbone이 area0를 그냥 일반 backbone으로 취급하는 것 뿐!

area 0의 혜택 : bgp superbackbone이 있고, area0, area 1이 있을 때 원래는 area0만 자신의 type 3정보를 다른 area한테 보내줄 수 있음. 그래서 superbackbone도 area0을 제외한 다른 area에서 type3의 정보를 받지 않음. 

그래서 pe-ce가 연결된 구간에서 ospf를 돌릴 때, 그 사이에 area 0이 아닌 다른 area가 있다면 bgp로 넘어가지 않음.

기존에 본사-지사가 연결되어있을 때, 지사들은 각각 area1, 2, 3이었을텐데, 지사쪽에 mpls를 붙인다면 지사들은 모두 area 0여야 함. 

<ospf의 연속성 보장>

internal ospf 정보는 internal로 넘기고 external ospf 정보는 external로 넘기고, ospf metric값은 bgp로 갈 때 med값으로 copy된 후 다시 ospf로 넘어올 때 med값을 다시 cost값으로 사용해서 넘김

 --> 그래서 ospf rt값(route type(LSA))을 만들어서 extended community값이 됨.

CE라우터는 ospf standard로 넘기면 되고, 위의 기능은 모두 pe장비가 하면 됨

그래서 MP-BGP(mpls backbone)는 일반적인 ospf의 area 0와 정확히 똑같이 동작을 한다. 
- PE 장비가 ABR(area border route) 역할을 함.
- BGP에서 OSPF로 redistribute할 때, 같은 ospf에 있는 네트워크는 interarea summary route(type 3)로 전달을 하고, external 정보는 external로 정보를 전달을 함.
- area 0에게만  interarea summary route 정보를 받음. 

OSPF RT(route type) : 이 정보를 extended bgp community로 추가.    
    ==>  area number:LSA type:external type의 정보

OSPF domain ID : 원래 예전부터 있음. 서로 domain이 다르면 type 8으로 전달. type 8이 사라지면서 사용하지 않았는데, mpls가 만들어지면서 다시 사용하게 됨.
CE-PE의 vrf - p - p - p - PE의 vrf - CE    : 각 CE, PE의 vrf는 process 가 서로 달라도 됨.(어떤 것이 돌아도 상관없음)
이때 디폴트로 domain id는 process id가 됨. 
고객의 process id는 모르고, vrf의 process id를 자신의 도메인으로 세팅해서 다른 vrf로 전달. 
정보를 받았을 때, 도메인 id가 같으면 rt값을 보고 type 3면 type 3로 type 5는 type 5로 전달을 함. 
서로 도메인 id가 다르면 어떤 정보든 external(type 5)로 넘김
프로세스 id를 모두 동일하게 만들기 어렵기 때문에 router id처럼 process id를 정해줄 수 있음
그래서 같은 회사끼리 domain id를 맞춰줄 수 있음.

export, import 를 시켜서 bgp를 통해 정보가 전달됨
그런데, 하나의 장비이기 때문에 process id가 같은 것이 동작할 수 없음
그러면 domain id가 달라짐. 그래서 A의 정보가 external 로 넘어감. 
그래서 직접 domain id를 세팅해줘야 함

 

OSPF RT ==>  area number:LSA type:external type의 정보
- area 정보를 요즘에는 사용하지 않음. type 1으로 던지면 토폴로지를 그리려고 하는데, bgp는 link 정보를 전달할 수 없음. 
- link 정보가 있어야 토폴로지를 그릴 수 있음
- 현재 area 정보는 의미없고, 무조건 type 3로 넘어감.

 

RIP - BGP(MPLS) - OSPF로 연결되어있을 때
RIP - BGP에는 ospf rt값이 없음. 그래서 external 정보로 넘김
bgp에서 넘어온 정보는 default가 1이지만 다른 라우팅에서 넘겨받았다고 생각해서 metric을 20으로 받음. 

 


BGP를 OSPF안으로 넣을 때 redistribute, OSPF를 BGP로 넣을 때 redistribute를 해야 함. 
BGP를 OSPF로 redistribute 할 때, subnet이라는 옵션을 주지 않으면 major network로 가져옴
OSPF를 BGP로 redistribute 할 때, BGP에서는 backbone 역할을 하기 때문에 auto-summary기능이 없음. (area 0에서 가지고 오는 것으로 보이기 때문에)그래서 subnet 옵션이 필수가 됨. subnet옵션을 주지 않으면 넘기지 않음
bgp에서 ospf로 넘어갈 때 internal 정보만 가져옴. external 정보는 가져오지 않음. 

redistribute bgp asn subnets : 무조건 subnet 옵션을 넣어야 함

redistibute ospf process-id (match internal | external) : external 정보까지 가져온다고 할 때는 match internal/external 입력해주면 됨.

<문제 2>

PE1이 PE2한테만 업데이트하고, PE3한테는 업데이트 하지 않음
PE2에 붙어있는 CE한테 정보가 전달됨
PE2 - CE로 넘긴 정보가 PE3로 전달함
PE3는 다시 그 정보를 다른 애들한테 전달함 <-- 근데 PE3가 best path로 잡힌다면??

(OSPF로 받아서 MP-BGP로 넘어간 애들에 대해서 )MP-BGP에서 OSPF로 redistribute하는 네트워크에 대해서는 down bit를 세팅을 함.

- down-bit란 ? 
IS-IS의 down bit :  L2에서 L1으로 유입된 Route 정보
L2 -> L1으로 넘길 때 default 정보만 넘김
L1 장비는 default만 받기 때문에 가장 가까운 L2장비로만 packet을 던지는 것
근데 가까운 L2 말고 다른 best path가 있다면? default로만 정보를 전달하지 않고 상세 네트워크를 던지면 됨. 
 - L2 -> L1으로 redistribute level 2 level 1하면 됨
 - 그때, Level 1에 있는 정보는 다른 곳에 광고를 해야하기 때문에 Level 2로 자동으로 올라감.
 - Level 2에서 Level 1으로 redi로 할 때 down가 세팅되서 down bit가 세팅된 것은 다시 L2로 올라오지 않도록 함
 - Level 1 - > 2로 전달된 네트워크가 다른 L2로 넘어가서 그 L2가 L1으로 다시 내려갈 수 있음. 이럴 때는 upbit를 넣어둬서 같은 area 내에서는 내려오지 않도록 함.

ospf에서 down bit 개념을 가져옴
option field 하나를 down bit로 세팅
PE장비는 down bit를 가지고 있는 OSPF에서 온 네트워크는 redistribute하지 말자

 

<문제 3>

PE 1이 PE2, PE3에 네트워크 전달
그런데 OSPF로 받은 값은 admin distance 값이 110, BGP로 받은 정보는 200이기 때문에 트래픽이 그림의 파란색 선 처럼 mpls만 타지 않고 꺾일 수 있음. 

그래서 down bit에 대해서 조건을 하나 더 세팅함. 
라우팅 정보에 down bit가 생성된 정보는 redistribute를 안하는게 아니라 그냥 아예 무시를 해야겠다!!!!!!1
down bit가 세팅 된 애들은 어차피 다른 사이트가 originate된 것이기 때문에 
고객쪽을 타지 않고 mp-bgp backbone망만을 타도록 함 
down bit가 세팅되어있는 애들은 ospf의 routing bit를 disable 하자
- spf 알고리즘에 의해, down bit가 포함된 네트워크가 best path가 되었을 때 라우팅 테이블에 내려보내지 말자 
- 대신 가는 길이 있는데도, backup 경로도 되지 못함.

 

<문제 4>

하나의 사이트에서 OSPF가 두개로 나누어져 있음. 서로 다른 OSPF 가 redistribute할 때, 서로 간에 redistribute할 때는 down bit가 사라짐.(일반적인 redi일 때 down bit가 사라지는 것)
down bit가 사라지면 mp-bgp로 redistribute할 때 넘어가게 됨.
OSPF -BGP - OSPF는 down bit로 막음
타 IGP - BGP - OSPF 는 tag 정보를 이용해서 막음
--> external ospf route는 룹을 막기 위해서 tag를 사용함. non_ospf 라우팅 프로토콜을 BGP가 받아서 OSPF로 광고할 때, ASN(서비스 프로바이더의 ASN)을 tag로 달아서 redistribute를 함. 
--> tag 정보는 redistribute는 서로 다른 라우팅 프로토콜이라고 해도 서로 카피해서 전달을 함. 
--> 그러면 PE 장비에서 OSPF external 정보를 BGP로 가져오려고 할 때, tag 필트가 자신의 ASN과 같다면 redistribute하지 않음. 
--> 그래서 타 라우팅 프로토콜에서 OSPF로 넘어가는 정보는 문제될 것이 없음
근데 ospf - bgp - ospf는 down bit로 막기로 했음. 
- 그런데 down bit가 사라진다면?
- internal ospf 루트는 tag 정보가 없음. type 1, 2, 3는 tag field 자체가 없음. ospf는 external 에만 tag 정보를 붙이기 때문에
- 그래서 internal 네트워크에 대해서는 downbit가 사라지면 라우팅 룹에 대해 detect할 수 있는 기술이 아예 존재 하지 않음
- manual 하게 tag를 붙여줘야 함. ISP의 AS number로..
redistribute할 때, 모두 필터링해서 넘길 애들만 넘겨라
- match 옵션을 줘서 inter, external 정보만 tag 정보를 전달함.

 

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

MPLS VPN에서 사용되는 프로토콜  (0) 2022.03.27
mpls 초보탈출 12차  (0) 2022.03.13
mpls 초보탈출 10차  (0) 2022.03.12
MPLS 초보탈출 9차  (0) 2022.03.06
MPLS 초보탈출 8차  (0) 2022.03.06