본문 바로가기

컴퓨터 네트워크/Computer Networking 정리

CH5 : Network Layer Control Plane (2)

* 이 글에 관련된 모든 내용은 Computer Networking A Top-Down Approach 7th에서 가져온 내용이다. *

 

 

지난 강의에서는 라우팅 알고리즘들 (링크-스테이트, 벡터-디스턴스)에 대해서 알아보았다.

그러나 그 내용들은 그저 이론적인 이야기이다.

 

예를 들어 링크-스테이트 알고리즘에서는 모든 네트워크의 트래픽 정보를 알아야 하는데, 실제 인터넷 네트워크는 너무너무 방대하고 크다. 이전 글에서는 모든 네트워크가 flat한(계층적이 아닌)구조를 가지고 있다고 가정하고 생각했는데 위에서 말했듯이 실제 인터넷 네트워크는 매우 크기때문에 실질적으로 구현은 불가능하다.

 

또한 인터넷은 sub network들의 network인데 각 sub network의 관리자들은 자신의 네트워크 안에 있는 host들을 직접 관리하고 싶지, 남에게 맡기고 싶진 않을 것이다.

 

AS(Autonomous systems)


때문에 AS단위로 묶어 계층적으로 관리하자는 아이디어가 나왔다.

AS는 위에서 말한 sub network라고 생각하면 된다.

 

 

각 AS내부의 프로토콜은 Intra-domain이다. AS2에 있는 host들은 AS1의 내부에서 동작하는 프토로콜을 알지 못한다. 때문에 각 AS는 내부에서 독립적인 프로토콜을 가질 수 있다.

 

그러한 AS들을 연결해주는 프로토콜은 Inter-domain이다. 

 

Intra domain과 Inter domain routing에 대해 알아보자.

 

1. Intra-domain Routing (IGP - Interior Gateway Protocol)


각 AS내부에서 동작하는 프로토콜이다.각 AS에서 다른 AS로 뻗어나가는 링크를 맡고있는 라우터를 게이트웨이라고 하는데, 이 게이트웨이를 기준으로 하여 내부의 프로토콜은 같은 프로토콜을 사용한다.

 

Intra domain routing에 사용하는 프로토콜들은 다음과 같은 종류가 있다.

 

1. RIP (Routing Information Protocol)

2. OSPF (Open Shortest Path First)

3. EIGRP (Enhanced Interior Gateway Routing Protocol)

 

이 중에서 보편적인 RIP와 OSPF에 대해 알아보겠다.

 

RIP(Routing Information Protocol)

- 가장 보편적인 프로토콜이다.

- Distance-vector 라우팅 프토토콜 (벨만포드 알고리즘)을 사용한다. 

- Metric은 hop의 개수이다. (여기서 metric이란 cost를 정하는 기준)

- Distance-vector 라우팅 프로토콜의 문제점 (counting-to-infinite)이 발생할 수 있다.

    - 때문에 maximum hop의 개수를 정한다. (15)

    - 때문에 split-horizon with poisoned reverse방식을 사용한다.

- 주기적으로 업데이트 한다. (디스턴스-벡터 특징) (30초)

- 변화가 있으면 바로 업데이트 한다. (Triggered update)

 

OSPF(Open Shortest Path First)

- Link-State 라우팅 프로토콜 (다익스트라 알고리즘)을 사용한다.

- 때문에 LSP를 통해 flooding을 해야하는데 flooding때문에 발생하는 많은 overhead를 줄이기 위해 계층적으로 한다.

- 보통 LSP는 30분에 한번씩 뿌려지며 변화가 있을 때는 즉시 보낸다.

- RIP에 비해 Metric을 여러개로 지정할 수 있다. (속도, 트래픽, 신뢰성, 보안성 등)

- 두번째에서 말한 것과 같이 flooding을 보다 효율적으로 하기 위해 계층적 구조(backbone, local area를 가진다)

각 area들의 ABR들은 자신의 area에서 수집한 LSP정보들을 backbone에서 공유하고 또한 그 backbone들의 ASBR들은 자신의 backbone에서 공유한 정보들을 다른 AS들의 ASBR들과 공유한다.

이렇게 하면 라우터가 다른 모든 라우터들에게 자신의 정보를 공유해줄 필요가 없다.

2. Inter-domain Routing (EXP - Exterior Gateway Protocol)


