Workshop - 구성 관리
상태바
Workshop - 구성 관리
  • 승인 2005.12.01 00:00
  • 댓글 0
이 기사를 공유합니다

RANCID 툴로 컨피그 파일을 안전하게 지켜라

컨피규레이션 데이터 자동 비교 … 소프트웨어 업데이트 모니터링

리눅스와 유닉스 프리웨어 툴은 네트워크 디바이스로부터 컨피규레이션 데이터를 자동적으로 비교, 변화를 모니터링 할 수 있다.

RANCID(Really Awesome New Cisco config Differ)와 컨피규레이션 관리를 위한 리눅스와 유닉스 프리웨어 툴인 RANCD에 관해 불충분한 것은 없다. 라우터와 스위치 벤더들의 다양성으로부터 디바이스를 다룰 수 있기 위해서는 일단 사용법만 확보하면 쉽게 사용할 수 있기 때문이다.

커피규레이션 쉽게 관리
RANCID는 네트워크 디바이스로부터 컨피규레이션을 자동적으로 다운로드하고 앞서 확보한 데이터를 통해 이를 비교함으로써 변화와 문제, 소프트웨어 업데이트를 모니터링 할 수 있다. 일단 툴은 컨피규레이션 데이터에 저장된 데이터로 스위치와 라우터로부터 최근의 컨피규레이션 데이터를 비교하며, 어떤 변화도 없다는 것을 이메일 메시지로 전송한다. 또한 라우터나 스위치에 컨피규레이션 파일을 보낼 수 있다. 실제로 RANCID는 윈도에서 활동하지는 않는다.
충분한 벤더 지원을 찾는 동안 윈도 기반의 상용 구성 제품들은 옵스웨어(opsware)와 알터포인트(AlterPoint) 제품과 같이 좀 더 사용자 친화적이다. 가격이 저렴한 것은 아니다. 게다가 RANCID는 대형 네트워크로 조정할 수 있으며, AOL과 글로벌크로싱 등을 포함한 몇몇 ISP와 네트워크 서비스 사업자는 이것을 사용한다.
RANCID를 어떻게 시작할 수 있는지에 대한 방법은 몇 가지가 있다. 첫째로 리눅스 또는 유닉스 버전을 구동하고 있지 않다면 www.linux.org를 방문하거나 www.redhat.com에서 레드햇 리눅스를 다운로드 한다. 레드햇 9.0에서 RANCID 2.3.1을 갖고 라우터와 스위치를 모니터링 했다.
RANCID 패키지는 펄(Perl) 5.0과 최근 버전뿐 아니라 Tcl 익스펙트 스크립트를 사용한다. 펄과 익스펙트에 친숙하지 않아도 걱정하지 말아라. RANCID는 어떤 방법으로도 작동될 것이다. 펄과 Tcl 익스펙트는 일반적으로 리눅스 분산의 한 부분이지만 아직 그것들을 확보하지 않았다고 해도 무료로 제공되는 패키지를 활용할 수 있다.
액티브스테이트(www.activestate.com)는 펄과 Tcl의 무료 버전을 확보할 수 있는 유용한 사이트다. 뿐만 아니라 향상된 유료 버전을 제공한다. RANCID의 인스톨 태스크인 컨피규레이션 스크립트를 구동할 수 있는 펄과 Tcl 익스펙트 환경이 필요하다. Tcl 창업자인 존 오스터하우스는 expect.nist.gov에서 익스펙트 사이트를 구동한다.
tar 파일을 압축할 수 있는 RANCID는 www.shrubbery.net/rancid로부터 다운로드 할 수 있다. 특성 인터페이스상에 존재하고 있다면, tar-vxf 파일네임은 현재 사용자네임 아래 파일 디렉토리로 배치돼 압축이 풀린다. 레드햇 또는 리눅스 분산환경을 구동한다면 GUI 파일 관리자는 추출(extract) 옵션을 제공할 것이다. 기본적으로 디렉토리 네임은 방금 추출한 RANCID 버전을 보여줄 것이다. 우리의 경우에는 RANCID 2.3.1이다.
우리는 홈 디렉토리에 RANCID 하부 디렉토리속으로 RANCID 파일을 추출했다. 이를 위해 파일을 쓰고 구동할 수 있도록 허용해야만 했다. 또한 접근 허용으로 분산된 지역으로 추출될 수 있는 RANCID 파일을 허용할 수 있는데, 우리는 이를 단순하게 유지했다.
$HOME/rancid 디렉토리 아래는 추출된 모든 파일을 함유하고 있는 rancid-2.3.1 디렉토리다. $HOME/rancid/rancid-2.3.1에 있는 README는 단계적인 인스톨과 컨피규레이션 방향을 제공한다. 명령어 프롬프트에 다음과 같이 삽입한다.

