SCSPD(8)

명칭
scspd - SCSP demon

서식
scspd [-f <cfg-file>] [-d] [-T<options>]

해설
scspd 유틸리티는, Host ATM Research Platform (HARP) 네트워킹 소프트웨어용의, 서버 캐쉬 동기 프로토콜 (Server Cache Synchronization Protocol; SCSP) 의 실장의 하나입니다. scspd 유틸리티는, 어느 호스트상의 (1 개(살) 이상의) 서버의 (1 개(살) 이상의) 캐쉬와 리모트 호스트상의 서버의 캐쉬를 동기 시킵니다. SCSP 는 많은 다른 프로토콜에 대해서 정의됩니다만, 현재의 버젼의 scspd (은)는 ATMARP 마셔 서포트합니다.

scspd (와)과 atmarpd(8) (을)를 사용하면(자), 단일의 ATM LIS 에 대해서 복수의 ATMARP 서버를 제공하는 것이 가능해집니다. 예를 들면, 장거리 링크로 접속되는 복수의 로컬 에리어 ATM 네트워크에 의해, LIS 가 구성되는 경우에 유용하겠지요. 각 근거리 통신망은 각자의 ATMARP 서버를 가질 수가 있어 모든 서버의 캐쉬는 SCSP 에 의해 동기 됩니다. 이러한 경우, 만약 장거리 링크가 절단 되어도, 근거리 통신망상의 호스트는 다른 로컬 호스트와의 접속성을 유지합니다 (전로컬 호스트는 로컬의 ATMARP 서버를 사용하기 때문입니다). 장거리 링크가 회복하면(자), SCSP 는 서버의 캐쉬를 재동기 해, 리모트 호스트와의 접속성을 회복합니다. ATMARP 캐쉬가 동기 되기 전에, scspd (와)과 atmarpd(8) 의 양쪽 모두가 주행하고 있을 필요가 있습니다.

scspd 유틸리티는, RFC 2334, 및 draft-ietf-ion-scspd-atmarpd-00.txt, 에 나타나도록(듯이) SCSP 를 실장하고 있습니다.

scspd 하지만 실행을 개시하면(자), 자기에게 줄 수 있었던 명령행을 해석해, 백그라운드로 이행합니다.

용어
SCSP 에 관한 용어에는 혼란하기 쉬운 것이 있습니다. 이 문서에서는, 다음의 정의를 사용합니다:

클라이언트 서버 혹은 로컬 서버 (은)는, scspd (와)과 같은 호스트로 실행되고 있는 서버를 의미합니다. 이 서버의 캐쉬는, 복수의 리모트 서버와 동기 됩니다. 서버 라는 말이 단독으로 사용되는 경우, 클라이언트 서버 (을)를 의미합니다.

리모트 서버 (은)는, scspd 하지만 실행되고 있는 호스트와는 다른 호스트상에서 실행되고 있는 서버를 의미합니다.

직접 접속된 서버 (Directly Connected Server; DCS) (은)는, scspd 하지만 직접 통신을 실시하는 리모트 서버를 의미합니다. 리모트 서버도 또 SCSP 의 실장의 하나를 실행하고 있겠지요.

캐쉬 alignment (Cache Alignment; CA) 에는, 2 개의 의미가 있습니다. 캐쉬 alignment 프로토콜은 SCSP 프로토콜 사양의 일부이며, 캐쉬 alignment 유한 상태 기계 (FSM)는 캐쉬 alignment 프로토콜을 실장하는 유한 상태 기계입니다.

옵션
명령행 옵션은 다음과 같습니다:

-f <cfg-file>
    설정 파일의 이름을 지정합니다. 이 옵션을 지정하지 않으면 scspd (은)는 파일 /etc/scspd.conf (을)를 찾습니다.

-d  scspd (을)를 디버그 모드로 실행하는 것을 지정합니다. 디버그 모드에서는, demon는 백그라운드로는 되지 않습니다. 로그 메세지는, 설정 파일로 지정된 로그 파일이 아니고, 표준 출력에 쓰여집니다.

-T<options>
    실행에 즈음하여, 지정한 이벤트와 메세지를 트레이스 하도록, scspd 에 지시합니다. -T 플래그의 뒤에는, 다음에 나타내는 옵션을 1 개 이상 붙입니다:

    c   scspd 의 CA 유한 상태 기계 (FSM)를 트레이스 합니다.
    h   scspd 의 Hello FSM 를 트레이스 합니다.
    i   scspd 의 클라이언트 인터페이스 FSM 를 트레이스 합니다.
    C   CA, CSUS, CSU 리퀘스트와 CSU 리플라이의 메세지를 트레이스 합니다.
    H   Hello 메세지를 트레이스 합니다.
    I   scspd 의 클라이언트와 서로 교환한다 인터페이스 메세지를 트레이스 합니다.