각 AS안의 게이트웨이 라우터들은 다른 AS로 뻗어나가기 위해 forwarding table에 내부 라우팅과 외부 라우팅 정보를 모두 저장하고 있어야 한다. 

 

 

Inter-domain routing에 사용하는 프토로콜에는 한가지 밖에 없다.

 

1. BGP(Border Gateway Protocol)

 

BGP에 대해 알아보자.

 

BGP(Border Gateway Protocol)

BGP는 정책을 기반으로한 라우팅 알고리즘이다. 

여기서 정책을 기준으로 한다는 것은 다른 path를 선택할 때 metric에 의존해 정하기전에 정책을 우선으로 한다는 뜻인데, 예를들어 우리나라에서 미국으로 라우팅을 한다고 가정해보자.

우리나라에서 북한을 통해 미국으로 가는 path가 우리나라에서 바로 미국으로 가는 path보다 효율적이더라도 우리나라와 북한은 서로 정보가 공유되는 것을 원치 않기에 비효율적이더라도 우리나라에서 바로 미국으로 가는 path를 선택할 것이다. 

이처럼 Intra-domain routing의 프로토콜들과는 다르게 정책을 기반으로 라우팅을 한다.

 

path-vector 컨셉(distance vector의 일부)을 사용한다. (AS-PATH)

이 AS-PATH에 지금까지 지나온 (해당 경로에 포함된) AS들을 넣어놓는다. 이를 통해 loop(cycle)이 발생하는지의 여부에 대해 알 수 있다.

 

BGP에는 eBGP와 iBGP가 있다. 그림에 설명이 잘 되어있다.

BGP에서는 다음 라우터로 메시지를 보낼때 (목적지, 자신라우터, AS-PATH)를 묶어 정보를 보낸다.

이또한 그림에서 잘 설명해준다.

위의 그림처럼 3a가 2c에게 eBGP를 통해 메시지를 보내면 {목적지 X, 자신라우터 3a, 지나온 경로[AS3]}를 묶어 보낸다.

만약 2c가 2a에게 iBGP를 통해 메시지를 보내면 {목적지 X, 자신라우터 2c, 지나온 경로[AS3]}를 보낼 것이다.

 

이때, 자신의 라우터 정보를 보내는 것을 NEXT-HOP이라고 하고, 지나온 경로를 AS-PATH라고 한다.

 

그런데 만약 위 그림에서 AS1과 AS3에도 eBGP커넥션이 존재한다면 어떻게 될까?

위 그림과 같이 1c는 두가지의 경로에서 정보를 받을 것이다. 

이때 1c는 어떤 경로를 선택해야 할지 정해야 하는데 이때 BGP내부의 rule에 따라 선택한다.

 

 

BGP Route Selection 기준

-----------------------------------------------------------------

1. Policy

 - BGP는 기본적으로 Policy-base이므로 정책이 우선순위이다.

2. shortest AS-PATH 

  - 지나온 경로(AS-PATH)에 있는 AS의 개수가 가장 적은 경로를 선택한다. 위의 예젱서는 AS3에서 온 경로를 선택

3. HOT-potato

  - NEXT-HOP까지 가는 cost가 가장 적은 경로를 선택한다.

  다음과 같이 2d가 두가지의 경로에서 정보를 받았다면 hot-potato기준으로 NEXT-HOP까지의 거리가 201인 path를 선택한다.

 

 

SNMP(Simple Network Management Protoocl)


SNMP에 대해서 간단하게만 알아보겠다,

 

SNMP는 IP 네트워크에 존재하는 장치로부터 정보를 수집하고 전송할 때 쓰는 포로토콜이다.

 

전체적인 구조를 보면 다음과 같다.

SNMP는 UDP를 사용한데 알다시피 UDP는 패킷 loss에 대한 에러 리커버리 기능이 없다.

Ruquest의 메시지에 대한 ack은 그냥 agnet가 manager에게 보내는 response로 생각하면 되는데 trap은 그게 없다.

때문에 manager간의 informRequest메시지를 trap에 대한 ack으로 이용하기도 한다.

`

'컴퓨터 네트워크 > Computer Networking 정리' 카테고리의 다른 글

CH6 : Data Link Layer (1)  (0) 2021.12.01
패킷 전송(Packet Delivery)_ARP  (0) 2021.11.25
CH5 : Network Layer Control Plane (1)  (0) 2021.11.17
CH4 : Network Layer (4)  (0) 2021.11.14
CH4 : Network Layer (3)  (0) 2021.11.11