컴퓨터 네트워크

5단원 네트워크 계층: 제어평면 -2

YJ_ma 2022. 10. 10. 16:56

5.3 인터넷에서 AS 내부 라우팅: OSPF


동일한 라우터 알고리즘을 수행하는 동종의 라우터 집합으로 간주하는 관점 단순 이유 문제

① 확장 : 라우터 수가 증가함에 따라 라우팅 정보의 통신, 계산, 저장에 필요한 오버헤드가 걷잡을 수 없이 증가한다.

② 관리자치 : ISP는 일반적으로 자신의 네트워크를 원하는대로 운용하거나 네트워크 내부 구성을 외부에 감추기를 원함

이러한 문제는 라우터들을 자율 시스템(AS)로 조직화하여 해결할 수 있다.

 

자율 시스템(AS)

- 각 AS는 동일한 관리 제어하에 있는 라우터의 그룹으로 구성

- 한 ISP의 라우터와 그들을 연결하는 링크가 종종 하나의 AS를 이룬다.

ex, ISP의 네트워크를 여러개의 AS로 나누거나 수십개의 서로 연결된 AS들로 나눈다.

- 자율 시스템은 AS의 번호(ASN)으로 식별한다.

- 같은 AS안에 있는 라우터들은 동일한 라우팅 알고리즘을 사용하고 상대방에 대한 정보를 가지고 있다.

- AS 내부 라우팅 프로토콜 : 자율 시스템 내부에서 동작하는 라우팅 알고리즘

 

개방형 최단 경로 우선(Open Shortest Path First, OSPF) 프로토콜

- 라우팅 프로토콜에 대한 명세가 공개적으로 사용 가능함

-  링크 상태 정보를 플러딩하고 다익스트라 최소 비용 경로 알고리즘을 사용하는 링크 상태 알고리즘이다.

- 각 라우터는 전체 AS에 대한 완벽한 토폴로지 지도(그래프)를 얻는다.

- 개별 링크들의 비용은 네트워크 관리가자 구성한다. (ex, 모든 링크 비용 1로 설정: 최소 홉 라우팅)

- 링크의 가중치 설정 방법을 특정하지 않고 주어진 링크 가중치들에 대해 최소 비용 경로를 결정하는 방법(프로토콜)만 제공

- OSPF의 라우터는 자율 시스템 내의 다른 모든 라우터에게 라우팅 정보를 브로드 캐스트한다.

- OSPF 프로토콜은 신뢰할 수 있는 메시지 전송과 링크 상태의 브로드캐스트와 같은 기능을 스스로 구현

 

OSPF 개선사항

① 보안 : 인증을 통해 신뢰할 수 있는 라우터들만이 AS 내부의 OSPF 프로토콜에 참여할 수 있고 악의적인 침입자가 잘못된 정보를 라우터 테이블에 삽입하는 것을 막게 된다.

② 복수 동일 비용 경로 : 하나의 목적지에 대해 동일한 비용을 가진 여러 개의 경로가 존재할 때 OSPF는 여러 개의 경로를 사용할 수 있도록 한다.

③ 유니캐스트와 멀티캐스트 라우팅의 통합 지원 : 멀티캐스트 OSPF(MOSPF)는 멀티캐스트 라우팅 기능 추가

④ 단일 AS내에서의 계층 지원 

- 각 영역 내에서 하나 혹은 그 이상의 영역 경계 라우터(area border router)가 영역 외부로의 패킷 라우팅을 책임진다.

- AS에서 오직 하나의 OSPF 영역만이 백본(backbone) 영역으로 설정된다.

백본 : AS 내 영역 간의 트래픽을 라우팅 하는 것

→ 영역 경계 라우터로 패킷을 라우팅하고 (영역 내 라우팅), 백본을 통과하여 목적지 영역의 영역 경계 라우터로 라우팅한 후 최종 목적지로 라우팅한다.

 

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


- 패킷이 여러 AS를 통과하도록 라우팅 할 때 자율시스템 간 라우팅 프로토콜이 필요하다.

- 인터넷의 모든 AS들은 경계 게이트웨이 프로토콜(BGP)인 동일한 AS간 라우팅 프로토콜을 사용한다.

일반적으로 BGP가 있다.

BGP : 인터넷에 있는 수천 개의 ISP들을 연결하는 프로토콜, 분산형 비동기식 프로토콜

 

5.4.1 BGP의 역할


AS 내에 있는 목적지에 대해서 라우터의 포워딩 엔트리들이 해당 AS의 AS내부 라우팅 프로토콜에 의해 결정

목적지가 AS 외부에 있는 경우?

