2024. 10. 15. 20:27ㆍCS/컴퓨터네트워크
이전에 배웠던 라우팅 알고리즘(Link state,Distance vector)은 모든 라우터가 동등한 입장에 있었다.하지만 현실은 모든 라우터가 같은 레벨에 존재하지 않는다.현실에서는 라우터의 수가 많이 증가했고 ISP들의 각각의 네트워크를 각자의 방식으로 관리하기에 실제로는 계층적이다.이를 자율 시스템(Autonomous Systems,AS)로서 조직화하여 해결한다.
따라서 라우팅 프로토콜은 크게 2가지로 나눌 수 있다.
Intra-AS
동일한 AS안에서 라우팅하는 프로토콜로 IGP(Interior Gateway Protocol)로도 불린며 동일한 AS내의 라우터는 같은 Intra-domain 라우팅 프로토콜을 사용해야 하고 서로 다른 AS는 서로 다른 Intra-domain 라우팅 프로토콜을 사용할 수 있다.또한 게이트웨이 라우터(Gateway Router)가 AS의 가장자리에 위치하여 다른 AS라우터와 연결된 링크를 갖는다.

하나의 포워딩 테이블에 Intra-AS,Inter-AS 정보를 따로 저장해서 외부 AS로 나가는 것과 내부 AS로 보내야 하는것을 처리한다.Inter-AS라우팅 프로토콜에는 한 AS로 네트워크 범위가 한정되기에 Link-state 알고리즘을 적용하는것이 유리하다.현재는 Link-state 알고리즘을 적용한 OSPF(Open Shortest Path First)를 표준으로 사용한다.
OSPF(Open Shortest Path First)
Open이라는 말은 라우팅 프로토콜의 작동 방식이 오픈소스처럼 공개되어 있음을 의미하고 각 라우터는 같은 AS내의 모든 라우터와 연결 상태를 공유한다.이때 공유 방식은 TCP,UDP가 아니다.IP기반의 별도의 방식을 사용한다.이를 생각해보면 신뢰성도 높아야하지만 오버헤드도 적어야한다는 관점으로 접근하면 된다.우선 모든 라우터에게 Multicasting해야하기에 1대1통신이 기본인 TCP는 사용하기 어렵고 UDP를 사용하기에는 안정성이 떨어지기 때문에 다른 방식을 사용한다.그리고 링크간의 Cost는 대역폭,지연..등을 알아서 기준으로 삼는다.각각의 라우터는 모든 Topology를 알고있기에 다익스트라 알고리즘을 바탕으로 포워딩 테이블을 제작한다.또한 보안상의 이유로 모든 OSPF 메세지는 인증을 통해 전송된다.
Hierarchical OSPF
각 AS도 점차 크기가 증가해서 계층적으로 네트워크를 구성한다.

각 area들을 나눠서 backbone에서 area별로의 state를 공유하는 방식이다.
Inter-AS(BGP)
BGP(Border Gateway Protocol)라고 불린다.BPG는 네트워크간의 라우팅을 통해 올바른 네트워킹이 될 수 있게한다.또한 BGP도 크게 두가지로 나뉜다.
- eBGP:다른 AS사이에서 정보 교환을하는 Inter-AS 라우터 프로토콜로 서브넷 도달 가능성(reachability)을 알리는 경로 정보를 교환한다.
- iBGP:동일한 AS안에서 외부 경로 정보를 전파하는 Inter-AS 라우터 프로토콜이다.모든 AS내의 라우터가 외부 AS로의 경로를 알도록 전파한다.

BGP는 각각의 라우터가 TCP로 미리 링크를 만들어둔다.TCP를 사용하는 이유는 BGP의 메세지 교환은 신뢰성이 중요하기 때문이다.만일 BGP에서 문제가 발생하면 그 AS의 네트워크는 큰 타격을 입을 것 이다.
BGP는 다른 라우터에게 경로를 알려야하고 그때 BGP메시지는 Prefix + Attributes 형식으로 보내진다.
Prefix는 경로를 알리기위한 네트워크의 범위(ex.192.168.0...)고 Attributes에는 AS-Path,Next-HOP이 포함된다.
AS-Path에는 지나온 AS라우터들의 목록이고 Next-HOP에는 다음 홉으로 가기위한 내부 AS의 특정 라우터를 나타낸다.

그리고 위의 1c라우터 처럼 X로가는 중복되는 정보를 얻을시 Shortest Path를 선택한다.
BGP messages
BGP는 TCP로 연결되고 크게 4가지의 메세지들을 주고 받는다.
- OPEN:BGP간 TCP연결을 시작할때 사용한다.
- UPDATE:새로운 경로를 알리거나 경로정보를 덮어쓸때 사용한다.
- KEEPALIVE:TCP가 주기적으로 연결을 끊기에 끊어지기전에 송신함으로써 연결을 유지한다.OR BGP연결을 시작하는 OPEN 메세지에 대한 ACK으로 보낸다.
- NOTIFICATION:에러를 보고하거나 연결을 종료할때 사용한다.
BGP의 전파과정은 다음과 같다.

하지만 BGP에서의중요한건 Policy-based routing이다.각 소비자는 ISP들에게 비용을 지불하고 서비스를 이용하고 ISP들도 그러하다.따라서 불필요한 네트워킹(돈이 안되는..)은 Policy를 설정함으로써 막는다.

위와 같은 상황에서 x는 B,C의 네트워크 인프라를 이용해 인터넷을 사용하지만 B -> x -> C와 같은 트래픽은 있어서는 안된다.따라서 x에서 B,C의 BGP를 포워딩을 하지 않는 Policy를 설정함으로써 차단한다.
이제 구체적으로 Intra-AS,Inter-AS의 차이점을 살펴보면 우선 Policy에서 Inter-AS 프로토콜은 외부로 어떻게 트래픽이 라우팅되는지에 통제권을 행사한다.반면 Intra-AS는 단일 관리자 전체 네트워크를 관리하기에 정책에 대한 고려보다는 성능 향상에 더 신경을 많이 쓴다.
또한 Inter-AS는 Policy를 중요히 여겨 Shortest path말고 다른 정책을 선택할 수 있다.하지만 Intra-AS에서는 성능을 위해서 Shortest path를 선택한다.
Hot potato routing

2d가 X로가는 경로를 2개를 안다가정했을때 보통의 BGP에서는 Shortest path를 선택했지만 Hot potato 라우팅은 오직 내부 AS에서 가장 코스트가 적은 경로를 선택한다.따라서 AS 밖에서 일어나는 비용에 대해서는 생각하지 않는다.
'CS > 컴퓨터네트워크' 카테고리의 다른 글
Network management & configuration (0) | 2024.10.22 |
---|---|
SDN,ICMP (0) | 2024.10.22 |
라우팅 알고리즘 (0) | 2024.10.11 |
SDN(Software Define Network),Middleboxes (0) | 2024.10.08 |
NAT & IPv6 (0) | 2024.10.01 |