본문 바로가기
네트워크

BGP

by ahoy~ 2020. 6. 9.

Routing은 어떻게 이루어지는가?

Routing은 routing table을 통해 이루어집니다.
인터넷은 크게 두 개의 라우팅 아키텍처를 사용합니다.

  1. 네트워크(AS i.e.autonomous system) 레벨
  2. 라우터 레벨

왜 2개의 라우팅 아키텍처를 사용할까?

라우터가 너무 많기 때문에 2개의 레이어로나눔으로서 라우팅을 쉽게 합니다.
Two-Tiered architectur는 필수적일 뿐만 아니라 scalable면에서도 좋습니다.

BGP는 Border Gateway Protocol로서 네트워크 레벨, AS사이에서 라우팅을 위해 사용되는 프로토콜입니다.
OSPF는 Open Shortest Path First로서 하나의 AS내에서 라우팅을 위해 사용되는 프로토콜입니다.

순서대로 이해해볼까요?

BGP

어떤 컴퓨터가 KU에 패킷을 보내려고 합니다.
KU로 가기 위해서 다음 AS가 무엇인지 어떻게 알 수 있을 까요?
이때 BGP를 이용하여 AS끼리 prefix를 공유합니다.
AS는 자신이 가지고 있는 prefix를 다른 AS들에게 광고합니다.

자신을 광고하려면 자신이 누구인지 정해져야겠죠?
이것이 AS Number입니다.
AS들은 자신의 AS Number를 가지고 있습니다.(e.g. Korea University:9452)
이러한 AS에도 종류가 나뉩니다.
AS는 Stub AS와 Transit AS로 나뉩니다.

Stub AS

말단 AS라고 생각하면 됩니다.
보통 우리가 사용하는 회사 네트워크나 캠퍼스 네트워크가 이에 해당합니다.
보통 IP datagram이 보내지는 출발점이 되거나 끝나는 도착지가 됩니다.
Multi-Homing기능을 사용합니다.

Multi-Homing이란?
거대한 Internet에 연결되기 위해 2개의 AS를 동시에 사용하는 것을 의미합니다.
하나의 AS가 끊겨도 나머지 AS가 있기 때문에 연결에 대한 안정성이 보장됩니다.

Transit AS

주로 KT나 SKT같은 ISP(i.e. Internet Service Provider)가 Transit AS에 해당합니다.
prefix를 다른 AS에 광고함으로서 자신들의 클라이언트들을 인터넷에 연결해주는 역할을 합니다.
Transit AS들 사이에서도 크기가 다양합니다.(KT는 regional AS이고 Cogent는 Tier-1s AS입니다.)

그렇다면 이제는 BGP를 이해해볼까요?

BGP peering

AS끼리 서로를 알리는 BGP에도 하나의 AS내에서 알리는 iBGP(interal BGP) peering과 AS들끼리 자신을 알리는 eBGP(external BGP) peering의 2가지가 존재합니다.
그림을 보면 이해가 쉽습니다.

  1. eBGP

  2. iBGP

BGP message format

BGP는 4가지의 Type이 있습니다.
1=Open, 2=Update, 3=Notification, 4=Keepalive로 각각 BGP의 message format이 다릅니다.
하나하나 BGP type이 실제 어떤 모습인지 확인해 봅시다.

BGP Open

필드 설명

  • Marker 현재 챕터에 담기에는 어려운 내용입니다. setup시 1로 꽉 차있으며 setup이 끝나면 특정한 값으로 바뀝니다.
  • Length: Header+Body의 크기
  • Type: 1=Open, 2=Update, 3=Notification, 4=Keepalive
  • Version: 대부분 BGP의 4버전을 사용합니다.
  • My Autonomous system: 자신의 AS number
  • Hold Time: Hold Time의 시간이 넘도록 peer로부터 BGP Update message가 오지 않으면 BGP session이 끊깁니다.
  • Optional parameter length: parameter의 총 길이

이 BGP Open message를 통해 peer와 BGP session을 형성하게 됩니다.
보통 Hold Time의 1/3 주기로 Keepalive type의 BGP메시지가 peer로부터 옴으로서 계속해서 세션이 유지됩니다.

BGP Update

필드 설명(중요한 부분만)

  • Withdrawn route prefix: 제거할 peer route의 prefix
  • Attribute type: 추가할 path attribute의 타입입니다. 1=Origin, 2=AS_Path, 3=Next_Hop, 4=Multi_Exit_Desc, 5=Local_Pref....
  • Network layer reachability information: 추가할 path attribute의 prefix입니다. 하나의 attribute와 하나의 NLRI가 매칭됩니다.

Attribute type의 경우, BGP는 경로에 대한 개념 뿐만이 아니라 정책이라는 개념이 있습니다.
이 정책에 따라 Attribute Type이 다양하게 나뉩니다.

  1. 1=Origin은 prefix정보가 어디서부터 온 것인지 알려줍니다.
  2. 2=AS_PATH는 BGP advertisement를 통해서 쌓인 AS의 시퀀스를 가지고 있습니다.
  3. 3=Next_Hop은 advertised된 prefix를 갈 수 있는 다음 hop router IP를 가지고 있습니다.
  4. 4=Multi_Exit_Desc는 특정 ingress point에 MED(메트릭과 유사)를 부여합니다.(낮은 MED가 path선택에 유리)
  5. 5=Local_Pref는 특정 경로에 대해서 선호값을 부여합니다.

BGP Notification

에러를 진단하고 에러 메세지의 역할을 합니다.

여기까지가 BGP이며 다음 장에서는 OSPF를 알아보도록 하겠습니다.

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

UDP  (0) 2020.06.10
ICMP  (0) 2020.06.10
OSPF  (0) 2020.06.09

댓글