티스토리 뷰
5. 네트워크 계층: 제어 평면
🤨
네트워크 계층을 두개로 나누면?
Control Plane: 네트워크 장비를 제어하는 뇌에 해당
Data Plane: 데이터를 전송하는 역할
5.1 개요
포워딩과 라우팅 개념은 네트워크 계층 학습 시 계속 등장하는 개념이다. 정확하게 짚고 넘어가자!
포워딩
- 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것
라우팅
- 출발지에서 목적지까지의 경로를 결정하는 것
라우터별 제어
- 각 라우터는 다른 라우터의 라우팅 구성요소와 통신하여 자신의 포워딩 테이블의 값을 계산하는 라우팅 구성요소를 가지고 있다.
- OSPF와 BGP 프로토콜이 이 라우터별 제어 방식을 기반으로 한다.
논리적으로 중앙 집중된 제어
- 컨트롤러가 포워딩 테이블을 작성하고 이를 모든 개별 라우터가 사용할 수 있도록 배포한 경우
SDN
- 소프트웨어 애플리케이션과 API를 이용하여 네트워크를 프로그래밍하고, 중앙에서 전체 네트워크를 제어하고 관리하는 것이다.
5.2 라우팅 알고리즘
라우팅 알고리즘의 목표
- 송신자부터 수신자까지 라우터의 네트워크를 통과하는 좋은 경로를 결정하는 것이다.
- 좋은 경로 -> 최소 비용 경로
✅ 네트워크 제어 평면이 라우터별 제어 방식을 채택하든 논리적으로 중앙 집중된 방식을 채택하든 상관없이 패킷이 전송 호스트에서 수신 호스트로 이동하기 위한 잘 정의된 일련의 라우터가 항상 존재해야 한다.
그래프
- G=(N, E)로 나타내는데 N과 E는 각각 노드(node)와 에지(edge)의 집합
- 노드(node)
- 패킷 포워딩 결정이 이루어지는 지점
- 에지(edge)
- 물리 링크, 그 비용을 나타내는 값을 가진다.
- 경로
- 노드의 연속
- 경로의 비용
- 경로상 모든 에지 비용의 단순합
- 최소 비용 경로는 하나일 수도 여러개 일 수도 있다.
- 최단 경로(shortest path) 만약 그래프의 모든 에지가 같은 비용을 갖는다면 최소 비용 경로가 바로 최단 경로
라우팅 알고리즘 분류
방법1️⃣. 알고리즘이 중앙 집중형인지 분산형인지
- 중앙 집중형 라우팅 알고리즘 👉 링크 상태 알고리즘
- 네트워크 전체에 대한 완전한 정보를 가지고 출발지와 목적지 사이의 최소 비용 경로를 계산한다.
- 핵심적인 특성은 이 알고리즘이 연결과 링크 비용에 대한 완전한 정보를 가진다는 점이다.
- 전체 상태 정보를 가지는 알고리즘
- 분산 라우팅 알고리즘 👉 거리벡터 알고리즘
- 최소 비용 경로의 계산이 라우터들에 의해 반복적이고 분산된 방식으로 수행된다.
- 각 노드가 네트워크 내 모든 다른 노드까지 비용(거리)의 추정값을 벡터 형태로 유지한다.
- 이웃한 라우터들끼리 반복적으로 메시지를 교환하는 분산형 알고리즘
방법2️⃣. 정적 알고리즘과 동적 알고리즘으로 분류
- 정적 라우팅 알고리즘(static routing algorithms)
- 경로는 아주 느리게 변한다.
- 종종 사람이 개입한 결과로 그렇게 된다.
- 동적 라우팅 알고리즘(dynamic routing algorithms)
- 네트워크 트래픽 부하나 토폴로지 변화에 따라 라우팅 경로를 바꾼다.
✅ 토폴로지: 컴퓨터 네트워크의 요소들(링크, 노드 등)을 물리적으로 연결해 놓은 것, 또는 그 연결 방식
방법3️⃣. 라우팅 알고리즘이 부하에 민감한지 아닌지
- 부하에 민감한 알고리즘
- 링크 비용은 해당 링크의 현재 혼잡 수준을 나타내기 위해 동저긍로 변한다.
- 부하에 민감하지 않은 알고리즘
- 오늘날 인터넷 라우팅 알고리즘(RIP, OSPF, BGP 등)은 링크 비용이 현재(또는 가장 최근)의 혼잡을 반영하지 않기 때문에 부하에 민감하지 않다.(load-insentive)
5.2.1 링크 상태(LS) 라우팅 알고리즘
- 중앙 집중형 알고리즘에 속한다.
- 네트워크 토폴로지와 모든 링크 비용이 알려져 있어서 링크 상태 알고리즘의 입력값으로 사용될 수 있다.
- 다익스트라 알고리즘을 이용해 최적의 경로를 계산할 수 있다.
- 하나의 노드에서 네트워크 내 모든 다른 노드로의 최소 비용 경로를 계산한다.
5.2.2 거리 벡터(DV) 알고리즘
- 분산형 알고리즘에 속한다.
- " 비동기적, 반복적, 자기 종료, 분산 알고리즘 "
- 즉 각 노드는 자신에게 연결된 이웃의 링크의 비용만 알고 있기 때문에 벨만-포드 알고리즘을 이용해 최적의 경로를 계산할 수 있다.
- 이웃끼리 반복해서 정보를 교환해 최적의 경로를 갱신하는 식이다.
- 분산적(distributed)
- 각 노드는 하나나 그 이상의 직접 연결된 이웃으로부터 정보를 받고, 계산을 수행하며, 계산된 결과를 다시 그 이웃들에게 배포한다는 점
- 반복적(iterative)
- 이웃끼리 더 이상 정보를 교환하지 않을 떄까지 프로세스가 지속된다는 점
- 비동기적(asynchronous)
- 톱니바퀴 돌듯이 모든 노드가 서로 정확히 맞물려 동작할 필요가 없다는 점
링크 상태(LS) 라우팅 알고리즘 VS 거리 벡터(DV) 알고리즘
LS 알고리즘 | DV 알고리즘 |
네트워크 전체 인식 | 이웃한 라우터의 정보 인식 |
다익스트라 알고리즘 | 벨만-포드 알고리즘 |
링크 상태 정보만을 교환 | 이웃한 라우터와 라우팅 테이블 교환 |
이벤트 기반의 갱신 신호 교환 | 주기적으로 갱신 데이터를 교환 |
5.3 인터넷에서의 AS 내부 라우팅: OSPF
자율시스템: AS(Autonnomous System)
하나의 관리 집합 내의 라우터들의 집합을 의미
- inter-AS
- AS와 AS간의 관계를 의미
- IGBP(Interior Gateway Protocol)라고 불리기도 함
- OSPF, RIP, EIGRP가 inter-AS 라우팅 프로토콜에 해당
- intra-AS
- 하나의 AS 내의 라우터끼리 관계를 의미
개방형 최단 경로 우선 프로토콜: OSPF(Open Shortest Path First)
inter-AS 라우팅 프로토콜의 하나로, 특정 라우터에서 다른 라우터까지의 최단거리를 찾는 프로토콜
- 확장성에 굉장히 신경을 많이 썼다!
- link state 알고리즘을 사용한다.
- OSPF를 사용하는 라우터는 인접한 라우터만이 아니라 자율 시스템 내의 다른 모든 라우터에게 라우팅 정보를 브로드캐스트 한다.
- 링크의 가중치 설정 방법을 특정하지 않고, 주어진 링크 가중치들에 대해 최소 비용 경로를 결정하는 방법(프로토콜)만을 제공한다.
- TCP나 UDP 등의 상위 레이어 서비스를 사용하지 않고 직접 IP 프로토콜을 이용해서 메시지를 전달한다.
- 상위 계층 프로토콜 번호로는 OSPF를 의미하는 89를 가진다. 따라서 OSPF 프로토콜은 신뢰할 수 있는 메시지 전송과 링크 상태의 브로드캐스트와 같은 기능을 스스로 구현해야 한다.
- 링크 상태의 주기적인 갱신으로 링크 상태 알고리즘에 견고성을 더한다.
- 라우터는 링크 상태가 변경될 때마다 링크 상태 정보를 브로드캐스트 한다.
- 링크 상태가 변경되지 않았더라도 정기적으로 링크 상태를 브로드캐스트 한다.
OSPF에 구현된 몇 가지 개선 사항
- 보안
- 복수 동일 비용 경로
- 유니캐스트와 멀티캐스트 라우팅의 통합 지원
- 단일 AS 내에서의 계층 지원
5.4 인터넷 서비스 제공업자(ISP) 간의 라우팅: BGP
여러 AS들을 연결시켜주는 Inter-AS 라우팅 프로토콜
- 거리 벡터 라우팅과 같은 줄기에서 나왔다고 볼 수 있는 분산형 비동기식 프로토콜이다.
- 인터넷 AS 간 라우팅의 사실상 표준이다.
5.4.1 BGP의 역할
- BGP에서는 패킷이 특정한 목적지 주소를 향해서가 아니라 CIDR(Classless Inter-Domain Routing) 형식으로 표현된, 주소의 앞쪽 접두부(prefix)를 향해 포워딩된다.
- 라우터의 포워딩 테이블은 (x, I) 같은 형식의 엔트리들을 갖게 된다.
- x: 주소 접두부
- I: 라우터 인터페이스의 인터페이스 번호
- AS 간 라우팅 프로토콜로서 BGP는 각 라우터에게 다음과 같은 수단을 제공한다.
- 1. 이웃 AS로부터 도달 가능한 서브넷 접두부 정보를 얻는다.
- 2. 서브넷 주소 접두부로의 "가장 좋은" 경로를 결정한다.
5.4.2 BGP 경로 정보 알리기
- 각 AS에서 각각의 라우터들은 게이트웨이 라우터 또는 내부 라우터이다.
- 게이트웨이 라우터
- AS의 경계에 있는 라우터로서 다른 AS들에 있는 하나 또는 여러 개의 라우터와 직접 연결된다.
- 내부 라우터
- 자신의 AS 내에 있는 호스트 및 라우터와만 연결된다.
eBGP와 iBGP
- 외부 BGP(external BGP, eBGP)
- 두 개의 AS에 걸친 BGP 연결
- 내부 BGP(internal BGP, iBGP)
- 같은 AS 내의 라우터 간 BGP 연결
보통 서로 다른 AS에 속하는 게이트웨이 라우터들을 직접 연결하는 링크에는 eBGP 연결이 존재한다.
아래 그림에서 게이트웨이 라우터 1c와 2a 간에, 그리고 2c와 3a 간에 eBGP 연결이 존재한다.
🟢 iBGP 연결은 물리적인 링크와 항상 일치하지는 않는다.
5.4.3 최고의 경로 설정
라우터가 BGP 연결을 통해 주소 접두부를 알릴 때 몇몇 BGP 속성(attributes)을 함께 포함한다.
BGP 용어로서의 경로(route)는 주소 접두부와 그 속성을 함께 말한다.
중요한 속성 두 가지는 AS-PATH와 NEXT-HOP이다.
AS-PATH
- 알림 메시지가 통과하는 AS들의 리스트를 담는다.
- AS-PATH 값을 생성하기 위해서 접두부가 어떤 AS에 전달되었을 때 그 AS는 자신의 ASN을 AS-PATH 내 현재 리스트에 추가한다.
NEXT-HOP
- AS 간 프로토콜과 AS 내부 라우팅 프로토콜 사이에 매우 중요한 연결을 제공하는 NEXT-HOP 속성은 미묘하지만 중요한 활용도를 갖는다.
- NEXT-HOP은 AS-PATH를 시작하는 라우터 인터페이스의 IP 주소이다.
아래 그림을 통해 NEXT-HOP에 대해 살펴보자
- AS1에서 AS2를 통과하여 x로 가는 "AS2 AS3 x" 경로의 NEXT-HOP 속성은
- 라우터 2a의 왼쪽 인터페이스의 IP 주소이다.
- AS1에서 AS2를 우회하여 X로 가는 "AS3 x" 경로의 NEXT-HOP 속성은
- 라우터 3d의 맨 왼쪽 인터페이스의 IP 주소이다.
정리하면, AS1의 각 라우터는 접두부 X로 가는 두 개의 BGP 경로를 알게 된다.
라우터 2a의 왼쪽 인터페이스의 IP 주소; AS2 AS3; x
라우터 3d의 맨 왼쪽 인터페이스의 IP 주소; AS3; x
✅ 여기서 각 BGP 경로는 NEXT-HOP, AS-PATH, 목적지 주소 접두부, 이렇게 세 개의 구성요소의 리스트로 기술된다.
뜨거운감자 라우팅(Hot Potato Routing)
각각의 시작점인 NEXT-HOP 라우터까지의 경로 비용이 최소가 되는 경로가 선택된다.
- 감자가 너무 뜨겁기 때문에 여러분은 그것을 되도록 빨리 다른 사람(다른 AS)에게 건네주기를 원한다.
- 그러므로 뜨거운감자 라우팅은 전체 경로 중에서 자기 AS 외부에서 얼마의 비용이 들지는 신경쓰지 않고 오로지 자신의 AS 내부비용만 줄이려는 이기적인 알고리즘이다.
- 뜨거운감자 라우팅을 사용하면 한 AS 내 두 개의 라우터가 동일한 목적지 주소에 대해 서로 다른 AS 경로를 선택할 수도 있음을 알아야 한다.
경로 선택 알고리즘
실제로 BGP는 뜨거운감자 라우팅보다는 더 복잡한 알고리즘을 사용하지만, 여전히 뜨거운감자 라우팅을 포함하고 있다.
- 목적지 주소의 접두부가 주어지면, 지금까지 라우터가 알아낸 해당 목적지까지의 모든 경로가 BGP의 경로 선택 알고리즘에 입력으로 주어진다.
- 경로가 하나뿐이면 당연히 그 경로가 선택되겠지만, 하나의 목적지에 대해 두 개 이상의 경로가 존재한다면 BGP는 하나의 경로가 남을 때까지 제거 규칙을 계속 수행한다.
과정을 거치면 짧은 AS-PATH를 가진 경로를 먼저 찾기 때문에 결과적으로 종단 간 지연시간이 줄어들 것이다.
5.4.4 IP 애니캐스트(anycast)
5.4.5 라우팅 정책
5.4.6 조각 맞추기: 인터넷에서의 존재 획득
5.5 소프트웨어 정의 네트워크(SDN) 제어 평면
SDN
- SW를 통해 네트워크 리소스를 가상화하고 추상화하는 네트워크 인프라에 대한 접근방식을 의미한다.
- SW 애플리케이션과 API를 이용하여 네트워크를 프로그래밍하고 중앙에서 전체 네트워크를 제어하고 관리하는 것이다.
- 핵심은 네트워크 장비의 Control Plane(제어부)와 Data Plane(전송부)의 분리이다.
5.6 인터넷 제어 메시지 프로토콜(ICMP)
ICMP
- 주로 오류 보고를 위해 사용된다.
- 예) HTTP 연결을 수행할 떄 "목적지 네트워크에 도달할 수 없음(Destination network unreachable)" 같은 오류 메시지가 ICMP가 만든 것이다.
5.7 네트워크 관리와 SNMP
네트워크 관리
- 애플리케이션, 장치, 시스템을 이용하여 관리하고 감독하여 컴퓨터 네트워크의 리소스를 보호하는 시스템이다.
SNMP
- IP 기반 네트워크 상의 각 호스트로부터 정기적으로 여러 관리 정보를 자동으로 수집하거나 실시간으로 상태를 모니터링 및 설정할 수 있는 서비스로 SNMP는 프로토콜이다.
'CS > 컴퓨터네트워크' 카테고리의 다른 글
OSI 7 계층과 TCP/IP 4계층을 비교 설명 및 각 층의 프로토콜에 대해 말씀해주세요. (0) | 2023.07.05 |
---|---|
[Computer Network] 6.1~6.3 (0) | 2022.12.11 |
[Computer Network] 4.3 인터넷 프로토콜(IP): IPv6, 4.4 일반적인 포워딩 및 소프트웨어 기반 네트워크(SDN) (0) | 2022.11.17 |
[Computer Network] 4.3 인터넷 프로토콜(IP): IPv4, 주소 지정 (0) | 2022.11.11 |
[Computer Network] 4.1 네트워크 계층 개요, 4.2 라우터 내부에는 무엇이 있을까? (0) | 2022.11.08 |