less README

이것은 RANCID를 인스톨 할 수 있는 단계를 나타낼 것이다.

컨피규레이션 구동
파일을 셋업할 컨피규레이션을 구동하는 것은 OS 환경에 필요하다. 이에 대한 실행 가능한 스크립트는 $HOME/ rancid/rancid-2.3.1 디렉토리에서 찾을 수 있는 ‘configure’다. 컨피규얼-스크립트 노티스(notice)를 실행하기에 앞서 README는 수정될 수 있는 2개의 디렉토리 파라미터를 지적한다. 기본으로 ‘configure’ 스트립트는 실행과 구성, 도움파일을 위한 디렉토리 /usr/local/rancid에서 인스톨될 수 있는 파일을 셋업 할 것이다.
home/rancid/var에서 라우터와 스위치를 관리하기 위해 로그와 컨피규레이션 파일을 디폴트로 셋업한다. 이러한 인스톨을 위해 ‘root’ 되지 않고 애플리케이션을 인스톨할 수 있는 곳인 $HOME/rancid 디렉토리에서 로그 및 컨피규레이션 파일을 라우터와 스위치에 위치시켰다.
PREFIX와 localstatedir 등 2개의 디렉토리 파라미터를 조건으로 지점함으로써 ‘configure’를 구동했다. ‘configure’를 명령하는 PREFIX는 애플리케이션 파일을 놓아야 하며, localstatedir은 RANCID 실행 로그뿐 아니라 스위치와 라우터의 컨피규레이션 파일을 위해 로케이션을 셋업한다. 우리는 $HOME/rancid/rancid-2.3.1 디렉토리에서 다음의 명령을 조건으로 지정했다.

configure-prefix=$HOME/rancid-
localstatedir=$HOME/rancid/var

우리는 ‘configure 명령어 앞에 있는 ‘./’를 포함하지 않았다. ‘./’은 구성 스크립트를 위한 현재의 디렉토리에서 보일 수 있는 shell, BASH를 말한다. 현재의 디렉토리가 윈도의 명령어 선상에서 항상 탐색되기 때문에 윈도 유저라면 이상하게 보일 지 모른다. 디폴트의 리눅스와 유닉스의 shell은 현재의 디렉토리를 포함하지 않는다. 우리의 경로에 이를 추가했기 때문에 모든 명령을 위해 ‘./’을 조건 지정할 필요가 없었다.
‘configure’로부터 환경 데이터와 체크된 시스템 요구조건 리스트를 얻게 될 것이다. 만약 문제가 있다면 ‘configure’는 프로세스를 중단할 것이며, 에러 메시지가 표시될 것이다. 어떤 파일도 디렉토리로 이동하지 않게 된다.
다음은 ‘make’ 명령을 실행함으로써 파일을 움직인다. ‘make install’ 명령은 어떤 파라미터를 요구하지 않으며, 이전의 ‘configure’ 단계에서 이를 셋업하는 데 사용할 것이다. $HOME/rancid/rancid-2.3.1에서 다음과 같은 명령을 수행했다.

make install