설정
설정 파일은, 일련의 설정문으로부터 완성됩니다. 이러한 문장은, scspd 하지만 캐쉬의 동기를 실시하는 대상이 되는, 로컬 및 리모트의 양쪽 모두의 서버에 관한 정보를 지정합니다. scspd 의 설정 방법법에 대해서는, RFC 2334, 및 draft-ietf-ion-scspd-atmarpd-00.txt, 하지만 도움이 되겠지요.

코멘트 이외의 설정문은 세미콜론으로 종단 합니다. 문장에 따라서는 블록을 가져, brace (“{” (와)과 “}”) 그리고 단락짓습니다. 설정문의 키워드는 대문자 소문자의 구별은 없습니다만, 파라미터에는 구별이 있는 것이 있습니다 (예를 들면 인터페이스명). 설정문은 복수행에 건너는 것이 가능합니다.

  코멘트
3 종류의 코멘트를 사용 가능합니다:

# comments:
    “#” (으)로부터 줄 끝까지의 모든 캐릭터는 무시됩니다.

C 코멘트:
    “/*” (와)과 “*/” 의 사이의 모든 캐릭터는 무시됩니다.

C++ 코멘트:
    “//” (으)로부터 줄 끝까지의 모든 캐릭터는 무시됩니다.

  문
scspd 하지만 이해하는 설정문을 나타냅니다:

    Server <name> {
    	Protocol <protocol ID>;
    	Netif <if_name>;
    	ServerGroupID <ID>;
    	FamilyID <ID>;
    	DCS {
    		ATMaddr <ATM address>;
    		ID <host>;
    		CAReXmitInt <int>;
    		CSUSReXmitInt <int>;
    		CSUReXmitInt <int>;
    		CSUReXmitMax <cnt>;
    		HelloDead <cnt>;
    		HelloInt <int>;
    		Hops <cnt>;
    	};
    };
    Log {
    	File <file name>;
    	Syslog;
    };

설정 파일내에서 호스트 주소를 지정할 필요가 있는 곳은, DNS 에서의 이름이라도, 10 진수를 닷으로 연결하는 IP 주소의 형식에서도, 어디라도 사용 가능합니다.

ATM 주소는 16 진수의 캐릭터 라인으로서 지정합니다. 전에 “0x” (을)를 붙여도 괜찮습니다. 주소내의 필드는 피리어드로 단락지어도 괜찮습니다. 피리어드는 읽기 쉬움 (을) 위해서만 있어, 단지 무시됩니다. ATM 주소의 길이는 20 바이트입니다. 선행하는 0 을 포함해, 전주소를 지정할 필요가 있습니다. 례:

    0x47. 0005.80.ffe100. 0000. f21a. 0170.0020481a0170. 00

  Server 문
server 문장은 클라이언트 서버를 지정합니다. 이 클라이언트 서버의 캐쉬는, 리모트 호스트상에서 실행되고 있는 다른 서버의 캐쉬와 동기 됩니다. scspd 에 의해 캐쉬가 동기 되는 각 클라이언트 서버 마다, 1 개(살)의 server 문장을 설정 파일에 씁니다. server 문장의 서식은 다음과 같습니다:

Server <name> { <statements> };

name 하 server 문장으로 지정할 필요가 있습니다만, scspd (은)는 이것을 사용하지 않습니다. 서버의 용도에 관한 짧은 기술을 주는 것이라고 기대되고 있습니다.

server 문장은, 몇개의 부문을 가져, scspd 의 설정의 상세를 지정합니다. 부문을 나타냅니다:

Protocol ATMARP;
    현재의 버젼의 scspd 하지만 서포트하는 유일한 프로토콜은 ATMARP 입니다. protocol 문장은 항상 지정할 필요가 있습니다.

Netif <intf>;
    netif 문장은, 클라이언트 서버가 서비스를 제공하고 있다 ATM 네트워크 인터페이스명을 지정합니다. netif 문장은 항상 지정할 필요가 있습니다.

