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

AS1에서 AS1 밖의 router 3b로 datagram을 보내고 싶어 하는 상황을 상상해보자. 이때 AS1이 알아야 할 정보는 두 가지다.
- 3b로 가기 위해서는 어떤 AS로 이동해야 하는가?
- AS3으로 이동해야 함을 알았다. AS3으로 가기 위해서는 당장 어떤 router로 이동해야 하는가?
즉, 각각의 AS들이 어떤 subnet을 담당하고 있는지 알아야 한다. (reachability information)
--> AS inter-domain routing must:
- 이웃 AS들을 통해서는 어떤 subnet에 닿을 수 있는지에 대한 정보를 모으고,
- 그 정보를 나의 AS 내에서 소문을 낸다.
BGP (Border Gateway Protocol)
BGP가 어떻게 동작하는지 좀 더 자세히 알아보자.
BGP는 "우리 AS를 통해서는 ~~~ subnet에 닿을 수 있어!"라고 외친다.
- eBGP: 이웃 AS들을 통해서는 어떤 subnet에 닿을 수 있는지
- 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을 해야 한다.

▶ 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)

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

: 다른 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)

- 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)

- 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의 선택)
- Policy based decision: eBGP에서는 policy가 가장 중요하다. (가까운게 장땡이 아니다!)
- Shortest AS-PATH
- Closest NEXT-HOP router: "hot potato": Path 길이가 같다면, 내 AS 내에서 가장 빨리 내보낼 수 있는 path를 고른다.
- additional criteria (BGP ID)
Determining the Best Routes - Hot Potato Routing

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

- Export policy - eBGP: 내 AS에서 받은 path를 다른 AS에 알려줄 지 여부를 결정하는 policy.
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는 어떻게 설정될까?

- AS 내부의 destination: intra-AS routing algorithm
- AS 외부의 destination: inter-AS routing algorithm + intra-AS routing algorithm
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 (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를 고른다.
'네트워크' 카테고리의 다른 글
[네트워크] 5.6 인터넷 제어 메시지 프로토콜(ICMP) (0) | 2023.12.10 |
---|---|
[네트워크] 5.5 SDN control plane (0) | 2023.12.10 |
[네트워크] 5.3 인터넷에서의 AS 내부 라우팅: RIP, OSPF (0) | 2023.12.10 |
[네트워크] 5.2 라우팅 알고리즘 (0) | 2023.12.10 |
[네트워크] 5.1 개요 (0) | 2023.12.10 |