블로그 이전했습니다. https://jeongzero.oopy.io/
AS 내부/외부 라우팅
본문 바로가기
컴퓨터 관련 과목/Network

AS 내부/외부 라우팅

728x90


AS(자율 시스템-Autonomous System)란 인터넷에서 동일한 관리자에 의해 여러 내부 라우팅 프로토콜을 동일한 정책을 통해 관리되는 라우터들과 서브네

트워크 들의 집합이다. 일반적으로 학교, 기업 사내 전산망, 크게 보면 ISP 등을 말한다. 즉 하나의 관리 통제하에 있는 영역을 뜻한다고 보면된다. 

네트워크는 AS에 의해 분리되어야 하는데, 이는 라우팅 정책의 독립성, 보안 유지, 고장 및 오류의 국지화, 라우팅 트래픽양의 최소화 등을 하기 위함이다. 

또한 동일한 AS 상에 있는 라우터 들은 라우팅 정보들을 공유하게 되고 이는 내부 라우팅 프로토콜인 OSPF, RIP, IGP 등으로 수행된다. 또한 AS 서로간의

라우팅은 EGP, BGP 등의 프로토콜로 수행된다.


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


OSPF 라우팅은 인터넷에서 AS 내부 라우팅에 널리 사용된다. OSPF의 Open은 라우팅 프로토콜에 대한 명세가 공개적으로 사용 가능함을 의미한다.

(반대의 예를 들면, 시스코의 EIGRP 프로토콜은 시스코에서 비공개로 대략 20년 간 사용하다가 최근에서야 공개했다.) OSPF는 링크 상태 정보를 플러딩

하고 다익스트라 최소 비용 경로 알고리즘을 사용하는 링크 상태 알고리즘이다. OSPF를 이용하여 각 라우터는 전체 AS에 대한 완벽한 토폴로지 그래프

를 얻는다. 각 라우터는 자신을 루트 노드로 두고 모든 서브넷에 이르는 최단 경로 트리를 결정하기 위해서 혼자 다익스트라의 최단 경로 알고리즘을 

수행한다. 개별 링크들의 비용은 네트워크 관리자가 구성한다. 또한 OSPF를 사용하는 라우터는 인접한 라우터만이 아니라 자율 시스템 내의 다른 모든

 라우터에게 라우팅 정보를 브로드캐스트 한다. 라우터는 링크 상태가 변경될 때마다 링크 상태 정보를 브로드캐스트 하고 링크 상태가 변경되지 않았

더라도 정기적으로 링크 상태를 브로드캐스트한다. 



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

OSPF가 AS 내부 라우팅 프로토콜이라고 위에서 설명했다. 동일한 AS 내에 있는 출발지와 목적지 사이에서 패킷을 라우팅할 때, 패킷이 전송되는 경로

는 전적으로 AS 내부 라우팅 프로토콜에 의해 결정된다. 그러나 패킷이 여러 AS를 통과하도록 라우팅 할 때, 우리는 AS간 라우팅프로토콜이 필요하다. 

AS 간 라우팅 프로토콜은 여러 AS간의 협력이 수반되므로 통신하는 AS들은 같은 AS 간 라우팅 프로토콜을 수행해야만 한다. 인터넷의 모든 AS들은 경

계 게이트웨이 프로토콜, 즉 BGP라고 불리는 프로토콜을 사용한다. BGP는 인터넷에 수천 개의 ISP 들을 연결하는 프로토콜이므로, 인터넷 프로토콜들 

중에 가장 중요하다.


BGP 역할 : BGP에서는 패킷이 특정한 목적지 주소를 향해서가 아니라 CIDR 형식으로 표현된, 주소의 앞쪽 프리픽스를 향해 포워딩 되고 각 프리픽스는 서브넷이나 서브넷의 집합을 나타낸다. BGP는 목적지가 137.16.68/22와 같은 형식으로 표현되고 이는 1024개의 IP 주소를 포함한다. 따라서 라우터의 포워딩 테이블은 (x,I) 같은 형식의 엔트리들을 갖게 되는데, 여기서 x는 주소 프리픽스이고, I는 라우터 인터페이스의 번호이다. AS 간 라우팅 프로토콜로서 BGP는 각 라우터에게 다음과 같은 수단을 제공한다.

1. 이웃 AS 로부터 도달 가능한 서브넷 프리픽스 정보를 얻는다. 특히 BGP는 각 서브넷이 자신의 존재를 인터넷 전체에 알릴 수 있도록 한다. 어떤 서브넷이 "나는 존재하고, 여기에 있어요!!"라고 외치면 BGP는 인터넷의 모든 라우터들이 이 서브넷에 대해 알 수 있도록 만든다. 만일 BGP가 없다면 각 서브넷들은 고립된 섬이 될 것이다.