이것은 구동 시간 2진수를 다른 부호로 번역하며, 조건 지정하기 위해 RANCID 파일을 이동하고 RANCID를 위한 디렉토리를 만든다. $HOME/rancid/var 디렉토리는 여전히 어떤 파일도 가지고 있지 않다는 것을 통지하지만, 실시간으로 RANCID가 구동될 때 장소를 차지하게 될 것이다. 라우터와 스위치에 로그온 하는 기본적인 파일은 실행될 수 있다.
수동으로 어떻게 작동할 수 있는지를 소개한다. ‘clogin’과 ‘.cloginrc.’을 사용해 지원되는 레드백과 프로켓의 디바이스, 시스코와 익스트림, 주니퍼의 라우터 또는 스위치에 RANCID 연결을 위한 2개의 파일이 있다.
컨피규레이션 파일과 익스펙트 스크립트의 유사한 부분은 베이네트웍스, ADC켄트록스 EZ-T3 먹스, 파운드리, HP 프로커브 스위치, 히다찌 라우터와 주니퍼, 넷스크린, 넷스케일러, 리버스톤과 루슨트 TNT 네트워크 디바이스용으로 존재한다. 예를 들어 주니퍼는 라우터에 ‘jlogin’과 ‘jloginrc’ 파일을 사용한다.
‘clogin’에 명령어 선상에서 파라미터를 패스할 수 있으며, ‘cloginrc’에서 파라미터를 구성할 필요가 없다. 예를 들어, 연구실에서 시스코 스위치에 부착하기 위해서는 명령을 수행했다.

clogin -v vtypassword -e enablepassword switchinlab. nwc.com

‘clogin’은 끝마친 후, 목표 스위치의 작동된 프롬프트를 남겨놓았다.

clogin -v vtypassword -e enablepassword -c ‘sh ver’
switch.nwc.com

이것은 랩상에서 스위치에 ‘clogin’ 로그온을 만들며, ‘show version’ 명령을 수행한다. 이후 텔넷 세션에서 결과를 보여준다. 어떤 스위치와 라우터 컨피규레이션 명령은 조건 지정될 수 있다. ‘clogin’은 세미콜론으로 각각 분리돼 다중의 연속 명령을 지원한다.

clogin -v vtypassword -e enablepassword -c ‘sh ver;sh vlan’
switch.nwc.com

자동 추적
RANCID의 실제 파워는 어떻게 자동적으로 추적하고, 컨피규레이션의 어떤 변화를 통지하느냐다. 이러한 이점을 획득하기 위해 이메일 통지를 셋업해야만 한다. RANCID는 스위치와 라우터의 다른 그룹에서 작동하는 네트워크 엔지니어의 다중 그룹을 지원하도록 디자인됐다. 예를 들어 우리의 랩에서 시라큐스, 뉴욕, 그린베이 등의 디바이스 세트를 확보하고 있다.
각자의 연구실에 위치돼 있는 디바이스를 살펴보기 위해 기술 편집자들은 각각의 위치에서 이해했다. 그러나 자동 구동을 할 수 있는 방법을 보여주기 위해 단일 그룹을 정의했다. RANCID의 인스톨 README는 컨피규레이션 파일 ‘rancid.conf.’의 수정을 지시한다.
이 파일은 $HOME/rancid/etc 디렉토리에 존재하게 되며, 작업 디렉토리, 스위치와 라우터 그룹과 같은 가변요소를 세팅할 수 있다. 우리는 단일 그룹인 ‘nwc’를 추가하고 그룹 장착을 수정했다.

List_OF_GROUPS=$LIST_OF_GROUPS nwc

컨피규레이션 파일인 ‘.cloginrc’는 ‘clogin.’으로 다양한 파라미터를 패스한다. 예를 들어 패스워드와 유일한 프롬프트인 Userid는 ‘.cloginrc’ 파일에 저장될 수 있다. README는 ‘colginrc.’를 구성하는 방법을 보여준다. 다운로드를 통해 이 파일은 ‘cloginrc.sample’이라는 파일네임으로 전송됐다.
그러나 이것을 사용하기 위해 ‘.cloginrc’로 재명명해야만 했다. 그 다음 사용자의 홈 디렉토리에 위치시켰다. RANCID가 실행할 수 있도록 재명명되고 이동중인 프로세서는 운영체제를 셋업한다. ‘.cloginrc’가 디바이스에 대한 패스워드를 포함할 수 있기 때문에 인증되지 않은 사용자로부터 보호해야 한다. 홈 디렉토리안에서 이 것을 가지고 있다는 것을 돕는다.
‘.cloginrc’의 허용이 오픈돼 있고 누군가 읽을 수 있다면 RANCID는 ‘clogin’을 실행하지 않을 것이다. 커맨드 라인에서 ‘ls-la .cloginrc’를 타이핑함으로써 읽고 쓸 수 있도록 GUI 파일 매니저에서 허용하게 만들어야 한다. 커맨드 라인에서 허용을 변화하기 위해서는 ‘chmod 600 .cloginrc.'을 입력한다. chmod(change-mod)의 짧은 서술인 ‘man chmod’의 체크는 세팅한 파일 허용에서 더 많은 정보를 명령하는 것이다. 우리는 ‘.cloginrc’속으로 테스트 스위치를 추가했다.