BGP에서는 패킷이 특정한 목적지 주소를 향해서가 아니라 CIDR형식으로 표시된 주소의 앞쪽 접두부(prefix)을 향해 포워딩된다.

각 접두부 : 서브넷, 서브넷의 집합

라우터의 포워딩 테이블 (x, l) : x는 주소 접두부(ex, 138.16.68/22), I는 라우터 인터페이스의 인터페이스 번호

 

BGP 수단

① 이웃 AS로부터 도달 가능한 서브넷 접두부 정보를 얻는다.

- 각 서브넷이 자신의 존재를 인터넷 전체에게 알릴 수 있도록 한다.

② 서브넷 주소 접두부로의 "가장 좋은" 경로를 결정한다.

- 라우터는 특정한 주소 접두부를 향한 두 개 이상의 경로를 알 수 있다.

- 가장 좋은 경로 결정하기 위해 라우터는 BGP의 경로 결정 프로시저를 수행한다. 도달가능정보뿐 아니라 정책 기반 결정

5.4.2. BGP 경로 정보 알리기


그림 5.8 세 개의 자율 시스템(AS)을 가지는 네트워크. AS3은 주소 접두부가 X인 서브넷을 포함함

3개의 자율 시스템 : AS1, AS2, AS3

- AS3에는 주소 접두부 X인 서브넷을 포함한다.

- AS에서 각각의 라우터는 게이트웨이 라우터내부 라우터가 있다.

게이트웨이 라우터 내부 라우터
AS의 경계에 있는 라우터, 다른 AS들에 있는 하나 또는 여러개의 라우터와 직접 연결
ex, AS1의 라우터 1c
자신의 AS내의 있는 호스트 및 라우터와만 연결
ex, AS1의라우터 1a, 1b, 1d

BGP에서 라우터의 쌍들은 포트번호가 179이고 반영구적인 TCP연결을 통해 라우팅 정보를 교환한다.

BGP 연결 : TCP연결을 통해 모든 BGP 메시지를 전송

외부 BGP(external BGP, eBGP) : 두 개의 AS에 걸친 BGP연결

ex, 라우터 1c와 2a간에 eBGP존재, 라우터 2c와 3a간의 eBGP존재

내부 BGP(internal BGP, iBGP) : 같은 AS내의 라우터 간 BGP연결

 

도달 가능성 정보를 전파하기 위해서 iBGP와 eBGP연결이 모두 사용된다.

