득이공간
[컴퓨터 네트워크] 5장. Network Layer: Control Plane 본문
해당 게시물은 김정근 교수님의 '컴퓨터 네트워크' 강의를 수강하며
학습한 내용을 개인적으로 정리한 글입니다.
📌 목차 - 5장. Network Layer: Control Plane
5-1. Introduction
5-2. Routing protocols
5-3. Intra-ISP routing: OSPF
5-4. Routing among ISPs: BGP
5-5. SDN control plane
📌 5-1. Introduction
* Network-layer functions
- forwarding: data plane
- routing: control plane
- per-router control (traditional)
- logically centralized control (software defined networking)
* Per-router control plane
- 각 라우터마다 routing agent가 있고 각 agent에는 routing algorithm이 구현되어있다.
- 각 routing agent는 forwarding table의 콘텐츠를 기입한다.
- 서로 다른 routing agent끼리 연결되어있고 정보를 주고 받는다. = routing protocol
* Software-Defined Networking (SDN) control plane
- remote controller가 forwarding table을 계산하고 각 라우터에 전송한다.
* Routing protocol
- 출발지에서 목적지까지 "good path"(좋은 경로)를 결정하는게 목적이다.
- path: 출발지에서 목적지까지 거치는 라우터의 순서
- good: "최소 비용" (=> 가장 빠른 속도, 최소 혼잡 내포)
* Graph abstraction: link costs
- graph: G = (N, E)
- N: set of routers
- E: set of links
- Cab: cost of direct link connecting a and b
- cost defined by network operator:
- could always by network operator
- inversely related to bandwidth
- inversely related to congestion
* Network Topology
- 네트워크(각 노드와 노드 사이의) 연결관계
- Bus Topology
- Star Topology: 각 노드와 1대1 연결된 하나의 공유기가 존재한다.
- Mesh Topology: 각 노드가 난잡하게 연결되어있다.
* Routing algorithm classification
- global: "link state" algorithms
- decentralized: "distance vector" algorithms
- static: routes change slowly
- dynamic: routes change more quickly
📌 5-2. Routing protocols
* Routing Protocols
- link state: dijkstar
- distance vector: dynamic programming - Bellman-Ford
* Dijkstra's link-state routing algorithm
- centralized: network topology, link costs known to all nodes
- Cxy: cost of direct link connecting x and y
- D(v): 현재 나로부터 목적지 v까지 가는데 드는 최소 비용
- p(v): 목적지 v 바로 직전 노드, predecessor
- N': 최소 비용 경로로 알려진 노드 집합
- least-cost-path tree의 결과로 forwarding table을 만든다.
* Distance vector algorithm
- Bellman-Ford equation (dynamic programming)
Dx(y) = minv{ Cxv + Dv(y) }
- 각 노드의 진행
1. 주변 노드로부터 distance vector 값을 기다린다.
2. 받은 dv 값으로부터 자신의 distance vector 값을 재계산한다.
3. 다시 주변(바로 직결된 이웃만) 노드로 distance vector를 알린다.
- iterative, asynchronous
- distributed, self-stopping
* Distance vector: link cost changes
- 링크의 비용값이 실시간으로 변할 수 있다.
- "good news travels fast": 링크 비용이 큰값에서 작은값으로 업데이트 되는 경우
- "bad news travels slow"(count-to-infinity problem): 링크 비용이 작은값에서 큰값으로 업데이트 되는 경우 => 해결방안: "poisoned reverse"
* LS & DV algorithm
- message complexity
- LS: n routers, O(n^2) message sent
- DV: LS보다 무게감, 양이 많을 수밖에 없다.
- speed of convergence
- LS: O(n^2) algorithm, O(n^2) message
- DV: 반복적인 알고리즘, LS 보다는 시간이 길고 count-to-infinity problem 등의 다양한 상황이 존재한다.
- robustness
- LS: 라우터가 잘못된 정보를 전달할 가능성이 있다.
- DV: 소문에 의존하기 때문에 LS보다 매우 취약하다.
📌 5-3. Intra-ISP routing: OSPF
* Making routing scalable
- scale: 수십억개의 라우터가 존재하기 때문에 이에 대한 테이블 구성, LS, DV 계산은 불가능하다.
- administrative autonomy: 네트워크에는 각 영역이 존재한다.
- 위의 두 가지 문제로 Dijkstra's algorithm을 사용하기 어렵다.
* Internet approach to scalable routing
- AS (Autonomous systems): 지역의 라우터들을 하나의 AS로 구성하고 라우팅 알고리즘을 고안했다.
- intra-AS ("intra-domain"): 같은 AS 내에서는 서로 같은 라우팅 프로토콜을 가진다.
- inter-AS ("inter-domain"): AS와 AS 간의 라우팅으로, 둘 사이에서 라우팅을 담당하는 gateway가 존재한다.
* Inter-AS routing
- AS 내에서 어느 라우터로 나가면 어느 AS로 가는지 정보를 가지고 있는다.
* Intra-AS routing
- RIP: Routing Information Protocol // DV 기반
- EIGRP: Enhanced Interior Gateway Routing Protocol // DV 기반
- OSPF: Open Shortest Path First // LS 기반
* OSPF routing
- "open": publicly available
- classic link-state
- 각 라우터에게 뿌려준다.
- 다양한 가치를 기준으로 비용을 산정할 수 있다. ex. bandwidth, delay
- 각 라우터는 모든 topology를 갖고 있어서, 계산 후에 forwarding table을 갖는다.
* Hierarchical OSPF
- two-level hierarchy: 하나의 AS 안에 local area, backbone가 존재
- 각 영역 내에서 intra routing을 진행한다.
- backbone 안의 boundary router가 inter routing을 담당한다.
📌 5-4. Routing among ISPs: BGP
* Internet inter-AS routing: BGP
- BGP(Border Gateway Protocol): de facto(사실상의) 유일한 inter-domain routing protool 표준이다.
- BGP provides each AS a means to:
- eBGP: AS 바깥의 AS와 라우팅 정보를 교환한다.
- iBGP: AS 내부의 라우터에 정보를 뿌린다.
- AS마다 이해관계가 다르기 때문에 꼭 최소비용 경로를 우선시하지는 않는다. (성능만 가지고 최고의 경로를 결정하지 않는다.)
* eBGP, iBGP connections
- 각 AS 내에서 gateway 라우터들이 eBGP, iBGP를 동시에 수행한다.
* BGP basics
- BGP session: TCP connection 기반으로 메시지를 주고받는다.
- 각 AS 내의 서브넷 존재를 서로 다른 AS 들에게 뿌려준다. ex. BGP advertisement: AS3, X (AS3 내에 X가 존재한다.)
* Path attributes and BGP routes
- BGP advertised route: prefix + attributes
- prefix: 목적지 정보(네트워크 주소)
- two important attributes
- AS-PATH: prefix가 거쳐온 경로정보
- NEXT-HOP: AS-PATH를 시작하는 라우터 인터페이스의 IP 주소
- policy-based routing
- 정책에 의해서 목적지에 대한 경로정보를 수신할지 말지 결정할 수 있다.
- 정책에 의해서 받은 정보를 다른 AS로 뿌릴지 말지 결정할 수 있다.
* BGP path advertisement
- 정책에 의해서 다중 경로중에 좋은 것 하나를 gateway가 선택한다.
* Why different Intra-, Inter-AS routing?
- policy
- inter-AS: 각 AS 간의 이해관계가 다르기 때문에 비기술적인 요인들이 라우팅에 개입할 수 있다.
- intra-AS: single admin
- scale
- 네트워크의 크기 차이가 있다.
- performance
- inter-AS: 성능보다 policy가 더 중요하다.
- intra-AS: 성능에 집중할 수 있다.
* Hot potato routing
- 다른 AS의 네트워크로 가는 두 가지의 경로가 있다면, AS 내부 비용(OSPF)만 고려해서 이동하도록 한다. (무지성)
* BGP: achieving policy via advertisements
- 경로정보를 받아도 provider network는 AS와 연관된 customer network에게만 전달한다.
- customer network는 경로정보를 받아도 버리면 된다.
* BGP routing 결정 순위
1. local preference value attribute: policy decision
2. shortest AS-PATH
3. closest NEXT-HOP router: hot potato routing
4. additional criteria(알아서 하기)
📌 5-5. SDN control plane
* Software defined networking (SDN) control plane
- remote controller computers, installs flow tables(forwarding tables) in routers
- 이전에는 분산적인 형태였다면, 중앙에서 모든 라우터의 정보를 알고 계산하는 것이 훨씬 효율성이 좋다.
* SDN analogy: mainframe to PC revolution
- 예전에는 pc 한 제품의 application, operating system, hardware를 모두 한 곳에서 만들었다.
- 요즘 pc는 app, os, hardware를 모두 따로따로 오픈된 시장에서 가져온다. (종류가 다양해지고 기술 발전이 이뤄졌다.)
- SDN도 마찬가지로 이런 형태의 변화를 꿈꾼다. net app, net os, net hardware로 쪼개지는 혁신
* Traffic engineering: difficult with traditional routing
- SDN이 아니라면 라우팅을 우리가 원하는 경로로 하려면 링크 비용을 바꾸는 수밖에 없다.
- load balancing (부하 분배)를 하려면 기존의 방식으로는 어렵다.
- 기존의 방식으로는 동일한 출발지와 목적지에 대해서 두 가지 방식으로 라우팅하기 또한 어렵다.
* Software defined networking (SDN)
- 위와 같은 문제들에 대해 쉽게 구현이 가능하다.
1. generalized "flow-based" forwarding (e.g., OpenFlow)
2. control, data plane separation
3. control plane functions external to data-plane switches
4. programmable control application
* Data-plane switches: SDN-controlled switches // data-plane
- SDN controller와 network-control application에 의해 동작하게 된다. 이 때(flow table이 채워질 때) 사용되는 통신 프로토콜은 openflow
- 위에서 아래로 flow table을 채우는 메시지를 보낸다.
- 아래에서 위로 링크 상태 정보를 알려주는 메시지를 보낸다.
* SDN controller (network OS) // control-plane
- 필드에 있는 라우터, 링크, 네트워크 상태에 대한 정보를 유지한다.
- 필요한 application에게 정보들을 제공한다.
* network-control apps // control-plane
- API provided by SDN controller
- unbundled: 3rd party를 제공한다.
* Components of SDN controller
- 네트워크 상태 관리, application에게 interface 형태로 정보 제공, 위 계층과 아래 계층 사이의 통신
* OpenFlow protocol
- TCP 기반, controller와 switch 사이의 통신
- controll-to-switch messages
- switch-to-controller messages
* SDN: selected challanges
- scalable 문제가 있다.
- 특정 traffic에만 필요로하는 요구조건이 있을 때 이를 real-time, ultra-reliable, ultra-secure하게 flow table을 계산하고 전달해야 한다.
- Internet-scaling: beyond a single AS
- SDN critical in 5G cellular networks
'CS > 네트워크' 카테고리의 다른 글
[컴퓨터 네트워크] 7장. Wireless and Mobile Network (1) | 2024.02.26 |
---|---|
[컴퓨터 네트워크] 6장. Link Layer and Local Area Networks (0) | 2024.02.26 |
[컴퓨터 네트워크] 4장. Network Layer: Data Plane (1) | 2024.02.26 |
[컴퓨터 네트워크] 3장. Transport Layer (1) | 2024.02.26 |
[컴퓨터 네트워크] 2장. Application Layer (1) | 2024.02.26 |