5.1 개요
제어평면: 네트워크 전체를 아우르는 구성요소, 데이터그램이 송신 호스트~목적지까지 경로상의 라우터들 간에
어떻게 전달돼야 하는지 뿐만 아니라 네트워크 계층 구성요소들과 서비스들을 어떻게 설정하고 관리할지 제어.
(데이터 평면: 입력링크에서 출력 링크로 데이터 그램 전달)
최소 비용경로 - 라우팅 알고리즘 OSPF(단일 네트워크) BGP(모든 네트워크)
원격 컨트롤러 서비스(라우터의 전달기능 요소와 분리된)에서 제어평면 기능을 구현.
IP 네트워크 관리의 기본 요소 - ICMP SNMP
등등을 다룬다.
목적지 기반 포워딩일 때 포워딩 테이블, 일반화된 포워딩일 때 플로우 테이블을 사용하여
데이터 평면과 제어 평면을 연결하였다는 것을 4장에서 다뤘다.
라우터별 제어: 라우팅 알고리즘이 각각의 라우터에서 동작함. 개별 라우터에서 자신의 포워딩 테이블을
계산하여 스스로 포워딩 & 라우팅을 함.
논리적 중앙 집중 제어: 논리적 집중된 컨트롤러가 포워딩 테이블을 작성하고, 이를 모든 개별 라우터가
사용할 수 있도록 배포한다. 각 라우터는 일반화된 'match and action' 추상화를 통해 다양한 기능을 수행.
- 컨트롤러는 각 라우터의 제어 에이전트(CA)와 상호작용하여 라우터의 플로우 테이블을 구성, 관리하고
CA는 컨트롤러부터 통신하고 명령을 수행하는 최소한의 기능만 가진다.
- 구글, 마이크로소프트, 차이나 텔레콤 등도 SDN이라는 논리적으로 중앙 집중된 컨트롤러를 사용하여
글로벌 광역 네트워크 라우터의 라우팅과 포워딩을 관리
5.2 라우팅 알고리즘
목표: 송신~수신자까지 라우터의 초기비용 경로를 설정
라우터별 제어 방식이든 논리적 중앙 집중 제어 방식이든 상관없이 라우팅 알고리즘은 중요.
- 보통 그래프 G= (N,E)를 통해 나타냄. 각 Edge는 링크의 물리적 거리, 속도, 금전적 비용 등을 반영하여
총 비용을 나타내는 값을 가짐. 양방향으로 서로 다른 비용을 가지는 방향성 링크를 다룰 것이며
Edge(x,y)가 집합 E에 속하면 노드 y와 x는 서로 이웃이다.
중앙 집중형 라우팅 알고리즘: 네트워크 전체에 대한 완전한 정보를 가지고 계산
전체 상태 정보를 가지는 알고리즘을 링크상태(LS) 알고리즘이라고 한다.
분산 라우팅 알고리즘: 라우터들에 의해 반복적이고 분산된 방식으로 최소 비용경로가 계산된다.
각 노드는 자신에 직접 연결된 링크에 대한 비용 정보만 가지고 계산을 시작하여
각 노드가 네트워크 내 모든 다른 노드까지 비용의 추정값을 벡터 형태로 유지하기 때문에 거리 벡터(DV) 알고리즘
정적 라우팅 알고리즘: 사람이 개입(링크 비용을 수정 등..)하는 경우 경로가 느리게 변함.
동적 라우팅 알고리즘: 네트워크 트래픽 부하나 토폴로지 변화에 따라 직접적으로 응답하거나,
주기적으로 변화하는 방식으로 수행. 다만 roop나 경로진동(oscilation) 문제에 취약
부하 민감 알고리즘: 링크 비용은 해당 링크의 현재 혼잡 수준을 나타내기 위해 동적으로 변함.
혼잡한 링크에 높은 비용을 주면 알아서 알고리즘이 그 링크를 우회한다.
부하 민감하지 않은 알고리즘: 오늘날 인터넷 알고리즘(RIP, OSPF, BGP) 등은 링크 비용이 현재 혼잡 반영x
============================================================
링크 상태(LS) 라우팅 알고리즘
모든 링크 비용이 알려져 있어서 입력값으로 사용됨.
각 노드가 자신과 연결된 링크의 식별자와 비용을 포함하는 링크 상태 패킷을 모든 다른 노드로 브로드캐스팅
다익스트라 알고리즘: 하나의 노드에서 네트워크 내 다른 모든 노드로의 최소 비용 경로를 계산.
반복적이고, k번째 반복 이후에는 k개의 목적지 노드에 대해 최소 비용 경로를 알게 됨.
D(v): 현재 반복 시점에서 목적지 v까지의 최소 비용 경로 비용
p(v): 출발지~v까지 현재 최소 비용 경로에서 v의 직전노드(v의 이웃노드)
N': 노드의 집합. 출발지~v까지의 최소 비용 경로가 명확하다면 v는 N'에 포함됨.
D(v) = min(D(v),D(w)+c(w,v)
계산 복잡도: n(n+1)/2 #최악의 경우 O(n^2) #heap을 사용하면 계산 복잡도 감소 가능
문제점: 링크가 양방향일 경우. 전달되는 부하가 같은 경우에만 c(u,v)와 c(v,u)가 같은데,
만약 두 값이 다르다면 진동 문제 발생
*진동 문제 (ocillations possible) - 알고리즘이 수행될 때마다 최적인 경로의 방향이 바뀌게 되는 상황
해결: 모든 라우터가 동시에는 링크 상태 알고리즘을 실행하지 못하도록 강제한다.
라우터들이 동일한 주기 간격으로 텀을 두고 알고리즘을 수행하게 하여 각 노드에서의 알고리즘 실행 시간을
다르게 하여 해결할 수 있다. 다만 인터넷 라우터들이 결국 자기들끼리 동기를 맞추게 되는 동기화 현상이 있기에,
각 노드가 링크 상태 정보를 송신하는 시간을 랜덤하게 설정한다.
거리벡터(DV) 라우팅 알고리즘
반복적이고 비동기적이면 분산적.
분산: 각 노드는 직접 연결된 이웃으로부터 정보를 받고 계산하고, 그 결과를 이웃들에게 배포
반복: 이웃끼리 더 이상 교환이 필요없을 때까지 프로세스를 지속
비동기적: 모든 노드가 서로 정확히 맞물려 동작할 필요 x
벨만포드식: dx(y) = min( c(x,v) + dv(y) )
x에서 v까지 이동한 후 v에서 y까지의 최소 비용 경로를 선택.
벨만포드식을 통해 각 노드 포워딩 테이블의 엔트리를 얻는다.(x에서 y로 최소 비용 경로로 패킷을 보낼 때
x의 이웃 노드 중 v를 지나야한다면 x의 포워딩 테이블에 v가 저장되어야 함.)
거리벡터 알고리즘: 어떤 노드 x가 자신에게 직접 연결된 이웃 링크 중 하나의 비용이 변경된 사실을 알고나면
자신의 거리 벡터 추정값을 업데이트함.
노드 x가 이웃 w에게서 새로운 거리 벡터를 수신하여 거리 벡터가 변경된다면
이 업데이트 사항을 자신의 이웃들에게 보내고, 이웃들도 그 즉시 자신의 거리 벡터를 수정한다.
이 절차가 비동기적으로 이루어지더라도 교환이 계속되고 나면 결국 실제 최소 비용 경로의 비용으로 수렴한다.
링크비용 변경과 링크고장
링크 비용 감소시엔 문제가 없는데, 증가시엔 라우팅 루프 발생가능.
라우팅 루프: 벨만포드식을 적용했지만 업데이트 되기전의 정보를 최선이라고 여겨 min에 적용해버려
y가 z로 경로를 설정했는데 z는 y로 경로를 설정하는 루프에 같히게 되는 것
무한 계수 문제: 새로운 거리 벡터를 수신한 후 이웃노드에게 업데이트 사항을 전파했는데
그 이웃에서도 새로운 거리 벡터를 갱신해서 해당 노드에게 돌려주고, 이를 다른 링크 비용보다 커질 때까지
반복하기 되는 문제.
SO 포이즌 리버스 추가
z가 y를 통해서 x로 가는 경로 설정을 했다면 z는 y에게 x까지의 거리가 무한대라고 알림.
= z는 y를 통과해서 x로 가는 동안은 이러한 선의의 거짓말을 계속함.
z가 y를 통해 x로 가기전까지는 y에서 z를 통해 x로 가는 경로를 시도하지 않음.
단, 포이즌 리버스도 세 개 이상의 노드를 포함한 루프는 감지할 수 없다.
링크상태 알고리즘 vs 거리 벡터 라우팅 알고리즘
DV는 이웃된 노드들과만 메시지를 교환하지만 자신으로부터 네트워크 내 모든 노드들로부터의 최소 비용 추정값을 제공
LS는 모든 노드들과 메시지를 브로드캐스팅으로 교환하지만 자신의 이웃 노드 링크 비용만 제공
메시지 복잡성
LS는 O(|N||E|) 개의 메시지가 필요하고 링크 비용이 변할 때마다 모든 노드에게 전달
DV는 링크 비용이 변하고 이 변한 링크 비용이 해당 링크에 연결된 어떤 노드의 최소 비용경로에 변화를 준 경우에만 전달.
수렴속도
LS는 O(|N|^2), DV는 천천히 수렴하고 수렴 중 라우팅 루프 또는 무한 계수문제 발생 가능
견고성
라우터 고장시 LS에서 라우터는 잘못된 비용 정보를 브로드캐스팅 할 수도 있다.
노드는 전송된 링크 상태 브로드캐스트를 변질시키거나 폐기할 수 있다.
각 노드가 자신의 포워딩 테이블만 계산하므로 알고리즘 경로 계산이 어느정도 분산되어 수행되기 때문에 견고성 O
DV에선 노드가 잘못된 최소 비용 경로를 모든 목적지에 알릴 수 있다.
이에 대해 목적지 라우터들이 오작동한 라우터에게 대규모 트래픽을 보내게 되어 인터넷 연결이 단절될 수 있다.
각 반복마다 한 노드의 거리 벡터 계산이 이웃에게 전달되는 방식은 한 노드의 잘못된 계산이 전체로 확산 가능..
5.3 인터넷에서의 AS 내부 라우팅: OSPF
모든 라우터가 동일한 라우팅 알고리즘을 수행하면 하나의 라우터를 다른 것과 구분할 수 없다.
확장: 라우터 수가 증가함에 따라 각 라우터가 모든 목적지로의 라우팅 정보를 저장하려면 메모리 낭비..
모든 라우터 사이의 연결상태와 링크 비용을 브로드캐스팅 하려면 오버헤드 발생..
관리 자치: ISP는 자신의 네트워크를 원하는대로 운용하거나 내부 구성을 외부에 감추곤 한다.
결국 자신의 네트워크를 외부에 연결하면서도 자신이 원하는 대로 내부를 관리하는 것이다.
이 두가지 문제를 라우터들을 자율 시스템(AS)으로 조직화하여 해결 가능하다.
각 AS는 동일한 관리 제어하에 있는 라우터의 그룹으로 구성됨.(보통 ISP 단위, 물론 한 ISP내에서 여러개의 AS 가능)
*이 각 AS들은 고유한 AS번호로 식별되고 IP주소처럼 ICANN의 지역 등록 기관에 의해 할당됨.
같은 AS안에 있는 라우터들은 동일한 라우팅 알고리즘을 사용하고 상대방에 대한 정보를 알고 있다.
자율 시스템 내부에서 동작하는 라우팅 알고리즘 = AS 내부 라우팅 프로토콜
개방형 최단 경로 우선(OSPF) 프로토콜
Open: 라우팅 프로토콜 명세가 공개적. 링크 상태 정보를 플러딩(flooding)하고 다익스트라 알고리즘 사용.
OSPF를 통해 각 라우터는 전체 AS에 대한 완벽한 지도(그래프)를 얻는다.
관리자는 모든 링크 비용을 1로 설정하여 최소 홉 라우팅을 하거나,
적은 대역폭을 가진 링크 사용을 억제하기 위해 링크 용량에 반비례한 링크 가중치를 부여한다.
OSPF는 링크의 가중치 설정방법이 아닌(이는 관리자가 함) 주어진 가중치에 대해 최소 비용 경로를 설정을 제공.
링크 상태 변경되거나 주기적으로 링크 상태를 브로드 캐스팅 -> 견고성을 보충
OSPF 메시지에 포함된 정보는 IP에 의해 전달되고 상위 계층 프로토콜 번호는 80
추가 개선 사항
보안: 인증을 통해 신뢰할 수 있는 라우터들만이 AS 내부의 OSPF에 참여할 수 있다.
단순인증 - 동일한 패스워드가 각 라우터에 설정되어 OSPF 패킷 보낼 때 패스워드를 담음
MD5 - 모든 라우터에 공유 비밀키를 설정. 라우터는 OSPF 패킷에 대해 비밀키를 첨부하여 MD5 해시 계산.
이 해시값을 패킷에 포함하고 수신자도 이를 인증. 재생 공격을 방지하기 위해 순서 번호가 MD5인증과 같이 사용됨.
복수 동일 비용 경로: 목적지에 대해 동일한 비용 경로 여러 개면 OSPF는 여러 경로를 허용함.
유니캐스트와 멀티캐스트 라우팅 통합지원: 기존 OSPF 브로드캐스트 매커니즘에 새로운 형태의 링크 상태 알림 추가
단일 AS 내에서의 계층 지원: AS를 계층적인 영역으로 나누어 각 영역은 같은 영역 내의 라우터들에게만
링크 상태를 브로드캐스팅. 단 그 영역 중 하나만이 backbone 영역으로 설정되어 AS 내 영역 간의 트래픽을 라우팅.
AS 내 영역 간 라우팅을 위해선 먼저 영역 경계 라우터로 패킷을 라우팅한 후 backbone을 통과하여 목적지 영역의
영역 경계 라우터로 라우팅한 후 최종 목적지로 라우팅.
5.4 인터넷 서비스 제공업자(ISP) 간의 라우팅: BGP
자율 시스템 간 라우팅 프로토콜은 여러 AS 사이에서 같은 프로토콜을 사용(BGP)
BGP: 인터넷에 있는 수 천 개의 ISP들을 연결하는 프로토콜
DV라우팅과 같은 줄기라도 볼 수 있는 분산형 비동기식 프로토콜
BGP 역할
목적지가 AS외부에 있는 경우. 패킷이 특정한 목적지 주소가 아닌 CIDR 형식으로 표시된, 주소의 prefix로 포워딩됨.
이 때 prefix는 서브넷이나 서브넷의 집합.
라우터의 포워딩테이블 형식: (x,I) = (주소 prefix, 라우터 인터페이스 번호)
1. 이웃 AS로부터 도달 가능한 서브넷 prefix 정보를 얻음: 각 서브넷이 자신의 존재를 인터넷에 알림.
2. 서브넷 주소 prefix로의 가장 좋은 경로를 결정: 라우터는 특정 주소 prefix를 향한 두 개 이상의 경로를 알 때
BGP의 경로 결정 프로시저를 수행.
BGP 경로 정보 알리기
게이트 라우터: AS 경계에 있는 라우터로 다른 AS내의 라우터와 연결되는 라우터.
BGP에서 라우터의 쌍들은 포트번호 179의 반영구적 TCP 연결을 통해 라우팅 정보를 교환.
이 TCP를 통해 BGP 메시지를 전송하는 연결을 BGP 연결이라 부름.
두 개의 AS에 걸친 BGP 연결은 외부 BGP(eBGP), 같은 AS 내의 라우터 연결은 내부 BGP(iBGP)
1. 게이트 라우터가 eBGP로 prefix x에 대한 도달 가능 정보 메시지를 받으면
2. 그 AS 내부의 모든 라우터에게 iBGP로 메시지를 전달하고
3. 또 그렇게 전달받은 게이트 라우터가 eBGP로 다음 AS에 넘겨주는 과정 반복
최고의 경로 설정하기
라우터가 BGP연결로 주소 prefix를 알릴 때 몇몇 BGP속성을 함께 포함함 // BGP 경로 = 주소 prefix + BGP 속성
주요 속성 두가지는 AS-PATH랑 NEXT-HOP
AS-PATH: 알림 메시지가 통과하는 AS들의 리스트. 어떤 AS에 prefix가 도착하면 그 AS는 자기의 ASN을
AS-PATH에 담는다. // 메시지의 루프를 방지하기 위해서도 사용
NEXT-HOP: AS-PATH를 시작하는 라우터 인터페이스의 IP주소 // AS1에 속하지 않는 라우터의 IP주소
AS2 AS3;x가 있으면 이 주소에 포함된 서브넷 AS2와 AS3이 AS1에 연결됨을 뜻한다.
뜨거운감자 라우팅
1. AS 간 프로토콜로부터 여러 게이트웨이를 통해 서브넷 x에 도달할 수 있음을 앎.
2. AS 내부 프로토콜로부터 각 게이트웨이까지의 최소 비용 경로 결정
3. 가장 적은 비용의 게이트웨이 선택
4. 포워딩 테이블로부터 최소비용 게이트웨이로의 인터페이스 I를 결정한 후 포워딩 테이블에 (x,I) 추가
- 경로 각각의 시작점인 NEXT-HOP 라우터들에 대해 최소 비용을 가진 AS 내부 경로를 찾기 위해
AS 내부 라우팅 정보를 조사한 후 가장 적은 비용을 가진 경로를 선택.
- 포워딩 테이블에 AS 외부의 목적지를 추가할 때, AS간 라우팅 프로토콜 + AS 내부 라우팅 프로토콜 모두 사용
- 자신의 AS 바깥에 있는 부분에 대한 비용은 신경쓰지 않고 최대한 신속하게 자신의 AS 밖으로 보내는 방식.
경로 선택 알고리즘
BGP 경로 선택 알고리즘에 지금까지 라우터가 알아낸 목적지까지의 경로가 입력되면,
BGP는 하나의 경로가 남을 때까지 다음의 제거 규칙을 계속 수행.
1. 지역선호도라는 속성이 경로에 할당되고 가장 높은 지역 선호값을 가진 경로가 선택됨.
2. 가장 높은 지역 선호값이 여러 경로면 이들 중 최단 AS-PATH를 가진 경로 선택
3. 지역선호도랑 AS-PATH 마저 같으면 뜨거운 감자 라우팅 수행
4. 아직도 하나보다 많은 경로 있으면 BGP 식별자를 사용하여 경로 선택
============================================================
IP 애니캐스트
BGP는 AS간 라우팅외에도 IP애니캐스트서비스 구현에 활용
1. 같은 컨텐츠를 지리적으로 분산된 여러 서버에 복제하고
2. 각 사용자들을 가장 가까운 서버의 콘텐츠로 접근하게 해줌
"가장 가까운"을 가능하게 해주기 위해 BGP의 경로 선택 알고리즘을 활용.
IP 애니캐스트 설정 단계에서 사업자가 자신의 서버 각각에 동일한 IP 주소를 할당하는데,
IP주소가 동일하더라도 사용자가 요청을 보내면 라우터는 BGP알고리즘이 정의한 "가장 가까운" 서버로 요청 전달
DNS가 IP 애니캐스트를 사용하여 DNS 루트 서버들중 가장 가까운 서버에 DNS 질의를 넘기는 방식을 사용중.
라우팅 정책
지역선호도 AS 라우팅 정책
서로 다른 두 제공자를 통해 네트워크의 다른 부분과 연결된 다중 홈 액세스 ISP가 있을 때, 이를 x라 하자.
x는 자기와 연결된 ISP들에게, 본인외에는 어떤 다른 목적지로도 경로가 없다고 알림으로서 액세스 역할을 함.
이를 통해 사용자와 제공자 사이의 라우팅 관계를 컨트롤 함.
또한, backbone ISP들은 자기를 통해 흐르는 트래픽은 해당 ISP의 고객 네트워크를 출발지로 하거나 목적지로 해야지,
다른 ISP 네트워크에 무임승차하지 않도록 하기 위해 경로를 제공 안하기도 한다.
5.5 소프트웨어 정의 네트워크(SDN) 제어 평면
SDN 장치들 간의 패킷 포워딩을 제어하는 네트워크 로직 & 이 장치 및 서비스의 설정과 관리 & SDN 제어평면
SDN 구조 네가지 특징
플로우 기반 포워딩: 전송 계층, 네트워크 계층, 링크 계층 헤더의 어떤 값을 기반으로도 패킷 포워딩 가능.
이 패킷 포워딩 규칙은 스위치의 플로우 테이블에 기록되며 SDN에서는 모든 네트워크 스위치들의
플로우 테이블 항목들을 계산하고 관리, 설치함.
데이터 평면과 제어평면 분리: 데이터 평면은 네트워크 스위치들로 구성되어 단순하게 자신들의 플로우 테이블 내용을
기반으로 수행됨. 제어 평면은 서버와 스위치들의 플로우 테이블을 결정하고 관리하는 소프트웨어로 이루어짐.
네트워크 제어 기능이 데이터 평면 스위치 외부에 존재: 전통적인 라우터와 달리 소프트웨어가 네트워크 스위치로부터
멀리 떨어진 별도의 서버에서 수행됨(제어 평면). 제어평면 = SDN 컨트롤러 + 네트워크 제어응용들의 집합
*컨트롤러는 '논리적' 단일 중앙 집중 서버이기 때문에 협업, 확장성, 높은 이용성을 고려하여 몇 개의 서버에 구현
프로그램이 가능한 네트워크: 제어 평면의 네트워크 제어 응용들의 집합을 통해 네트워크를 프로그램 가능.
SDN 컨트롤러가 제종하는 API를 이용하여 네트워크 장치들에 있는 데이터 평면을 제어
ex) SDN 컨트롤러가 가진 노드 및 링크 상태에 기반한 다익스트라 알고리즘으로 패킷 경로 결정
============================================================
플로우 테이블은 실제로 어디서 계산되는가?
이 테이블들은 SDN으로 제어되는 장치들에서 발생하는 사건에 대응하여 어떻게 업데이트 되는가?
여러 스위치들의 일관성 유지를 어떻게 하는가?
SDN 컨트롤러
통신 계층: SDN 컨트롤러와 제어받는 네트워크 장치들 사이의 통신(최하위)
컨트롤러가 장치에게 정보 전달 및 제어, 장치가 컨트롤러에게 관찰한 이벤트를 알림
south 바운드라고 알려진 컨트롤러 인터페이스를 넘나들며 통신. 프로토콜은 *오픈플로우 사용
*SDN 컨트롤러와 SDN으로 제어되는 스위치, 오플플로우 API를 구현하는 장치들 사이에서 동작하는 프로토콜
네트워크 전역 상태 관리 계층: SDN 제어 평면의 궁극적인 제어 결정(중간계층)
스위치들의 플로우 테이블 설정, 컨트롤러가 장치들에 대한 최신 정보를 알아야 함.
각 장치들의 플로우 테이블들 복사본들을 컨트롤러가 모아서 네트워크의 최신 전역 상태를 파악
네트워크 제어 응용 계층과의 인터페이스: north 바운드 인터페이스를 통해 네트워크 제어 응용들과 상호작용(최상위)
이 API는 네트워크 제어 응용들이 상태 관리 계층 내의 네트워크 상태 정보 & 플로우 테이블을 읽고 쓸 수 있게 함.
제어 응용들로부터 상태 변화 이벤트에 대한 알림을 받으면 적절한 조치를 취하는 API들 존재.
*컨트롤러가 분산된 서버 집합에 구현돼 있기 때문에, 컨트롤러 내부동작들의 의미(이벤트의 논리적 시간순서,
일관성, 합의 등)가 고려돼야 함.
라우터의 링크 상태에 변화가 생기면 모든 라우터의 소프트웨어를 바꿔야 했던 전형적인 라우터별 제어평면과 달리
SDN을 지원하는 ISP가 라우팅을 수정해주기 때문에 컨트롤러가 플로우 테이블을 변경하도록 해서 쉽게 대응 가능
5.6 인터넷 제어 메시지 프로토콜(ICMP)
호스트와 라우터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용하는 프로토콜
오류 보고/ HTTP 연결 때 "목적지 네트워크에 도달불가" 등의 메시지 전송 등
ICMP 메시지는 IP데이터그램에 담겨 전송되므로 IP단계의 바로 윗 단계라고 보면 됨.(같은 네트워크 계층)
(상위 계층 프로토콜이 ICMP라고 표시된 IP데이터 그램을 받으면 ICMP로 역다중화함.)
ICMP = 타입 + 코드필드 + 처음 메시지 생성하는 IP데이터그램 헤더 + 첫 8바이트(오류 발생 패킷 식별을 위해)
ping 프로그램 // 타입8, 코드0인 메시지를 호스트에게 보내면 호스트는 타입0 코드0인 ICMP 에코응답을 보냄.
출발지 억제 메시지 // 혼잡제어를 수행. 혼잡이 발생한 라우터에게 전송속도를 늦추라고 함
Traceroute 프로그램 // 출발지의 Traceroute가 목적지에 일련의 IP 데이터그램을 보내고,
이 데이터그램은 UDP 포트번호를 가진 UDP 세그먼트를 TTL이 1씩 커지게하여 운반.
출발지는 각 데이터그램에 대해 타이머를 작동시켜 n번째 데이터그램이 n번째 라우터에 도착하면
해당 라우터는 데이터그램의 TTL이 방금 만료되었음을 앎.
라우터는 데이터그램을 폐기하고 ICMP 경고 메시지에 자기 라우터 이름과 IP주소를 담아 출발지로 보냄.
출발지는 타이머로부터 RTT를, ICMP로부터 n번째 라우터의 이름과 주소를 획득하여 traceroute를 따냄.
5.7 네트워크 관리와 SNMP
네트워크 관리자가 사용하는 구조, 프로토콜, 정보 저장소를 다룸
네트워크 관리 프레임워크
관리 서버: 네트워크 운영센터(NOC)의 중앙 집중화된 네트워크 관리 스테이션에서 동작
네트워크 관리 정보의 수집, 처리 ,분석, 게시, 제어.
관리자가 네트워크 장치들과 상호작용하고 네트워크 동작을 제어하기 위한 작업을 시작함.
피관리 장치: 관리 대상 네트워크에 존재하는 장비들(호스트, 라우터, 스위치, 미들박스, 모뎀 등),
피관리 객체(피관리 내부의 실제 하드웨어 일부(네트워크 인터페이스 카드 등)),
하드웨어와 소프트웨어 요소에 대한 설정 매개변수(OSPF와 같은 AS 내부 라우팅 프로토콜 등) 등
MIB(Management Information Base): 피관리 객체들에 대한 정보 저장, 관리서버에서 MIB에 접근하여 정보 이용.
MIB 객체 = '호스트에서 수신하는 UDP 세그먼트 개수'와 같은 카운터,
'DNS 서버에서 실행되는 소프트웨어 버전'같은 설명정보, '라우팅 경로'와 같은 프로토콜 정보 등등
관련된 MIB 객체들끼리는 MIB 모듈로 모아서 관리.
네트워크 관리 에이전트: 각 피관리 장치가 가지는 것으로, 관리 서버와 통신하면서 관리서버의 명령과 제어에 따라
피관리 장치에 행동을 취하는 프로세스.
네트워크 관리 프로토콜: 관리서버와 피관리 장치 사이에서 동작하는, 관리 서버가 장치의 상태에 대해 질의하고
에이전트를 통해 행동을 취하도록 하는 프로토콜
*네트워크 관리 프로토콜 스스로가 네트워크 관리x. 네트워크 관리자가 관리할 수 있도록 돕는 도구를 제공
SNMP(Simple Network Management Protocol)
관리서버와 관리서버를 대표하여 실행되고 있는 에이전트 사이에서 네트워크 관리 제어 및 정보 메시지 전달
1. 요청-응답 모드 사용. 관리 서버가 보내는 요청은 피관리 장치와 관련된 MIB객체 값들의 질의/수정
2. 에이전트가 요청받지 않았더라도 자기가 알아서 트랩 메시지라는 이름의 메시지를 관리서버에게 전송
트랩 메시지들은 관리 서버들에게 MIB 객체 값들을 변화시킨 예외 상황의 발생을 통지
PDUs로 알려진 일곱가지 타입 메시지 정의
GetRequest, GetNextRequest, GetBulkRequest: 에이전트의 피관리 장치 내 하나 이상의 MIB 객체 값 요청을 위해
서버에서 에이전트로 전송. 각각은 데이터 요청의 정밀도에 따라 다름.
GetRequest는 임의적인 MIB값들의 집합, GetNextRequest는 MIB객체들의 목록 또는 테이블 순차 검색 가능,
GetBulkRequest는 데이터를 큰 블록으로 반환되게 하여 여러 개의 get 메시지를 받을 때 발생하는 오버헤드 회피.
에이전트는 서버로 response pdu에 담아서 응답함.
SetRequest: 관리 서버가 MIB 객체 값 설정. 제대로 설정하면 에이전트는 noError를 response pdu에 담아 응답
InformRequest: 하나의 관리 서버가 다른 관리 서버에게 수신 서버의 원격에 있는 MIB 정보 전달
Response: 보통 피관리장치에서 관리서버로 요청 메시지에 대한 응답 전송
Trap: 비동기적으로 관리서버가 통지를 요구한 이벤트가 장치에서 발생하면 전송.
(장치의 콜드스타트, 웜스타트, 링크 연결/해지, 이웃장치 실종, 인증 실패 등)
SNMP PDU들이 많은 다른 전송 프로토콜에 의해 운반될 수도 있지만 일반적으로 UDP 데이터그램의 페이로드에 실림.
각 응답은 수신된 요청에서 Request ID를 따오기 때문에 서버가 요청 또는 응답의 분실을 검출(UDP는 못믿으니까)
SNMPv3에선 보안의 문제를 보완
'CS > Computer Network' 카테고리의 다른 글
[컴퓨터 네트워크 하향식 접근] Chapter06 링크 계층 (0) | 2024.08.06 |
---|---|
[컴퓨터 네트워크 하향식 접근] Chapter04 네트워크 계층: 데이터 평면 (0) | 2024.08.03 |
[컴퓨터 네트워크 하향식 접근] Chapter03 트랜스포트 계층 (0) | 2024.07.31 |
[컴퓨터 네트워크 하향식 접근] Chapter02 애플리케이션 계층 (0) | 2024.07.26 |
[컴퓨터 네트워크 하향식 접근] Chapter01 컴퓨터 네트워크와 인터넷 (1) | 2024.07.21 |