ServerGroupID <ID>;
    ServerGroupID 문장은, scspd 하지만 동기를 실시하는 서버군에 대한 식별자를 지정합니다. ID 는 10 진수로서 지정되어 범위는 0 - 65,535 입니다. SCSP 세션에 의해 동기 되는 캐쉬를 가지는 전서버에 대해, 서버 그룹 ID 는 동일한 필요가 있습니다. 즉, 호스트의 서버 그룹 ID 는, server 문내에서 지시해지는 모든 직접 접속된 서버 (DCS) 에 두어 동일한 필요가 있다고 하는 것입니다. ServerGroupID 문장은 항상 지정할 필요가 있습니다.

FamilyID <ID>;
    familyID 문장은, 호스트군간에 실행되는 병렬 SCSP 세션의 패밀리에 대한 식별자를 지정합니다 (패밀리와는 즉, 다른 프로토콜 ID 여도 동일한 서버 집합인, SCSP 세션의 집합입니다). ID 는 10 진수로서 지정되어 범위는 0 - 65,535 입니다. 패밀리 ID 는 현재 scspd (은)는 사용하지 않습니다.

  DCS 문
DCS 문장은 server 문장의 부문이며, 직접 접속된 서버 (DCS)의 특성을 지정합니다. server 문장은, scspd 하지만 정보 교환하는 DCS 마다 1 개(살)의 DCS 문장을 가집니다. DCS 문장은 많은 부문을 가져, DCS 의 설정에 관한 상세를 지정합니다. 그것들을 다음에 나타냅니다:

ATMaddr <ATM address>;
    ATMaddr 문장은 DCS 의 ATM 주소를 지정합니다. ATMaddr 문장은 항상 지정할 필요가 있습니다.

ID <host>;
    ID 문장은 DCS 의 SCSP 식별자를 지정합니다. ATMARP 에 있어서의 ID 는, DCS 의 ATM 인터페이스에 관련지을 수 있었던 IP 주소 또는 DNS 에서의 이름입니다. ID 문장은 항상 지정할 필요가 있습니다.

CAReXmitInt <int>;
    CAReXmitInt 문장은, CA 메세지의 재발송 간격 시간을 지정합니다. CA 메세지가 송신되어 확인 응답이 CAReXmitInt 초이내에 수신되지 않는 경우, 메세지가 재발송됩니다. CAReXmitInt 의 기본값은 3 초입니다.

CSUSReXmitInt <int>;
    CSUSReXmitInt 문장은, CSU Solicit 메세지의 재발송 간격 시간을 지정합니다. CSUS 메세지가 송신되었을 때, CSUS 에 의해 리퀘스트 된 Cache State Advertisement (CSA)가 CSUSReXmitInt 초이내에 수신되지 않으면 다른 CSUS 메세지에 의한 재리퀘스트가 발생합니다. CSUSReXmitInt 의 기본값은 3 초입니다. CSUSReXmitInt (와)과 CSUReXmitInt 에 관해서 혼란하지 않게 해 주세요.

CSUReXmitInt <int>;
    CSUReXmitInt 문장은, CSU 리퀘스트 메세지의 재발송 간격 시간을 지정합니다. CSU 리퀘스트 메세지가 송신되었을 때, CSUReXmitInt 초이내에 CSU 리플라이 메세지에 의해 확인 응답이 돌려주어지지 않은 CSA (은)는 재발송됩니다. CSUReXmitInt 의 기본값은 2 초입니다. CSUReXmitInt (와)과 CSUSReXmitInt 에 관해서 혼란하지 않게 해 주세요.

CSUReXmitMax <cnt>;
    CSUReXmitMax 문장은, 전술과 같이 CSA 가 재발송되는 회수를 지정합니다. 이 회수를 넘으면(자), SCSP 는 CSA 를 단념해 버리게 됩니다. CSUReXmitMax 의 기본값은 5 입니다.

HelloDead <cnt>;
    HelloDead 문장은, Hello 메세지에 넣어져 DCS 에 보내지는, Hello Dead Factor 를 지정합니다. HelloDead * HelloInt 초간 DCS 매운에도 수신하지 않는 경우, “DCS down” 상태가 검출됩니다. HelloDead 의 기본값은 3 입니다.

HelloInt <int>;
    HelloInt 문장은, Hello 메세지에 넣어져 DCS 에 보내지는, Hello Interval 를 지정합니다. HelloInt 의 기본값은 3 초입니다.

