Download presentation
Presentation is loading. Please wait.
1
Chapter 9 네트워크 관리 (Network Management)
2
Chapter 9: 목차 9.1 개요 9.2 SNMP 9.3 ASN.1 1.#
3
Chapter 9: 학습목표 네트워크 관리의 개념을 소개하고 네트워크 관리의 5가지 일반 영역인 구성, 장애, 성능, 보안, 계정에 대해서 설명한다. TCP/IP 프로토콜 그룹을 이용하여 인터넷에서 장치를 인터넷에서 장치를 관리하기 위한 체제로서 단순 네트워크 관리 프로토콜(SNMP, Simple Network Management Protocol)을 살펴보고, 호스트로서 관리자인 SNMP 클라이언트와 라우터나 호스트로서 대행자(agent)인 서버 프로그램이 어떻게 실행되는지 살펴본다. 데이터와 객체를 규정하는 방법과 규칙을 제공하는 표준에 대해 간단하게 살펴본다. 주요 부분은 두 번째 절에 있는 SMI에서 사용된다. 1.#
4
9-1 개요 네트워크 관리란 기관에서 규정하는 요구사항을 충족하는 네트워크 구성 요소를 감시하고, 시험하고, 구성하고, 문제점을 해결하는 것이라고 말할 수 있다. 이들 요구사항은 사용자에게 사전에 규정한 서비스 품질을 제공하는 유연하고 효율적인 네트워크 관리를 포함한다. 이 임무를 달성하기 위해서 네트워크 관리 시스템은 하드웨어, 소프트웨어, 사람을 이용한다.
5
9.1 개요 ISO 분류는 네트워크 관리에서 비용(cost) 관리가 특수한 영역이라고 하지만, 일부 표준화 기구에서는 관리 영역에 포함하고 있다. Figure 9.1: 네트워크 관리 영역
6
구성 관리 규모가 큰 네트워크는 항상 각기 서로 물리적 또는 논리적으로 연결된 수백 개의 개체들로 이루어진다. 이들 개체들은 네트워크를 구축할 때 초기 구성을 갖지만 시간에 따라 변경될 수 있다. 데스크탑 컴퓨터를 다른 것으로 교체하거나, 응용 소프트웨어를 새로운 버전으로 갱신할 수 있다. 그리고 사용자가 한 그룹에서 다른 그룹으로 이동할 수 있다. 구성 관리(configuration management) 시스템은 언제든지 각 개체의 상태와 이들 개체간의 관계를 알아야 한다.
7
9.1.1 (continued) 재구성(Reconfiguration) 문서화(Documentation) 하드웨어 재구성
하드웨어 재구성은 하드웨어에 대한 모든 변화를 다룬다. 소프트웨어 재구성 소프트웨어 재구성은 소프트웨어에 대한 모든 변화를 다룬다. 사용자-계정 재구성 사용자-계정 재구성은 시스템에서 사용자를 간단하게 추가하거나 삭제하는 것이 아니다. 이는 개인과 그룹의 멤버로서 사용자의 권한도 고려해야 한다. 문서화(Documentation) 하드웨어 문서화 하드웨어 문서화는 보통 두 개의 문서 집합을 갖는데, 이는 지도(map)와 규격(specification) 지도: 하드웨어의 각 부품과 이의 네트워크에 대한 연결을 추적 규격: 하드웨어의 각 부품도 문서화할 필요가 있으며, 네트워크에 연결된 하드웨어의 각 부품에 대해 규격이 있어야 함 소프트웨어 문서화 소프트웨어 문서화는 소프트웨어의 유형, 버전, 설치된 시간, 라이선스 동의와 같은 정보를 포함 사용자-계정 문서화 대부분의 운영체제는 사용자-계정 문서화를 제공하는 유틸리티를 포함 이 정보가 들어 있는 파일은 갱신되어야 하고, 안전하게 관리해야 함
8
장애 관리 복잡한 네트워크들은 수백 또는 수천 개의 구성요소로 이루어져 있다. 네트워크의 적절한 운영은 각 구성요소가 서로 연관성을 갖고 개별적으로 적절하게 동작하는 것에 달려 있다. 장애 관리(Fault management)는 이 주제를 다루는 네트워크 관리 영역이다. 효과적인 장애 관리 시스템은 두 개의 서브시스템이 있는데, 이는 reactive 장애 관리와 proactive 장애 관리이다.
9
9.1.2 (continued) Reactive 장애 관리 장애 탐지하기 장애 분리하기 장애 교정하기 장애 기록하기
영향을 받는 사용자에게 통지하고, 교정에 필요한 시간을 알려줌 장애 교정하기 Reactive 장애 관리 시스템에 의해 취해지는 세 번째 단계는 장애를 교정하는 것 (장비의 교체, 수리 등) 장애 기록하기 장애가 교정된 후에, 문서로 기록이 필요(장애의 위치, 원인, 작업 활동, 비용 등) 이러한 문서화는 다음의 이유로 중요 문제는 언제나 다시 일어날 수 있음 같은 종류의 장애가 자주 일어나는 것은 시스템에서 주요 문제점의 징후 통계는 네트워크 관리의 또 다른 부분인 성능 관리에 도움
10
9.1.2 (continued) Proactive 장애 관리 장애가 일어나는 것을 예방하는 것
항상 가능한 것이 아니지만, 실패의 일부 유형을 예측할 수 있고, 예방 가능 예를 들어, 생산자가 구성요소나 구성 요소 일부의 수명을 지정하면, 그 시간이 되기 전에 교체하는 것이 좋은 전략이다. 또 장애가 네트워크의 특정 지점에서 자주 일어나면 다시 일어날 수 있는 장애를 예방하기 위해 네트워크를 조심스럽게 재구성하는 것이 좋다.
11
성능 관리 장애 관리와 밀접한 관계가 있는 성능 관리(Performance management)는 가능한 효과적으로 실행되는 것을 보장하기 위하여 네트워크를 감시하고 통제한다. 성능 관리는 용량(capacity), 트래픽(traffic), 처리량(throughput), 또는 응답 시간(response time)과 같은 측정 가능한 양을 이용하여 성능을 측정한다. SNMP와 같은 프로토콜은 성능 관리를 이용할 수 있다.
12
9.1.3 (continued) 용량 트래픽 성능 관리 시스템에서 감시해야 하는 한 가지 요소는 네트워크의 용량
모든 네트워크는 제한된 용량을 가지고 있고, 성능 관리 시스템은 이 용량을 초과 하지 않도록 보장 예를 들어, 평균 데이터 전송률이 2 Mbps인 100개의 지국으로 구성하는 것으로 LAN을 설계했다면, 네트워크에 200개의 지국을 연결했을 때, 적절하게 동작 할 수 없음 트래픽 트래픽은 두 가지 방법으로 측정 가능한데, 내부적(internally)과 외부적(externally) 임 내부 트래픽은 네트워크에서 전송되는 패킷(또는 바이트)의 수로 측정 외부 트래픽은 네트워크 밖에서 패킷(또는 바이트)의 교환으로 측정
13
9.1.3 (continued) 처리율 응답 시간 네트워크의 일부나 라우터와 같은 개별적인 장치의 처리율을 측정
성능 관리는 수용할 수 없는 수준으로 감소하지 않도록 보장하기 위해 감시(처리율) 응답 시간 응답 시간은 보통 사용자가 서비스를 요구한 시간부터 서비스를 받은 시간까지 측정 용량과 트래픽과 같은 요소들은 응답 시간에 영향을 끼칠 수 있음 성능 관리는 평균 응답 시간과 최고점 응답 시간을 감시 응답 시간의 증가는 네트워크가 용량을 초과해서 동작하고 있다는 것을 나타내며, 매우 중대한 상태임
14
보안 관리 보안 관리(security management)는 미리 정해진 정책을 기반으로 네트워크에 대한 접근을 통제하는 것을 담당한다. 10장에서 암호와 인증과 같은 보안 도구를 설명할 것이다. 암호는 사용자에 대한 프라이버시를 제공하고 인증은 사용자에 대한 식별을 담당한다.
15
계정 관리 계정 관리(accounting management)는 임무를 통하여 네트워크 자원에 대한 사용자의 접근을 통제하는 것이다. 계정 관리에 따라 개인 사용자, 과, 부, 프로젝트는 네트워크로부터 받게 되는 서비스에 대한 비용을 요구한다. 비용 청구는 반드시 현금 전송을 의미하는 것이 아니고 예산 목적으로 과, 부에 차변에 기입하는 것을 의미한다.
16
9-2 SNMP 지난 수십 년 동안 여러 가지 네트워크 관리 표준이 개발되었다. 가장 중요한 것 중 하나가 인터넷에서 사용하는 단순 망 관리 프로토콜(SNMP, Simple Network Management Protocol)이다. 이 절에서는 이 표준에 대해 설명한다. SNMP는 인터넷에서 TCP/IP 프로토콜을 사용하는 장치들을 관리하기 위한 기본 구조이다.
17
9.2 개요 SNMP는 응용-레벨 프로토콜로서 소수의 관리자 지국이 에이전트의 집합을 제어
서로 다른 제조회사에서 만든 라우터들로 연결된 서로 다른 LAN/WAN으로 이루어진 이질적인 인터넷에서도 사용 Figure 9.2: SNMP 개념
18
관리자와 에이전트 관리자(manager)라는 관리 지국은 SNMP 클라이언트 프로그램을 수행하는 호스트이다. 에이전트(agent 또는 대행자)라는 관리대상 지국은 SNMP 서버 프로그램을 수행하는 라우터(또는 호스트)이다. 관리는 관리자와 에이전트간의 간단한 상호작용을 통하여 이루어진다.
19
9.2.1 (continued) SNMP를 이용한 관리는 세 가지 기본적인 생각에 기초
관리자는 에이전트의 동작을 반영하는 정보를 요구하여 에이전트를 검사 관리자는 에이전트 데이터베이스에 있는 값을 재설정하여 에이전트가 작업을 수행 에이전트는 비정상적인 상황을 관리자에게 경고하여 관리 처리 과정에 도움
20
Figure 9.3: 인터넷에서 네트워크 관리 구성요소
관리 구성요소 SNMP는 관리 작업을 수행하기 위해 서로 다른 두 가지 프로토콜, 즉 SMI(Structure of Management Information)와 MIB(Management Information Base)를 사용한다. 다시 말하면 인터넷에서 관리는 SMI와 MIB 그리고 SNMP의 협동 작업을 통해 이루어진다. Figure 9.3: 인터넷에서 네트워크 관리 구성요소
21
(continued) SNMP의 역할 네트워크 관리에 있어 매우 특수한 역할을 수행 관리자와 에이전트 사이에 주고받는 패킷의 형식을 규정 결과를 해석하고 통계 자료를 생성 교환되는 패킷들은 객체(변수) 이름과 그들의 상태(값)을 내장 SNMP는 이러한 값들을 읽고 변경할 책임 SNMP는 관리자와 에이전트 사이에 교환되는 패킷의 형식을 규정한다. SNMP는 SNMP 패킷에서 객체(변수)의 상태(값)를 읽고 변경한다.
22
9.2.2 (continued) SMI의 역할 SMI는 객체의 이름을 붙이고 객체 유형을 규정하며,
SNMP를 사용하기 위해서는 객체의 이름을 짓는 규칙이 필요 특히 SNMP의 객체들이 계층적인 구조를 형성하기 때문에 중요 (특정 객체는 부모 객체와 몇 개의 자식 객체를 가질 수 있다) 또한, 객체의 유형을 정의하기 위한 규칙 필요 객체의 무슨 유형이 SNMP에 의해서 처리되는가? SNMP가 단순 유형 또는 구조적 유형을 처리할 수 있는가? 얼마나 많은 유형이 사용 가능한가? 이러한 유형들의 크기는 얼마인가? 이러한 유형들의 범위는 어떤가? SMI는 이러한 규칙들을 규정하는 프로토콜 SMI는 객체의 이름을 붙이고 객체 유형을 규정하며, 객체와 값들을 부호화하는 방법을 나타내기 위한 일반적인 규칙들을 정의한다.
23
MIB은 관리될 객체에서 이름이 지어진 객체와 그들의 유형,
(continued) MIB의 역할 관리될 각 개체를 위해 객체의 수를 결정 이들을 SMI에 의해 정의된 규칙에 따라 이름을 붙임 이름이 지어진 각 객체에 유형을 연결 MIB은 데이터베이스와 유사하게 각 개체를 위해 정의된 객체들을 생성 (주로 데이터베이스에서 메타 데이터, 값이 없는 이름과 유형들) MIB은 관리될 객체에서 이름이 지어진 객체와 그들의 유형, 그리고 서로에 대한 관계 등의 모음을 생성한다.
24
Figure 9.4: 컴퓨터 프로그래밍과 네트워크 관리의 비교
(continued) 유사성 이 세 개의 네트워크 관리 요소들은 어떤 문제를 풀기 위해 컴퓨터 언어로 프로그램을 작성할 때 필요한 것들과 유사 SMI = 문법 MIB = 객체 선언과 정의 SNMP = 프로그램 작성 Figure 9.4: 컴퓨터 프로그래밍과 네트워크 관리의 비교
25
9.2.2 (continued) 유사성 문법: SMI 객체 선언과 정의: MIB 프로그램 작성: SNMP
프로그램을 작성하기 전에 언어의 문법(C or Java)이 먼저 정의되어야 함 언어는 변수의 구조(단순, 구조체, 포인터 등)를 정의하고 변수들에게 이름을 붙이는 방법을 정의 프로그래밍에서 규칙들은 언어의 문법에 의해 정의 (네트워크 관리에서는 규칙들이 SMI에 의해 정의) 객체 선언과 정의: MIB 대부분의 컴퓨터 언어는 각 특정 프로그램에서 객체들이 선언되고, 정의되는 것을 요구 선언과 정의는 각 객체에 미리 정의된 유형을 생성하며 이들을 위한 기억 장소 할당 예를 들어, 두 개의 변수(counter라는 정수와 grades라는 type char의 배열)를 갖고 있으면 이 내용은 프로그램 시작 부분에 선언되야 함 MIB은 네트워크 관리에서 이러한 작업을 수행 프로그램 작성: SNMP 프로그래밍 선언 후, 변수에 값을 저장하고 필요한 경우 이를 변경하기 위한 문장을 작성할 필요가 있음 SNMP는 네트워크 관리에서 이러한 작업을 수행 int counter; char grades [40];
26
개요 각 구성 요소를 자세히 알아보기 전에 각 요소가 간단한 시나리오에서 어떻게 사용되는지를 살펴보자. 이는 이 장의 끝에서 다루게 되는 내용에 대한 개요이다. 관리 지국(SNMP 클라이언트)은 에이전트 지국(SNMP 서버)이 수신한 UDP 사용자 데이터그램의 수를 알기 위해 에이전트에게 메시지를 보내려고 한다.
27
9.2.3 (continued) 관리 개요 MIB는 수신된 UDP 사용자 데이터그램의 수를 가지고 있는 객체를 찾음
SMI는 또 다른 내장 프로토콜의 도움을 받아 객체의 이름을 부호화 SNMP는 GetRequest 메시지를 생성, 부호화된 메시지를 캡슐화 Figure 9.5: 관리 개요
28
SMI SMIv2(Structure of Management Information, 버전 2)는 네트워크 관리를 위한 구성 요소이다. SMI는 SNMP에 대한 지침이다. 이는 객체를 다루는 3가지 속성인 이름(name), 데이터 유형(data type), 부호화 방법(encoding method)을 강조한다. 객체에 이름을 붙인다. 객체에 저장될 수 있는 데이터의 유형을 정의한다. 네트워크상에 전송하기 위해 데이터를 어떻게 부호화할지를 보여준다.
29
(continued) 이름 SMI는 각 관리 대상 객체(라우터나 라우터에 있는 변수, 값 등과 같은)가 유일한 이름을 갖도록 요구 객체의 이름을 범용으로 짓기 위해, SMI는 트리 구조에 기초한 계층적 식별자인 객체 식별자(object identifier)를 사용 Figure 9.6: SMI에서 객체 식별자
30
9.2.4 (continued) 유형 객체의 두 번째 속성은 저장되는 데이터 유형
데이터 유형을 정의하기 위해, SMI는 기본적인 ASN.1(Abstract Syntax Notation One) 규약을 사용 (SMI는 ASN.1의 부분집합이면서 포함집합) 단순 유형 원소적 데이터 유형 어떤 것은 ASN.1로부터 직접 얻을 수 있고, 어떤 것은 SMI에 의해 추가됨 구조적 유형 Sequence 데이터 유형은 반드시 같은 데이터 종류일 필요는 없는, 단순 데이터 유형들의 결합 이는 C와 같은 프로그래밍 언어에서 사용되는 구조체나 레코드 개념과 비슷 Sequence of 데이터 유형은 모두 같은 유형인 단순 데이터 유형들의 결합이거나, 모두 같은 유형인 sequence 데이터 유형들의 결합 이는 C와 같은 프로그래밍 언어에서 사용되는 배열의 개념과 비슷
31
(continued) 데이터의 유형 표 9.1 데이터의 유형
32
(continued) 개념적 데이터 유형 Figure 9.7: 개념적 데이터 유형
33
9.2.4 (continued) 부호화 방식 SMI는 BER(Basic Encoding Rules)이라는 또 다른 표준을 사용
BER은 [그림 9.8]과 같이 데이터의 각 조각을 3개의 형식인 태그(tag), 길이(length), 값(TLV)으로 부호화하도록 규정 [표 9.2]는 이 장에서 사용되는 데이터 유형과 태그를 2/16진수로 보여줌 표 9.2 데이터 유형 코드 Figure 9.8: 부호화 형식
34
Example 9.1 그림 9.9는 INTEGER 14가 어떻게 정의되는지 보여준다. 길이 필드의 크기는 표 9.1에서 볼 수 있다. Figure 9.9: 예제 9.1: INTEGER 14 34
35
Figure 9.10: 예제 9.2: OCTET STRING “HI”
Example 9.2 그림 9.10은 OCTET STRING “HI”를 정의하는 방법을 보여준다. Figure 9.10: 예제 9.2: OCTET STRING “HI” 35
36
Example 9.3 그림 9.11은 객체 식별자 (iso.org.dod.internet)을 정의하는 방법을 보여준다. Figure 9.11: 예제 9.3: 객체 식별자 36
37
Example 9.4 그림 9.12은 IP 주소 131.21.14.8.을 정의하는 방법을 보여준다.
Figure 9.12: 예제 9.4: IP 주소 37
38
MIB MIB2(Management Information Base, version 2)는 네트워크 관리에서 사용되는 두 번째 구성 요소이다. 각 에이전트는 관리자가 관리할 수 있는 모든 객체를 모아 놓은 자신의 MIB2를 갖는다(그림 9.13 참조). Figure 9.13: mib-2 그룹 일부
39
9.2.5 (continued) 객체 중 일부 설명(그림 9.13)
sys: 이 객체(system)는 노드(시스템)에 관한 일반적인 정보인 이름, 위치, 수명 등 규정 if: 이 객체(interface)는 노드의 모든 인터페이스에 관한 정보인 인터페이스 번호, 물리 주소, IP 주소 등을 규정 at: 이 객체(address translation)는 ARP 테이블에 관한 정보 규정 ip: 이 객체는 IP에 관한 정보인 라우팅 테이블과 IP 주소 등을 규정 icmp: 객체는 ICMP에 관한 정보인 송수신된 패킷 수와 생성된 전체 오류 등을 규정 tcp: 이 객체는 TCP에 관한 일반적인 정보인 연결 테이블, 타임-아웃 값, 포트 수, 송수신된 패킷 수 등을 규정 udp: 이 객체는 UDP에 관한 일반적인 정보인 포트 수, 송수신된 패킷 수 등을 규정 egp: EGP 운영과 관련된 객체 trans: 전송의 특정 방법과 관련된 객체 snmp: 이 객체는 SNMP 자체에 관련된 일반적인 정보를 규정
40
9.2.5 (continued) MIB 값 엑세스하기 단순 변수 Figure 9.14: udp 그룹
단순 변수를 액세스 하기 위해, 그룹 id ( ) 뒤에 변수의 id를 붙여 사용 udpInDatagrams udpNoPorts udpInErrors udpOutDatagrams udpInDatagrams.0 udpNoPorts.0 udpInErrors.0 udpOutDatagr.0ams Figure 9.14: udp 그룹
41
9.2.5 (continued) MIB 값 엑세스하기 테이블 Figure 9.15: udp 변수와 테이블
테이블을 구분하기 위해, 먼저 테이블 id를 사용 udp 그룹은 [그림 9.15]와 같이 하나의 테이블(식별자 5)을 가짐 테이블을 액세스하기 위해 다음과 같이 사용 udpTable Figure 9.15: udp 변수와 테이블
42
Figure 9.16: udpTable에 대한 색인
(continued) MIB 값 엑세스하기 테이블 임의의 순간에 테이블은 각 로컬 주소/로컬 포트 쌍에 대해 여러 개의 값을 가질 수 있음 테이블의 특정 인스턴스(row)를 읽기 위해 위 id에 색인을 추가 색인들은 엔트리에 있는 하나 이상의 필드의 값에 기초 [그림 9.16]은 각 필드에 대해 네 개의 행과 값을 갖는 테이블 첫 번째 행에 대한 로컬 주소의 인스턴스를 액세스하기 위해, 인스턴스 색인을 이용하여 지정된 식별자를 사용 Figure 9.16: udpTable에 대한 색인
43
9.2.6 SNMP SNMP는 인터넷 네트워크 관리에 SMI와 MIB를 모두 사용한다. SNMP는 다음을 가능하게 한다.
관리자가 에이전트에서 정의된 객체의 값을 읽는다. 관리자가 에이전트에서 정의된 객체에 값을 저장한다. 에이전트가 비정상적 상황에 대한 경고 메시지를 관리자에게 보낸다.
44
(continued) PDU SNMPv3은 다음 8가지 유형의 프로토콜 데이터 단위(PDU)를 정의 (그림 9.17 참조) GetRequest, Get-Next-Request, GetBulkRequest, SetRequest, Response, Trap, InformRequest, Report Figure 9.17: SNMP PDUs
45
9.2.6 (continued) PDU GetRequest GetNextRequest GetBulkRequest
GetRequest PDU는 변수나 변수들의 값을 읽기 위하여 관리자(클라이언트)가 에이전트(서버)에게 보냄 GetNextRequest GetNextRequest PDU는 변수의 값을 읽기 위하여 관리자가 에이전트에게 보냄 GetBulkRequest GetBulkReqeust PDU는 많은 양의 데이터를 읽기 위하여 관리자가 에이전트에게 보냄 SetRequest SetRequest PDU는 변수에 값을 설정(저장)하기 위하여 관리자가 에이전트에게 보냄 Response Response PDU는 GetRequest나 GetNextRequest에 대한 응답으로 에이전트가 관리자에게 보냄 Trap Trap PDU는 에이전트가 이벤트를 관리자에게 보고하기 위해 전송 InformRequest InformRequest PDU는 원격 관리자의 제어하에 있는 에이전트로부터 어떤 변수의 값을 얻기 위해 한 관리자가 다른 원격 관리자에게 전송 Report Report PDU는 관리자들 사이에 오류 유형들을 보고하기 위해 설계
46
9.2.6 (continued) 형식 8개의 SNMP PDU에 대한 형식은 [그림 9.18]
GetBulkRequest PDU는 다른 것들과 두 가지 부분에서 상이 Figure 9.18: SNMP PDU 형식
47
9.2.6 (continued) 형식 필드 설명 (표 9.3/9.4 참조) PDU type: 이 필드는 PDU의 유형을 나타냄
Request ID: 이 필드는 관리자가 요청 PDU에서 사용하는 순서 번호로서, 응답에서 에이전트에 의해 반복 Error status: 이것은 응답 PDU에서만 사용되는 정수로서 에이전트에 의해 보고되는 오류의 종류를 나타냄 Non-repeaters: 이 필드는 GetBulkRequest에서만 사용 Error index: 오류 색인은 관리자에게 오류를 일으킨 변수가 어느 것인지를 알려줌 Max-repetition: 이 필드 또한 GetBulkRequest에서만 사용 Variable-value pair list: 이것은 관리자가 읽거나 설정하기 원하는 값을 갖는 변수들 조합 표 9.3 PDU 유형 표 9.4 오류 유형
48
9.2.6 (continued) 메시지 SNMP는 단지 PDU만 보내지 않고, 메시지에 각 PDU를 내장해서 보냄
Figure 9.19: SNMP 메시지
49
Example 9.5 이 예제에서는 관리자 지국(SNMP 클라이언트)이 라우터가 수신한 UDP 데이터그램의 수를 읽기 위해 GetRequest P여 메시지를 사용한다(그림 9.20 참조). Figure 9.20: 예제 9.5 49
50
Figure 9.21: 예제 9.5에서 전송되는 실제 메시지
Example 9.5 그림 9.21에 에이전트(서버)로 보내는 실제 패킷을 보였다. 메시지 헤더는 10바이트인것으로 가정했다. 실제 메시지 헤더는 다를 수 있다. 4바이트 행을 이용하여 메시지를 보였다. 대쉬를 사용하여 표시된 바이트는 메시지 헤더와 관련된 것들이다. Figure 9.21: 예제 9.5에서 전송되는 실제 메시지 50
51
(continued) UDP 포트 SNMP는 잘 알려진(well-known) 포트 161과 162를 통해 UDP 서비스를 사용 잘 알려진 포트 161은 서버(에이전트)가 사용, 162는 클라이언트(관리자)가 사용 관리자(클라이언트)는 포트 162로 수동적 열기를 시도한 후, 에이전트(서버)로부터 연결을 기다림 에이전트(서버)는 전송할 Trap 메시지가 있을 때마다 임시 포트를 사용하여 능동적 열기를 시도 (이 연결은 서버에서 클라이언트로 가는 단방향이다. 그림 9.22 참조) Figure 9.22: SNMP에 대한 포트 번호
52
9.2.6 (continued) 보안 SNMPv3은 이전 버전에 보안과 원격 관리라는 2개의 특성을 추가
보안의 여러 가지 기능인 메시지 인증, 기밀성, 무결성을 관리자가 설정해서 구성 SNMPv3은 관리자가 장치가 위치한 곳에 있지 않아도 보안 기능의 원격 설정을 허용
53
9-3 ASN.1 데이터 통신에서 목적지로 연속적인 비트 스트림을 보낼 때 데이터의 형식을 지정할 필요가 있다. 이것은 기호(symbol), 주제어(keyword), 원자(atomic) 데이터 유형을 이용하는 추상 언어를 통하여 할 수 있다. 이 언어를 ASN.1(Abstract Syntax Notation One)이라고 한다.
54
언어 기초 개체와 연관된 값을 규정할 수 있는 방법을 보여주기 전에 언어 자체에 대해 이야기 해보자. 언어는 몇 가지 기호와 주제어를 사용하고, 몇 가지 원시(primitive) 데이터 유형을 규정한다. 앞에서 설명했듯이 SMI에서는 언어 자체에서 개체의 서브셋을 사용한다.
55
9.3.1 (continued) 기호 언어는 [표 9.5]에서 주어진 기호의 집합을 사용
이 기호는 단일 문자 또는 문자의 쌍으로 됨 표 9.5 ASN.1에서 사용되는 기호
56
9.3.1 (continued) 주제어 언어는 사용할 수 있는 제한된 주제어의 집합을 가짐
이 단어들은 언어에서 규정된 목적으로만 사용할 수 있음 또한, 모든 단어는 대문자이어야 함(표 9.6 참조) 표 9.6 ASN.1에서 주제어
57
데이터 유형 개념은 우리가 C, C++, 또는 Java와 같은 컴퓨터 언어에서 본 것과 비슷하다. ASN.1에서는 integer, float, boolean, char 등과 같은 몇 가지 간단한 데이터 유형을 갖는다. 새로 간단한 데이터 유형(서로 다른 이름을 갖는)을 만들거나 배열이나 구조체와 같은 구조화된 데이터 유형을 규정하기 위하여 이들 데이터 유형을 조합할 수 있다.
58
9.3.2 (continued) 간단한 데이터 유형 ASN.1은 단순(atomic) 데이터 형식의 집합을 정의
각 데이터 유형은 범용(universal) 태그가 주어지고 [표 9.7]에 보여진 것처럼 일련의 값을 가짐 값의 미리 정의된 범위를 갖는 약간의 기본 데이터 형식이 있을 때 컴퓨터 언어에서 사용된 것과 똑같은 방법 표 9.7 간단한 ASN.1 내장 유형
59
<variable> <type> ::= <value>
(continued) 새로운 데이터 유형 ASN.1은 BNF(Backus-Naur Form) 구문을 사용하여 내장된 데이터 유형이나 사전에 정의된 데이터 유형을 새로운 데이터 유형으로 정의 (새로운 유형은 대문자로 시작) 새로운 하위 유형 ASN.1은 범위가 사전에 정의된 데이터 유형이나 내장형 유형의 서브 범위인 서브 유형을 생성하는 것도 허용 간단한 변수 프로그래밍 언어에서 특정 유형의 변수를 만들고 거기에 값을 저장 할 수 있음 ASN.1에서도 용어 Value Name은 변수대신 사용 (그렇지만, 프로그래머에게 더 익숙한 variable을 사용한다) 변수 이름은 유형과 구분하기 위해 소문자로 시작 <new type> ::= <type> <variable> <type> ::= <value>
60
(continued) 구조체 유형 ASN.1은 C 언어나 C++에 있는 struct(record)과 유사한 구조체 데이터 유형을 정의하기 위해 주제어 SEQUENCE를 사용 다음은 3개의 변수인 username, password accountNumber로 된 새로운 유형 StudentAccount를 보여줌 StudentAccount ::= SEQUENCE { userName VisibleString, password VisibleString, accountNumber INTEGER }
61
Figure 9.23: 유형 정의와 변수 선언으로 표현된 레코드
(continued) 구조체 변수 새로운 유형을 정의한 후에 아래에 보여진 것처럼 이의 변수를 생성할 수 있음 변수에 값을 지정 가능 그림 9.23은 유형 정의와 값 할당으로 생성된 레코드를 보여줌 johnNewton StudentAccount { userName “JohnN”, password “120007”, accountNumber 25579 } Figure 9.23: 유형 정의와 변수 선언으로 표현된 레코드
62
Example 9.6 다음은 표 9.7에 있는 내장형 유형을 이용한 몇가지 새로운 유형의 예이다. 62
63
Example 9.7 다음은 새로운 세 가지 하위 유형을 만드는 방법이다. 첫 번째 범위는 정수의 하위 유형이다. 두 번째 범위는 REAL의 하위 유형이다. 세 번째 범위는 DayOFWeek의 하위 유형이다. DayOFWeek는 예제 9.6에 정의되어 있다. 범위를 설정하는 기호(..)와 선택을 정의할 수 있는 (|)를 통해 범위를 알 수 있다. 63
64
Example 9.8 다음은 몇 가지 변수를 정의하고, 해당 유형의 범위에 적합한 값을 지정하는 몇 가지 예이다. 첫 번째와 세 번째 변수는 내장형 유형이고, 두 번째 변수는 예 9.6에 정의된 변수이고, 마지막은 예 9.7에 정의된 하위 유형이다. 64
65
부호화 데이터를 정의하고 값이 변수와 연관된 후에 ASN.1은 메시지를 보낼 때 부호화(encoding) 규칙 중 하나를 사용하여 부호화해야 한다. 이미 앞 절에서 기본 부호화 규칙(Basic Encoding Rule)을 설명하였다.
66
Chapter 9: Summary 네트워크 관리를 구성하는 다섯 개의 영역은 구성 관리, 장애 관리, 성능 관리, 계정 관리, 보안 관리이다. SNMP(Simple Network Management Protocol)는 인터넷에서 TCP/IP 프로토콜을 사용하는 장치들을 관리하기 위한 기반 구조이다. 일반적으로 호스트인 관리자는 일반적으로 라우터인 에이전트의 집합을 제어하고 감시한다. SNMP는 SMI(Structure of Management Information)와 MIB(Management Information Base)이라는 서비스를 사용한다. SMI는 객체에 이름을 붙이고, 객체 내에 저장될 수 있는 데이터의 유형을 정의하며, 데이터를 부호화한다. MIB은 SNMP에 의해 관리될 수 있는 객체의 그룹들의 모임이다. MIB은 변수를 관리하기 위해 사전적 순서를 사용한다. 66 1.#
67
Chapter 9: Summary (continued)
추상 구문 표기법(ASN.1)은 데이터의 구문과 의미를 정의하는 언어이다. ASN.1은 몇 가지 기호, 주제어, 간단하고 구조화된 데이터 유형을 사용한다. ASN.1의 일부는 네트워크 관리에 사용되는 객체의 형식 및 값을 정의하는 SMI에 의해 사용된다. 67 1.#
Similar presentations