2. 서브넷 주소 프리픽스로의 가장 좋은 경로를 결정한다. 라우터는 특정한 주소 프리픽스를 향한 두 개 이상의 경로를 알 수도 있다. 가장 좋은 경로를 결정하기 위해 라우터는 BGP의 경로 프로시저를 수행한다. 최고의 경로는 도달 가능 정보 뿐 아니라 정책에 기반해서 결정된다.



위 그림을 살펴보자. 이 단순한 네트워크는 세 개의 AS를 가진다.(AS1, AS2, AS3) AS를 서로 연결하는 라우터를 게이트웨이 라우터(1c, 2a, 2c, 3a)라고 하고,그외에 라우터를 내부 라우터라고 한다.  3d 라우터에 대한 도달 할 수 있는 정보를 모든 라우터에게 알리는 작업을 생각해보자. 먼저 AS3가 AS2에게 BGP메시지를 보내 3d가 AS3 내부에 존재한다고 알린다. 이 메시지를 "AS3 x"라고 표기하자. 


그러면 AS2는 AS1에게 BGP 메시지를 보내서 x가 존재하고 x에도달하기 위해서는 먼저 AS2를 통과하고 그 후  AS3로 갈 수 있다고 알린다. 이 메시지를 "AS2 AS3 x"라고 표기하자. 이런 방식으로 AS 각각은 x의 존재뿐아니라 x에 이르기 위한 AS 시스템 간의 경로를 알게 된다. 이러한 과정은 전반적인 아이디어를 설명한 것이며 디테일한 과정을 설명하겠다.


BGP 연결은 외부 BGP 연결(eBGP)과 내부 BGP 연결(iBGP)로 이루어져 있다. eBGP 연결은 두 개의 AS에 걸친 연결을 뜻하며, iBGP는 같은 AS 내의 라우터 간의 연결을 뜻한다. 특정 라우터의 도달 가능정 정보를 전파하기위해서 이 두개의 연결이 모두 사용된다. 위 그림을 다시 보자. 3d 라우터의 도달 가능성을모든 라우터에게 전파하려면 우선 3d와 3a 라우터간의 iBGP 연결을 사용해야 하고, 3a 라우터와 2c 라우터는 eBGP 연결을 사용하여 서로 다른 AS 간의 연결을 이루어야 한다. 


 여기서 헷갈리면 안되는게 다른 AS에 있는 라우터의 정보를 알리려면 BGP를 사용해야 한다고 했는데 그럼 AS2에서 3d의 정보를 2c에서 2b에게 알릴때 위에서 설명한 OSPF를 사용해야 하는거아닌가?? 왜 iBGP를 사용한다고 설명하는가?? 처음에 이부분이 헷갈렸다. 결론은 OSPF는 정확히 말하면 AS 내부에서 한 라우터의 정보를 동일한 AS 내부에 있는 다른 라우터 에게 전달할 때 사용하는 것이고 위 상황은 현재 AS2안에서 일어나고 있는데 알리려는 다른 AS의 라우터 정보이다. 따라서 AS2 내부에서 2c와 2b의 연결에서 OSPF를 사용하는게 아니라 iBGP를 사용해야 한다. 




뜨거운 감자 라우팅

아래 그림을 보자. 모든 라우터들은 AS 간 라우팅을 통해서 x로 도달하는 경로를 다 알게 되었다고 가정하자. 그렇다면 1b에서 x로 가는 방법은 바로

 3a로 가서 x로 가는 방법과 AS2로 거쳐서 1c->2a... 이렇게 가는 방법이 있다. 



간단히 말하면 뜨거운 감자 라우팅은 매우 이기적인 방법이다. 자기밖에 모른다. 무슨 말이냐면, 우리는 봤을 때 1c->3a->3d->x로 가면 훨신 좋다고 다들 생각할 것이다. 하지만 뜨거운 감자라우팅에 깔려 있는 기본 아이디어는 라우터 1b가 목적지까지의 경로 중 자신의 AS 바깥에 있는 부분에 대한 비용은 신경쓰지 않고 최대한 신속하게, 정확하게는 자신이 속해 있는 내부 AS에서 최소의 비용이 드는 경로를 통해 밖으로 패킷을 내보낸다. 


따라서 뜨거운 감자 라우팅은 전체 경로 중에서 자기 AS 외부에서 얼마의 비용이 들지는 신경쓰지 않고 오로지 자신의 내부 비용만 줄이려는 이기적인 알고리즘이라는 소리이다.





728x90