본문 바로가기
네트워크

[네트워크] 5.4 인터넷 서비스 제공업자(ISP) 간의 라우팅: BGP

by Lizardee 2023. 12. 10.
Routing protocols in the Internet

: Popular unicast routing protocols

  • Interior (Intra-AS routing)
    • RIP
    • OSPF
  • Exterior (Inter-AS routing)
    • BGP

5.4 인터넷 서비스 제공업자(ISP) 간의 라우팅: BGP

: 서로 다른 AS 간의 routing
 

Inter-AS Routing: A Role In Intradomain Forwarding
Inter-AS Routing

AS1에서 AS1 밖의 router 3b로 datagram을 보내고 싶어 하는 상황을 상상해보자. 이때 AS1이 알아야 할 정보는 두 가지다.

  1. 3b로 가기 위해서는 어떤 AS로 이동해야 하는가?
  2. AS3으로 이동해야 함을 알았다. AS3으로 가기 위해서는 당장 어떤 router로 이동해야 하는가?

즉, 각각의 AS들이 어떤 subnet을 담당하고 있는지 알아야 한다. (reachability information)
--> AS inter-domain routing must:

  1.  이웃 AS들을 통해서는 어떤 subnet에 닿을 수 있는지에 대한 정보를 모으고,
  2. 그 정보를 나의 AS 내에서 소문을 낸다.

 

BGP (Border Gateway Protocol)

BGP가 어떻게 동작하는지 좀 더 자세히 알아보자.
 
BGP는 "우리 AS를 통해서는 ~~~ subnet에 닿을 수 있어!"라고 외친다.

  1. eBGP: 이웃 AS들을 통해서는 어떤 subnet에 닿을 수 있는지
  2. iBGP: 받은 정보를 AS 내에 소문을 낸다.

이때, BGP는 policy-based (path vector) routing을 한다. 즉, intea-AS routing과 달리, 무조건 cost가 우선되는 것은 아니라는 뜻이다.

  • DV(Distance Vector)
  • PV(Path Vector): 어떤 path를 거치는지 알 수 있다.

BGP는 distance vector라기보다는, path vector이다.

  • Determine "good" routes to other networks based on reachability information and policy.
  • Allows an AS to control traffic flow.

 

BGP: Peering

: 서로 다른 AS에 속해 있는 subnet들 간에 정보를 교환하기 위해서는 peering을 해야 한다.
 

BGP: Peering

▶ eBGP: (External BGP peering) between different AS's.

  • eBGP peer들은 서로 다른 ASN(AS number)를 가진다.
  • eBGP는 routing policy를 구현한다.
  • AS들은 물리적인 routing link를 통해 직접적으로 연결되어 있어야 한다.

▶ iBGP: (Internet BGP peering) within the same AS.

  • iBGP 내의 peer들은 동일한 ASN을 가진다.
  • iBGP 내의 peer들은 논리적으로 연결되어 있다. (not necessarily directly connected)

--> Gateway router run both eBGP and iBGP protocols.
 

BGP Basic Operations

BGP session동안 두 개의 BGP router (peer)들은 BGP 메시지를 교환한다.

  • by. semi-permanent TCP connection
  • 각 목적지로 가기 위한 path 정보를 교환한다. (=/= distance vector)
BGP Basic Operations

예를 들어, AS3의 gateway router인 3a는 AS2의 gateway router인 2c에게 BGP advertisement를 한다.
: "AS3을 통해서는 X subnet으로 갈 수 있어."
이는 곧, AS3이 AS2에게 "너가 나한테 보내면, 내가 X로 전달해줄게."라고 말하는 것과 같다.
 

BGP: Inter-AS Routing
BGP: Inter-AS Routing

AS1의 gateway routerdls 1c는 다른 AS인 AS3으로부터도 메시지를 받고 (eBGP session),
같은 AS 내의 1b로부터도 메시지를 받는다. (iBGP session)

  • 이때, 다른 AS로부터 받은 정보는 AS1 내에 소문을 내지만,
  • 같은 AS 내의 subnet인 1b로부터 받은 정보는 소문을 내지 않는다. (그에 대한 소문은 1b가 이미 냈다!)

 

BGP Messages
  • OPEN: Opens TCP connection.
  • UPDATE: Advertise new path.
  • KEEPALIVE: Keeps TCP connection alive.
  • NOTIFICATION: Reports errors and close connection.

 

BGP Routes: Path Attributes

▷ Full path: 목적지로 갈 때까지 거치는 모든 AS 즉, path를 전송한다. (=/= distance vector)

Full path

  • AS_PATH: A lost of ASN to reach a destination subnet.
  • NEXT_HOP: IP address of eBGP peer of next-hop AS. (다른 AS로 갈 때 거치는 next hop --> 항상 gateway router!)

▷ Incremental updates: 경로가 업데이트 되었을 때, 추가적인 업데이트 정보만을 보낸다.
 

BGP Path - Example
BGP Path - Example

: 다른 AS로 path를 보낼 때, 자기 자신을 추가해서 보낸다.

  • AS_PATH
  • NEXT_HOP = gateway router

 

 

BGP Path Attributes: Policy

▶ Import policy: iBGP

