-
9. OSPF, BGP, SDN공부/컴퓨터 네트워크 2022. 6. 3. 01:54반응형
이 글은 Computer Networking: A Top-Down Approach 7th를 읽고 정리한 글입니다.
1. Autonomous System (AS)
이전에서 배운 라우팅 알고리즘은 모든 라우터가 동일한 라우팅 알고리즘을 수행하고, 네트워크 설계 자체가 굉장히 단순하다는 것으로 굉장히 이상적인 상황이라고 볼 수 있다. 하지만 현실은 아래 두가지 이유 때문에 복잡한 상황이 나오게 된다.
1) 라우터 수는 굉장히 많기 때문에 라우터가 모든 정보를 담아내기엔 메모리가 많이 부족하다. 그래서 수없이 반복하게 되는 DV 알고리즘은 계속해서 돌아가지만 최소 비용 거리를 찾아내기가 굉장히 힘들어진다.
2) 라우터를 만든 회사도 다르고, 인터넷을 제공하는 회사도 다르다. 그래서 이것을 서로 연결하는 일이 필요하다.
이 두 가지 문제점은 라우터들을 자율 시스템(Autonomous System, AS)으로 조직화하여 해결할 수 있다.
각 AS는 동일한 관리 제어에 있는 라우터의 그룹으로 구성된다. AS의 개수는 회사 마음이다.
같은 AS안의 라우터들은 동일한 라우팅 알고리즘을 사용하고, 상대 AS에 대한 정보를 가질 수 있다.
1) AS 내부에서 동작하는 라우팅 알고리즘을 Intra-Autonomous System Routing Protocol이라고 한다.
2) AS끼리 동작하는 라우팅 알고리즘을 Inter-Autonomous System Routing Protocol이라고 한다.
그래서 Intra-AS의 경우에는 대표적으로 OSFP, RIP가 있고, Inter-AS의 경우에는 BGP가 있다.
위 사진으로 내부에서는 Intra-AS를 사용하는 것을 알 수 있고, AS끼리는 Inter-AS를 사용하는 것을 알 수 있다.
Inter-AS는 Intra-AS에 있는 라우터지만 다른 Intra-AS를 연결하는 라우터를 사용한다. 이것을 border rounter라고 한다.
2. Intra-Autonomous System Routing Protocol: OSFP
OSFP = Open Shortest Path First
OSFP는 AS 안에서 작동하는 Link State Algorihtm을 사용하는 프로토콜이다.
Link State Algorihtm을 사용하므로 중앙집중형이니까 로컬 내에서 각 라우터가 모든 정보를 알아야한다.
IP를 통해서 OSPF 메시지를 보낸다. (네트워크 레이어에 있는 프로토콜)
OSFP의 계층은 two-level 계층적 구조로 이루어져 있으며 계층은 backbone과 area(local area)로 나눌 수 있다.
위 사진을 하나의 AS라고 본다면 boundary router는 border router로 볼 수 있다.
1) area 1, area 2, area 3에서 각 area는 OSPF를 수행한다. (= link state algorithm을 수행)
2) area 1에서 area 2로 데이터를 보낼 때에는 area 1 → area 1 border router → area 2 border router → area2로 보낸다.
(데이터를 보낼 때 무조건 border router를 거쳐간다.)
3. Inter-Autonomous System Routing Protocol: BGP
BGP = Border Gateway Protocol
인터넷에 있는 ISP를 연결하는 프로토콜로 BGP는 iBGP와 eBGP로 나뉘게 된다.
- eBGP(external BGP): AS와 AS 사이의 연결
- iBGP(internal BGP): 같은 AS 내의 라우터 간 BGP 연결
위 그림을 보면 모든 라우터가 border router이므로 같은 AS 내에서 BGP 연결은 iBGP임을 알 수 있다.
마찬가지로 AS 1과 AS 2를 연결하는 라우터 1c와 라우터 2d는 AS와 AS의 BGP 연결이므로 eBGP임을 알 수 있다.
예를 들어 라우터 X에 대한 도달 가능 정보를 AS 1과 AS 2의 모든 라우터에게 알리는 것을 가정하자
1) AS 3에서 AS 2은 eBGP 연결로 메시지를 보낸다.
2) AS 2는 모든 라우터에게 iBGP 연결로 메시지를 보낸다.
3) AS 2에서 AS 1은 eBGP 연결로 메시지를 보낸다.
4) AS 1은 모든 라우터에게 iBGP 연결로 메시지를 보낸다.
5) 그러면 AS 1과 AS 2에 있는 모든 라우터들이 라우터 X로 가는 경로를 알 수 있게 된다.
이때 AS 간의 eBGP 연결은 반영구적인 TCP 통신이다.
3.1 최고의 경로 설정
라우터가 BGP연결을 통해 prefix를 전파하려고하면 두 가지 중요한 BGP 속성이 필요하다.
1) AS-PATH: 메시지를 통과하는 AS들의 리스트
2) NEXT-HOP: AS-PATH를 시작하는 라우터 인터페이스의 IP주소
AS3에서 AS1로 메시지를 전파한다고 해보자이때 AS3에서 AS2로 eBGP를 하면 AS-PATH는 AS3, X가 된다.이후 AS2에서 iBGP로 전파하면 AS-PATH는 AS3, X 그대로지만, NEXT-HOP: 2c가 추가된다.이것은 나중에 메시지를 AS3으로 보낼 때 AS2의 2c 라우터로 보내면 된다는 정보를 가지고 있다.
3.2 Hot Potato Routing
위 사진처럼 X에서 AS2의 2d로 가야하는데, 경로가 AS3 → AS2 와 AS3 → AS1 → AS2가 있다.
이때 뜨거운 감자 라우팅은 AS 내부에서 NEXT-HOP 라우터까지의 가장 작은 경로를 찾는다.
여기에서는 2d → 2a로 가는 비용은 201이고, 2d → 2c로 가는 비용은 263이므로 2a를 선택하게 된다.
주의할 점은 뜨거운 감자 라우팅은 AS 내부 비용만 고려하는 것이지 다른 AS의 비용까지 고려해서 선택하지 않는다.
4. Software Defined Network (SDN)
만약 uvwz로 가는 메시지와 xwyz로 가는 메시지가 있다고 해보자
그러면 라우터 w가 겹치기 때문에 트래픽이 발생할 수도 있는데, 우리가 지금까지 배운 방법으로는 이런 트래픽 흐름을 조절할 수 없다.
그래서 트래픽을 조절하기 위해 SDN이 나오게 되었다.(다른 이유도 있긴한데 여기서 중요하지 않음)
4.1 SDN
원래 라우터 내부에서 각각 계산을 돌렸지만, SDN에서는 Remote Controller에서 계산을 하여 라우터들에게 데이터를 보내준다.
그래서 원래 라우터 하나에 control plain과 data plain이 있었지만, SDN에서는 control plain에서 알고리즘을 돌리고, data plain은 단순히 데이터를 받는 역할만 한다.
SDN은 3계층으로 나뉘는데, control plain이 두 개의 계층으로 나뉜다.
1) network-control apps: 계산을 하는 역할 (뇌)
2) SDN controller: 1과 3을 상호작용하는 역할
3) Data plain switches: 단순히 데이터를 받아 포워딩을 하는 역할
4.2 OpenFlow
OpenFlow는 SDN이 Control plain과 Data plain이 나뉜 것 때문에 계산할 떄 필요한 값을 Controller로 보내기 위해 통신을 해야해서 생긴 프로토콜이다.
만약 s1과 s2 사이의 링크가 고장났다면 다시 업데이트를 해야하기 때문에 OpenFlow를 거쳐서 다시 link-state 알고리즘을 통해 경로를 재설정해주고 모든 라우터에게 전달해준다.
반응형'공부 > 컴퓨터 네트워크' 카테고리의 다른 글
11. 스위치 근거리 네트워크 (0) 2022.06.07 10. 링크 계층 (0) 2022.06.06 8. NAT, IPv6, ICMP, Routing Algorithm (0) 2022.05.30 7. 네트워크 계층 (0) 2022.05.27 6. 혼잡 제어 (0) 2022.05.24