Network-layer Function
Forwarding - Data plane
- 라우터의 Input에서 올바른 라우터의 output으로 패킷을 이동하는것.
Routing - Control plane
Control plane
1. Per-Router control - Oldschool
- router들끼리 상호작용해서 forwarding table을 만든다.
2. Locically centralized control / Software Defined Networking
- 원격 서버에서 라우터에 라우팅 테이블을 설치한다.
Link State Broadcast
- 아래 과정에 앞서 각각의 라우터가 자신과 직접 연결된 다른 라우터들의 정보를 패킷으로 만들어 모든 라우터에 broadcast 한다.
- 네트워크의 모든 라우터에 보내진 않고, 자신이 속한 network ID 내부의 라우터들에게만 보통 보낸다.
Routing Protocol
- 네트워크 라우터 사이로 보내는 Host에서 받는 Host로의 최적의 경로를 정하는것.
Path / 경로
- 초기 송신 Host에서 최종 수신 Host까지 패킷이 거쳐가는 라우터들의 연속
중점적인 요소
- Cost Effective
- Fast
- Least Congestion
라우팅 알고리즘
Link state ( Dijikstra )
ca,b : a와 b를 직접 연결하는 비용
- 비용은 네트워크 관리자에 의해 지정되며, 대역폭 혹은 혼잡 상태에 의해 결정된다.
- 중앙화 : 네트워크 토폴로지, 모든 노드는 링크의 비용을 알고 있다.
- "Link state broadcast" 를 통해 이루어짐
- 모든 노드가 같은 정보를 가진다.
그래프 예시
u에서 시작하는 최소비용경로 트리
u에 있는 라우팅 테이블
Oscillations possible < 진동가능성 > 문제
- 링크 비용이 바뀌면 최단경로로 패킷이 몰리게 된다.
- 패킷이 몰린 쪽에 congestion이 발생해 링크 비용이 상승한다.
- 최단경로가 또 바뀐다
- 또 그쪽으로 패킷이 몰려 congestion이 생긴다
- 반복
Distance vector
- 분산된 구조로 물리적으로 연결된 이웃들의 정보만을 가지고 있다.
- 반복적인 연산을 통해 이웃 이외의 정보를 알게 됨, 전체적 정보는 벨만 포드 알고리즘을 사용한다.
Dx(y)가 x에서 y로 가는 최소비용 거리의 비용일때
Dx(y)=minv(cx,v+Dv(y))
- x에서 y로 가는 비용은 x에서 v로 가는 거리와 v에서 y로 가는 거리의 합 중 최솟값과 같다
- v는 x와 이웃한 노드
link cost change for distance vector
- Poisoned Reverse
- Z가 X로 가는 정보를 Y로 부터 받았기 때문에 Z가 다시 Y 에게 X로 가는 정보를 줄 필요가 없다.
Z가 Y에게 자신의 라우팅 정보를 전달할 때는 X로 갈 수 없다고 알려준다. (독을 칠해놓는다.)`
- Split Horizon
- Z가 Y에게 자신의 라우팅 정보를 전달할 때 X 정보를 없애고 보낸다.
Y가 X로 가는 길을 Z에게 알려줬기 때문에 어차피 Y는 X로 가는 길을 알고 있기 때문이다.
- Triggered update
- Y가 X로 가는 길이 끊겼다는 사실을 Z에게 알려주면, Z도 Y를 통해 X로 가는 길이 없음을 알게된다.
Intra-ISP 라우팅 / OSPF
Scalability
- 망의 규모가 커졌을때를 대비한 확장성
- 모든 라우터가 LS 혹은 DV로 통일되어 있을시,
LS라면 모든 link 정보를 수집해야 해 시간과 오버헤드가 크고
DV로 통일할 경우 모든 라우팅 테이블의 정보를 주고 받으며 저장할수 없다.
실제 사용법
Administrative autonomy
- 인터넷을 네트워크의 네트워크로 만들고, 각 네트워크 관리자가 고유의 네트워크 영역 ( Autonomous System / AS ) 의 라우팅 컨트롤
- AS는 도메인으로도 불린다.
Autonomous System
- AS를 구역으로 나누어 그 안에 라우터를 포함한다.
Intra-AS
- 동일 AS 내에서 작동하는 라우팅 방법
- AS내 모든 라우터들은 같은 프로토콜로 동작해야 한다.
- Gateway router : 각 AS의 가장자리에서 다른 AS의 라우터로 연결되는 link를 가지는 라우터.
- DV
- 30초마다 RT를 서로 교환 > count-to-infinity 유발 > 요즘 사용하지 않음
EIGRP : cisco 독점기술, DV
OSPF : Open Shortest Path First
- LS로 동작한다.
- 전체 토폴로지를 그리고 라우팅 테이블을 만듦
- 다익스크라 알고리즘 사용해 포워팅 테이블을 계산한다.
- 각 라우터들은 전체 AS 내의 다른 라우터들에게 IP를 사용해 OSPF link-state 정보 전달
- 여러 link cost가 존재할수 있다.
- Hierarchical OSPF
- 네트워크가 커서 계층구조로 나누어 OSPF를 적용하는것
- area / backbone 내에서만 link state전달됨
- 한 area에서 외부로 향하는 데이터그램은 area border router로 전달된다.
- 한 area내 정보를 요약해 다른 area로 전달한다.
- backbone router / boundary router를 거쳐 다른 area의 라우터로 전달된다.
Inter-AS
- AS간의 라우팅 방법
- gateway들 끼리 일어난다.
Routing among ISP : BGP
Border gateway Protocol
- 서브넷이 자신의 존재를 알리고, 인터넷의 다른 부분들에게 도달 가능한 목적지들을 알려준다.
- eBGP
- 이웃하는 AS로부터 접근가능한 서브넷의 정보를 얻는다.
- iBGP
- 접근 가능 관련 정보를 모든 내부 라우터에게 전달한다.
- Gateway router는 eBGP와 iBGP 둘 다 동작하게 된다.
Intra vs Inter
policy
- inter-AS : 관리자는 트래픽이 어떻게 라우팅되고, 누가 네트워크로 라우트 시켜주는지를 제어한다.
- intra-AS : 하나의 관리자
Scale
- 계층적인 라우팅은 테이블의 사이즈를 줄여주고, 갱신 트래픽을 줄여준다.
- intra-AS : 퍼포먼스에 집중할 수 있다.
- inter-AS : 정책이 퍼포먼스를 결정한다.
SDN Control plane
- 각 라우터 및 모든 라우터의 개별 라우팅 구성요소는 컴퓨터 포워딩 테이블가 상호작용한다.
- Remote controller가 라우터들 내에 포워딩 테이블을 계산 및 설치한다
사용 이유
더 쉬운 네트워크의 관리
- 라우터의 잘못된 구성 피하고 트래픽 흐름을 더 유연하게 대처한다.
Table-based forwarding / OpenFlow API 가 라우터 프로그래밍 가능
Control plane 의 Open implementation 제공
- 독자적으로 라우팅 알고리즘 개발하는것보다 빠르게 진화한다.
장점
- SDN을 이용시 가능한 것들
- 경로가 2개 이상일때, 유연하게 경로를 지정하는것
- 여러 경로로 트래픽을 나누어 보내는것
- 기존의 경우 새로운 라우팅 알고리즘이 필요하다.
SDN 의 구조
OPENFLOW : Table-based switch control 위한 API : Controller와 소통하기 위한 프로토콜.
Data-plane switch
- 하드웨어에 Generalized data-plane forwarding 구현
- Controller의 감독 하에 forwarding/flow table이 계산되고 설치된다.
SDN Controller
- Network OS로, Application이 공통적으로 사용할 기능을 관리한다.
- Network State Information을 유지한다.
- Northbound API : Network-control application과 상호작용
- Southbound API : network switch와 상호작용
- 성능 / 확장성 / 실패-관용 / 견고성을 위해 분산 시스템에 구현한다.
Network-Control App
- Low-level service와 SDN Controller가 제공하는 API 통해 Control function을 구현한다.
SDN Controller Structure
- 상단 : routing / access control / load balance 와 소통 위한 추상화 API 레이어
- 중단 : 분산 데이터베이스로 네트워크 링크, 스위치, 서비스의 상태를 관리한다.
- 하단 : SDN Controller과 Switch간 통신, OpenFlow / SNMP 등을 사용한다.
Openflow 프로토콜
- 컨트롤러와 스위치 사이에서 작동
- TCP를 이용해 메시지를 교환한다.
- 메시지 종류
- 컨트롤러 > 스위치
- 스위치 > 컨트롤러 ( 비동기적 )
- 동기적 신호 전달
ICMP
- 특정 포맷의 메시지를 만들고, 상대에게 전달하기 위해 IP 프로토콜을 사용함
특징
- network-layer의 정보를 주고받기 위해 host-router 간에 사용한다.
- error reporting : 목적지에 제대로 전달되지 않을시 송신측에 이유를 전달한다.
- echo request
- ICMP message는 error을 유발한 IP datagram의 앞에 8byte를 추가해서 code, type을 포함시킨다.
Traceroute와 ICMP
- 송신지에서 수신지로 UDP 패킷을 보내는데, 처음 보낼때는 TTL을 1로, 다음은 하나씩 늘려가며 보낸다.
- n번째로 보낸 데이터그램은 n번째 라우터까지 전달된다, n번째 라우터에서 TTL이 0이 되기에 이를 버리고 ICMP 메시지를 송신지에 보낸다.
- ICMP 메시지는 라우터의 이름 / IP 주소를 포함할수 있다.
- ICMP 메시지가 송신지에 도착시 RTT를 기록한다.
이외 용도
- Ping
- Route 찾기 : 네트워크 내 라우터 식별
- Traceroute : 경로 찾기
Network management
Managing server
- 네트워크 장비를 감시 / 설정 / 관리 한다.
Managed device
- 관리 가능하고 설정 변경 가능한 HW/SW 컴포넌트로 구성된 장치
Network management protocol
- Managing server와 Managed device가 정보를 주고 받기 위한 프로토콜
- Managing server : 디바이스 관리/설정 및 질의
- Device : Managing server에게 데이터와 이벤트 전송
Data
- 기기 상태, 설정 데이터, 작동 데이터, 기기 통계
Network Management 접근법
CLI
- SNMP를 이용해 기기 데이터 (MIB) 를 질의 및 설정한다.
- server > agent 요청, agent > server 응답 혹은 agent > server로 trap message를 보내는 방식으로 작동
- 각각의 네트워크 장비에 저장된 MIB를 빼오거나 관리한다.
MIB
- 기기의 MIB 모듈에 모아진다.
- Structure of Management Information ( SMI ) 형식으로 작성된다.
NETCONF / YANG
NETCONF : SNMP의 단점 보완. NETCONF의 문법은 YANG이 정의
- actions : retrieve, set, modify, activate conf
- operations
- : 설정값
- : 설정값, 데이터
- ,
- : SNMP의 TRAP과 유사
- atomic-actions
- RPC
- YANG : NETCONF와 함께 쓰이는 데이터 모델링 언어