: 하나의 AS 내에서 path를 다른 라우터에게 전송할 지 여부를 결정하는 policy.

  • iBGP를 통해 path를 전달한다는 것은, 내 AS 내에서 이 path를 이용하겠다는 뜻이다.
    --> 내 AS 내에서 어떤 outgoing path를 쓸 지 통제한다. (controlling outgoing traffic!) -- 내가 어디로 갈까?

▶ Export policy: eBGP

: 이웃 AS에게 path를 전달할 지 여부를 결정하는 policy.

  • eBGP를 통해 이웃 AS에게 path를 전달한다는 것은, 그 이웃 AS에서 나에게로 데이터를 보내오면, 내가 전달해주겠다는 뜻이다.
    --> 내가 서비스해주고 싶은 AS를 결정한다. (controlling incoming traffic!) -- 내가 누구를 도와줄까?

 

 

BGP: Achieving Policy via Advertisements
Example (1)
Example (1)
  • A는 B에게 (A, w) path를 전송한다. "A(나)를 통해 w로 갈 수 있어."
    --> 이는 곧 B가 A에게 w로 가고싶다고 말하면, 이어주겠다는 뜻이다.
  • B는 C에게 (B, A, w) path를 전송하지 않는다. 따라서 C는 (C --> B --> A --> w)로 갈 수 있는 path가 있다는 사실을 알지 못한다.
    <-- B는 C의 데이터를 A로 전달해주고 싶지 않다.

 

Example (2)
Example (2)
  • x는 B에게 (x, C, ?)의 path를 전달해주지 않는다.
    <-- x는 B를 C의 ?(목적지 prefix)로 전달해주고 싶지 않다.

**Suppose an ISP only wants to route traffic to/from its customer networks.

(does not want to carry transit traffic between other ISPs.)

 


BGP Route Selection

: iBGP를 통해 여러 path를 전달받았을 때는 어떤 path를 선택할 것인가? (eBGP의 선택)

  1. Policy based decision: eBGP에서는 policy가 가장 중요하다. (가까운게 장땡이 아니다!)
  2. Shortest AS-PATH
  3. Closest NEXT-HOP router: "hot potato": Path 길이가 같다면, 내 AS 내에서 가장 빨리 내보낼 수 있는 path를 고른다.
  4. additional criteria (BGP ID)

 

Determining the Best Routes - Hot Potato Routing
Determining the Best Routes - Hot Potato Routing

: Path 길이가 같다면, next-hop router 즉, 내 AS와 다른 AS를 연결해주는 gateway router까지의 거리가 가장 가까운 것을 고른다. (내 AS에서는 최대한 빨리 쫓아내자!)

 

BGP Path Advertisement - Example (1)
BGP Path Advertisement - Example (1)
  • Export policy - eBGP: 내 AS에서 받은 path를 다른 AS에 알려줄 지 여부를 결정하는 policy.

 

BGP Path Advertisement - Example (2)
BGP Path Advertisement - Example (2)

: 1c가 eBGP를 통해 2개의 path를 알게되었다. 

--> 더 짧은 path를 고른다! (Shortest path)

 


How Does and Entry Get Into a Router's Forwarding Table?

: 한 router의 forwarding table entry는 어떻게 설정될까?

 

How Does and Entry Get Into a Router's Forwarding Table?
  • AS 내부의 destination: intra-AS routing algorithm
  • AS 외부의 destination: inter-AS routing algorithm + intra-AS routing algorithm

 

Setting Forwarding Table by BGP, OSPF - Example (1)
Setting Forwarding Table by BGP, OSPF - Example (1)
  • AS 내부의 destination: intra-AS routing algorithm에 의해 forwarding table entry가 만들어진다.
  • AS 내부의 destination: inter-AS routing에 의해 forwarding table entry가 만들어진다. 이때, next-hop router 정보도 포함한다.

 

Setting Forwarding Table by BGP, OSPF - Example (2)
Setting Forwarding Table by BGP, OSPF - Example (2)

 

Setting Forwarding Table by BGP, OSPF - Example (3)
Setting Forwarding Table by BGP, OSPF - Example (3)
  • Path를 두 개 알게되면 shortest path를 고른다.
  • next-hop router = gateway router

 

 

Why Different Intra-AS, Inter-AS Routing?

▶ Intra-AS routing: iBGP

  • Performace가 중요하다. (cost)

▶ Inter-AS routing: eBGP

  • Policy가 중요하다. (가까운게 장땡이 아니다!)

--> Intra-AS routing과 Inter-AS routing을 통해 hierarchical routing이 가능해졌다.

 


연습문제 - P35

 

연습문제 - Q3 - a, b, c, d

b. Router 3a learns about x from iBGP routing protocol.

Q. 3a는 3c와 연결되어 있지 않은데, 이 때도 3c로부터 iBGP를 통해 path를 전달받을 수 있나요?

A. 동일한 AS 내의 router들 간에는 iBGP 연결을 모두 갖고 있는데, 그것은 물리적인 연결이 아니고 논리적인 연결이다. TCP 연결이 있다고 해서 두 노드가 직접 물리적 링크로 연결된 것은 아니다.

 

연습문제 - Q4-a: iBGP

 

연습문제 - Q4-b: eBGP

: next-hop router가 가까운 path를 고른다.

 

연습문제 - Q4-c: eBGP

: 가장 짧은 path를 고른다.