add password switch.nwc.com vtypassword enablepassword

그 다음에 스위치를 사용해 로그인 할 수 있었다.

clogin switch.nwc.syr.edu

‘.cloginrc’ 파일 위에서와 같은 라인을 추가할 때, 특성이 없는 탭을 더하지 않도록 주의해야 한다. 무특성은 패스워드의 한 부분으로 ‘clogin’에 의해 해석된다. 이는 실패를 초래할 수 있다. 올바른 로그인과 작업을 위한 패스워드를 활용할 수 없다면 우선은 예에서 보이는 것처럼 ‘clogin’으로 직접 파라미터를 공급함으로써 수동으로 테스트를 한다.
이 작업이 성공적이지 않다면 패스워드는 잘못된 것이고 ‘clogin.’으로 작동된다. 그 다음 ‘.cloginrc’에 ‘add password’를 지우고, 다신 입력한다. 여기서는 부주의로 추가적인 특성을 소개하지 않도록 주의해야 한다. 디폴트로 유닉스 편집자에게 ‘vi,’가 친숙하지 않다면 다른 테스트 편집자 또는 노트패드로 편집하고 윈도 머신으로 파일을 옮긴다.
다음 단계는 운영 체계의 이메일 서비스에 대한 사용자의 이메일 주소를 정의한다. 이 것은 다음의 2개 라인을 통해 mail/etc/aliases로 ‘nwc’ 그룹에 대한 신호를 추가한다.

rancid-nwc:youremail@yourorg.com
rancid-admin-nwc:youradminemail@yourorg.com

2개의 라인은 리스트 된 이메일 주소로 변화된다. 첫 번째 라인에서 보이는 이메일에 대해 RANCID는 비교된 스위치와 라우터 파일을 전송한다. 둘째 라인은 RANCID 에러 메시지를 표시한다. 다음의 명령어를 입력함으로써 커맨드 라인으로부터 작동되는 지 테스트할 수 있다.

‘mail rancid-nwc’ enter
for subject type, ‘test’ enter
for the body type, ‘test’ enter
Hold the ‘Ctrl’ key and hit the ‘C’
You'll get a ‘cc’ line
Hold the ‘Ctrl’ key and hit the ‘C’ again to send

메일 전송이 작동되면 테스트 이메일을 받은 것이다. 그 다음 각각의 그룹에 대한 파일을 셋업한다. 우리의 경우에는 ‘nwc’가 유일했다.

rancid-cvs

$HOME/rancid/var 디렉토리에서 CVS(Concurrent Versions System), 로그, 그룹 ‘nwc.’ 등 3개의 새로운 디렉토리를 현재 가지고 있다. 그 다음에 목표 스위치와 라우터에 대한 빈 파일(router.ab)을 구성해야만 한다. 테스트 편집자를 사용하면 스위치 또는 라우터를 추가할 수 있다.

switch.nwc.syr.edu:switch_vender_name:up

라인은 라우터 제조업체나 디바이스 상태, 목표 스위치 또는 라우터의 IP 주소와 완전히 권한을 부여받은 도메인 네임을 조건으로 지정한다.

또 다른 로그파일
모든 것이 알맞게 작동하는 지 확인할 시간이다. 커맨드 프롬프트에서 다음과 같이 입력한다.

rancid-run

이러한 실행 가능한 것은 ‘router.ab’와 ‘.cloginrc’ 파일을 읽을 것이다. 또한 $HOME/rancid/var/nwc으로 스위치 컨피규레이션의 복사본을 다운로드한다. 이 파일은 ‘router.db.’에서 정의된 IP 주소와 도메인 네임을 갖게 될 것이다.
이제 rancid-run을 재구동하거나 변화를 만들기 위해 스위치 또는 라우터에 로그온 할 때 또 다른 로그파일을 갖게 될 것이다. 또한 컨피규레이션 파일인 ‘diffed’로 이메일을 받을 것이다. 디프 이메일은 변화가 일어날 때 보내진다. 스크린샷과 같을 것이다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.