Hops <cnt>;
    Hops 문장은 (DCS 로부터 DCS 에의) 호프수를 지정해, 로컬 서버를 기점으로 하는 CSA 안으로 지정됩니다. 이 값은 최소에서도 서버 그룹의 직경일 필요가 있습니다. 즉, 서버군중의 전서버에 CSA 가 전파 하는데 충분한 크기가 필요라고 하는 것입니다. Hops 의 기본값은 3 입니다.

  Log 문
log 문장은, scspd 의 조작 정보를 어떻게 로그 하는지를 지정합니다. scspd 유틸리티는, 로그 정보를 파일에 기입할 수가 있고, 시스템의 로그에 기입할 수도 있고, 양쪽 모두 실시하는 일도 가능합니다.

File <file name>;
    file 문장은, scspd 하지만 로그 메세지를 지정된 이름의 파일에 기입하는 것을 지정합니다. 파일이 이미 존재하는 경우, 로그 메세지는 파일의 마지막에 추가됩니다.

Syslog;
    syslog 문장은, scspd 하지만 로그 메세지를 syslog 퍼실리티에 기입하는 것을 지정합니다. scspd 유틸리티는, 퍼실리티 코드 LOG_DAEMON (을)를 사용해, 메세지를 syslog 에 기입합니다.

log 문장을 지정하지 않으면 scspd (은)는 로그 메세지를 시스템의 로그에 기입합니다. file (와)과 syslog 의 양쪽 모두가 지정되면(자), 지정된 이름의 파일과 시스템의 로그의 양쪽 모두에, scspd (은)는 로그 메세지를 기입합니다.

  사용예
scspd 의 간단한 설정 파일의 예는 다음과 같이 됩니다:

    server atmarp_ni0 {
         protocol ATMARP;
         netif ni0;
         ServerGroupID 23;
         DCS {
              ID 10.1. 1.2;
              ATMaddr 0x47. 0005.80.ffdc00. 0000.0002. 0001.002048061de7. 00;
              hops 2;
         };
    };

이 설정에서는, 네트워크 인터페이스 ni0 상에서 실행되고 있다 ATMARP 서버의 캐쉬와 IP 주소 10.1. 1.2 의 호스트상에서 실행되고 있는 2 번째의 서버의 캐쉬와의 동기를 잡습니다. 로그 메세지는 시스템의 로그에 기입해집니다.

시그널 처리
다음의 시그널을 사용해 scspd (을)를 제어할 수 있습니다:

SIGHUP
    설정 파일을 재차 읽어들여, scspd (을)를 재스타트 합니다.

SIGINT
    디버그 정보를 파일에 덤프 합니다. SIGINT (을)를 수신하면(자), scspd (은)는 제어 블록의 요약을 텍스트 파일에 덤프 합니다 ( 관련 파일 참조).

관련 파일

/etc/scspd.conf
    scspd 의 디폴트의 설정 파일의 이름입니다. 다른 이름은, 명령행으로 -f 옵션으로 지정 가능합니다.

    /tmp/scspd. <pid> ~. <seq> .out 디버그 정보를 덤프 하는 파일의 이름입니다. scspd 유틸리티가 SIGINT 시그널을 수신하면(자), 제어 블록의 요약을 이 파일에 기입합니다. <pid> (은)는 demon의 프로세스 ID 이며, <seq> (은)는 덤프가 취해질 때 마다 증가하는 순차 순서 번호입니다.

    /tmp/scspd. <pid> .trace 트레이스 파일입니다. -T 옵션이 명령행으로 지정되면(자), scspd 유틸리티는 트레이스 정보를 이 파일에 기입합니다.

관련 파일
atm(8), atmarpd(8) RFC 2334, Server Cache Synchronization Protocol (SCSP). draft-ietf-ion-scsp-atmarpd-00.txt, A Distributed ATMARP Service Using SCSP.

버그
scspd (이)가 종료되어 재스타트 하면(자), 이전에 동기 된 캐쉬 엔트리가 타임 아웃 해 리프레쉬 될 때까지의 기간, 불안정하게 됩니다.

버그는 <harp-bugs@magic.net> 에 보고해 주세요.

COPYRIGHT
Copyright (c) 1994-1998, Network Computing Services, Inc.

저자
John Cavanaugh, Network Computing Services, Inc. Mike Spengler, Network Computing Services, Inc. Joe Thomas, Network Computing Services, Inc.

사례
본소프트웨어는, Defense Advanced Research Projects Agency (DARPA)의 협력에 의해 개발되었습니다.

일본어 번역
호리카와 카즈오 <horikawa@jp.FreeBSD.org>