[예제 그림 5.9 접두부 x에 대한 도달 가능 정보를 AS1, AS2의 모든 라우터들에게 알리는 경우

① 게이트웨이 라우터 3a는 게이트웨이 라우터 2c에게 "AS3 x"라는 eBGP메시지를 보낸다.

② 게이트웨이 라우터 2c는 iBGP 메시지 "AS3 x"를 게이트웨이 2a를 포함한 AS2 내부의 모든 라우터에게 전송

③ 게이트웨이 라우터 2a는 eBGP메시지 "AS2 AS3 x"를 게이트웨이 라우터 1c에게 보낸다.

④ 게이트웨이 라우터 1c는 iBGP 메시지 "AS2 AS3 x"를 AS1 내의 모든 라우터에게 전달한다.

⑤  AS1과 AS2의 각 라우터들은 x의 존재와 x로 향하는 AS경로를 알게 된다.

그림5.10 AS1와 AS3간 링크가 추가된 네트워크

그림 5.10의 경우 네트워크에 라우터 1d에서 3d로 연결되는 물리적인 링크가 추가되었다.

이 경우 AS1에서 x로의 경로는 두 개가 존재한다. 

1. "AS2 AS3 x"  2. "AS3 x"

 

5.4.3 최고의 경로 설정


라우터들은 종종 수십개의 서로 다른 경로 정보를 받을 때 어떻게 선택할까?

 

BGP 용어

라우터가 BGP연결을 통해 주소 접두부를 알릴 때 몇몇 BGP속성을 함께 포함한다.

경로(route) : 주소 접두부와 그 속성을 함께 말함

 

BGP 속성

AS-PATH NEXT-HOP
- 알림 메시지가 통과하는 AS들의 리스트를 담는다.
ex, 그림5.10 AS1부터 서브넷 x까지 경로는
AS-PATH "AS2 AS3", "AS3"이 있다.
- 메시지의 루프를 감지하고 방지하기 위해 활용
- AS-PATH를 시작하는 라우터 인터페이스의 IP주소
- AS간 프로토콜과 AS내부 라우팅 프로토콜 사이 연결
ex, 그림5.10
"AS2 AS3 x"경로의 NEXT-HOP속성 : 라우터 2a의 왼쪽 인터페이스의 IP주소이다.
"AS3 x"경로의 NEXT-HOP속성 : 라우터 3d의 맨 왼쪽 인터페이스의 IP주소이다.

따라서 각 BGP 경로NEXT-HOP, AS-PATH, 목적지 주소 접두부로 나타낼 수 있다.

라우터 2a의 맨 왼쪽 인터페이스의 IP주소; AS2 AS3 x; x
라우터 3d의 맨 왼쪽 인터페이스의 IP주소; AS3 x; x

 

BGP 라우팅 알고리즘

(1) 뜨거운 감자 라우팅(Hot Potato Routing)

라우터 포워딩 테이블에 AS 외부의 목적지를 추가하는 과정

1단계 2단계 3단계 4단계
여러게이트웨이를 통해 서브넷 x에 도달할 수 있다는 것을 AS간 프로토콜로부터 알게 된다. 각 게이트웨이까지의 최소 비용 경로를 정하기 위하여 AS내부 프로토콜을 통해 얻은 라우팅 정보를 이용한다. 뜨거운 감자 라우팅 : 가장 적은 비용의 게이트웨이를 선택한다. 포워딩 테이블로부터 최소 비용 게이트웨이로의 인터페이스 I를 결정한다.
포워딩테이블 (x, I)를 추가한다.

- 라우터가 목적지까지의 경로 중 자신의 AS 바깥에 있는 부분에 대한 비용은 신경쓰지 최대한 최소의 비용으로 패킷을 자신의 AS 밖으로 내보내는 것이다. 

- 오로지 자신의 AS 내부 비용만 줄이려는 이기적인 알고리즘이다.

- 한 AS내 두 개의 라우터가 동일한 목적지 주소에 대해 서로 다른 AS경로를 선택할 수 있다.

 ex, 1b는 AS2를 통해 서브넷 x로 패킷을 보내는 반면, 1d는 바로 AS3을 통해 서브넷 x로 패킷을 보냄

 

(2) 경로 선택 알고리즘

지역 선호도 경로 할당(라우팅 정책) > 최단 AS-PATH경로 선택(AS 홉 수) > 뜨거운감자 라우팅 수행 > BGP식별자 사용 경로선택

[예제] 그림 5.10 라우터 1b에서 서브넷 x로 가는 BGP경로

뜨거운 감자 라우팅 경로 선택 알고리즘
"AS2 AS3 x" "AS3 x"

 

5.4.4 IP 애니캐스트(anycast)


- CDN은 일반적으로 IP애니캐스트를 사용하지 않는다. 왜냐하면 BGP라우팅이 변경되면 하나의 TCP 연결에 속한 패킷들이 웹서버의 서로 다른 복제본으로 도착할 수 있기 때문이다.

- DNS질의가 13개의 IP주소 중 하나로 전달되면 그 질의를 해당 IP주소를 담당하는 DNS루트 서버들 중 가장 가까운 서버로 전달하기 위해 IP 애니캐스트를 사용한다.

5.4.5 라우팅 정책


그림 5.13 간단한 BGP 정책 시나리오

* AS 라우팅 정책은 최단 AS-PATH나 뜨거운 감자 라우팅 같은 모든 고려사항보다 우선시된다.

[예제] 그림 5.13에는 A, B, C, W, X, Y 여섯 개의 자율 시스템이 연결되어있다.

- 사용자 액세스 ISP : 자율 시스템 W, X, Y

- 백본 제공자 네트워크 : A, B, C

- ISP 액세스 네트워크로 들어오는 모든 트래픽은 그 네트워크를 목적지로 해야한다.

- ISP 액세스 네트워크에서 나가는 트래픽은 그 네트워크 안에서 생성된 것이어야한다.

다중 홈 액세스 ISP : 서로 다른 두 제공자를 통해 네트워크의 다른 부분들과 연결 ex, X

 

어떻게 X가 B와 C간 트래픽을 포워딩하는 것을 방지할 수 있을까?

BGP경로의 알림 방식을 제어함으로써 해결한다.

X는 자기자신을 제외하고 어떤 다른 목적지로도 경로가 없다고 알림으로써 액세스 ISP 네트워크의 역할을 한다.

ex, X가 Y까지 가는 경로 XCY라는 경로를 B에게 알리지 않는다.

 

B는 A로부터 A가 W까지의 경로 AW를 가지고 있음을 알게되었다고 가정

고객 X에게 BAW경로를 알리려고 한다.

BAW경로를 C에게도 BAW 경로를 알려야할까?

B는 당연히 A와 C사이의 직접 연결을 통해 C가 A의 고객에게 경로를 제공하는 것을 보장해야한다.