imta.cnf 파일 외에 Messaging Server는 MTA 서비스를 구성하는 데 도움이 되는 다른 여러 구성 파일을 제공합니다. 표 10–5에는 이러한 파일이 요약되어 있습니다.
reverse, forward 또는 일반 데이터베이스를 변경한 경우 변경 내용을 적용하려면 imsimta reload 명령을 실행합니다. imta.cnf, mappings 파일, aliases, conversions 또는 option.dat 파일을 변경한 경우 이 변경 내용이 job_controller에 영향을 주지 않으면 imsimta restart smtp 뒤에 imsimta cnbuild 명령을 실행해야 합니다. dispatcher.cnf를 변경한 경우에는 imsimta restart dispatcher 명령을 실행해야 합니다. 컴파일된 구성에 포함된 구성 파일을 변경한 경우 이 변경 내용이 Job Controller에만 영향을 주고 SMTP 서버에는 영향을 주지 않으면 일반적으로 imsimta cnbuild 및 imsimta restart job_controller 명령을 실행해야 합니다.
이러한 명령에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference의 MTA Commands를 참조하십시오.
표 10–5 MTA 구성 파일
파일 |
설명 |
---|---|
별칭 파일(필수) |
디렉토리에 존재하지 않는 별칭을 구현합니다. msg_svr_base/config/aliases |
TCP/IP(SMTP) 채널 옵션 파일(SMTP 옵션 파일이라고도 부 름) |
채널 특정 옵션을 설정합니다. msg_svr_base/config/channel_option |
메일 본문 부분의 변환을 제어하기 위해 변환 채널에 사용됩니다. msg_svr_base/config/conversions |
|
디스패처 구성 파일(필수) |
디스패처를 위한 구성 파일입니다. msg_svr_base/config/dispatcher.cnf |
Job Controller에 사용되는 구성 파일입니다. /msg_svr_base/config/job_controller.cnf |
|
MTA 구성 파일(필수) |
채널 정의뿐만 아니라 주소 다시 쓰기 및 라우팅에 사용됩니다. /msg_svr_base/config/imta.cnf |
매핑 파일(필수) |
매핑 테이블의 저장소입니다. /msg_svr_base/ config/mappings |
전역 MTA 옵션 파일입니다. /msg_svr_base/config/option.dat |
|
조정 파일(필수) |
위치와 일부 조정 매개 변수를 지정하기 위한 파일입니다. /msg_svr_base/config/imta_tailor |
일반 조회 테이블(선택 사항) |
일반 조회 기능은 일반 데이터베이스와 동일합니다. 재로드 가능한 컴파일된 구성의 일부입니다. 위치와 일부 조정 매개 변수를 지정하기 위한 파일입니다. /msg_svr_base/config/general.txt |
정방향 조회 테이블(선택 사항) |
To: 주소에 대한 주소에 적용되지 정방향 데이터베이스와 동일하며 재로드 가능한 컴파일된 구성의 일부입니다. /msg_svr_base/config/forward.txt |
역방향 조회 테이블(선택 사항) |
From: 주소에 대한 주소에 적용되지 역방향 데이터베이스와 동일하며재로드 가능한 컴파일된 구성의 일부입니다. /msg_svr_base/config/reverse.txt |
별칭 파일 aliases는 디렉토리에서 설정되지 않은 별칭을 설정합니다. 특히 루트의 주소를 좋은 예로 들 수 있습니다. 이 파일에 설정된 별칭은 디렉토리에 동일한 별칭이 존재할 경우 무시됩니다. 별칭 및 aliases 파일에 대한 자세한 내용은 별칭을 참조하십시오.
aliases 파일을 변경한 후 MTA를 다시 시작하거나 imsimta reload 명령을 실행해야 합니다.
TCP/IP 채널 옵션 파일은 TCP/IP 채널의 다양한 특성을 제어합니다. 채널 옵션 파일은 MTA 구성 디렉토리에 저장하고 x_option으로 이름을 지정해야 합니다. 여기서 x는 채널의 이름입니다. 예를 들어, msg_svr_base/config/imta/tcp_local_option입니다. 자세한 내용은 SMTP 채널 옵션 구성을 참조하십시오. 모든 채널 옵션 키워드 및 구문에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.
변환 파일 conversions는 변환 채널이 MTA를 통과하는 메일에 대한 변환을 수행하는 방법을 지정합니다. MTA 트래픽의 모든 하위 집합을 변환하도록 선택할 수 있으며 임의의 프로그램 또는 명령 프로시저 집합을 사용하여 변환 처리를 수행할 수 있습니다. MTA는 각 본문 부분에 대한 적절한 변환을 선택하기 위해 변환 파일을 확인합니다.
이 파일의 구문에 대한 자세한 내용은 변환 채널을 참조하십시오.
디스패처 구성 파일 dispatcher.cnf는 디스패처 구성 정보를 지정합니다. 기본 구성 파일은 설치 시 작성되며 변경 없이 사용할 수 있습니다. 그러나 보안이나 성능상의 이유로 기본 구성 파일을 수정하려는 경우 dispatcher.cnf 파일을 편집하여 원하는 사항을 수정할 수 있습니다. 이에 대한 개념적 정보는 디스패처를 참조하십시오.
디스패처 구성 파일 형식은 다른 MTA 구성 파일의 형식과 비슷합니다. 옵션을 지정하는 행은 다음 형식을 가집니다.
option=value
option은 옵션의 이름이며 value는 옵션이 설정되는 문자열 또는 정수입니다. option이 정수 값을 가질 경우 b%v 형식의 표기법을 사용하여 기수를 지정할 수 있습니다. 여기에서 b는 기수 10으로 표현되는 기수이며 v는 기수 b로 표현되는 실제 값입니다. 이러한 옵션 지정은 다음 형식의 행을 사용하여 다음 옵션 설정이 적용되는 서비스에 해당하는 섹션으로 그룹화됩니다.
[SERVICE=service-name ]
service-name은 서비스의 이름입니다. 이러한 섹션 태그 앞에 표시되는 초기 옵션 지정은 모든 섹션에 전역적으로 적용됩니다.
다음은 샘플 디스패처 구성 파일(dispatcher.cnf)입니다.
! The first set of options, listed without a [SERVICE=xxx] ! header, are the default options that will be applied to all ! services. ! MIN_PROCS=0 MAX_PROCS=5 MIN_CONNS=5 MAX_CONNS=20 MAX_LIFE_TIME=86400 MAX_LIFE_CONNS=100 MAX_SHUTDOWN=2 ! ! Define the services available to Dispatcher ! [SERVICE=SMTP] PORT=25 IMAGE=msg_svr_base/lib/tcp_smtp_server LOGFILE=msg_svr_base/log/tcp_smtp_server.log |
이 파일의 매개 변수에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.
mappings 파일은 MTA가 입력 문자열을 출력 문자열로 매핑하는 방법을 정의합니다.
MTA의 구성 요소는 대부분 테이블 조회 지향 정보를 사용합니다. 일반적으로 이러한 종류의 테이블은 입력 문자열을 출력 문자열로 변환(즉, 매핑)하는 데 사용됩니다. 매핑 테이블이라고 부르는 이러한 테이블은 두 개의 열, 즉 가능한 입력 문자열을 제공하는 첫 번째(왼쪽) 열과 연관된 입력에 대한 결과 출력 문자열을 제공하는 두 번째(오른쪽) 열로 제공됩니다. 대부분의 MTA 데이터베이스는 이러한 매핑 테이블 유형의 인스턴스입니다. 그러나 MTA 데이터베이스 파일은 와일드카드 조회 기능을 제공하지 않으므로 와일드카드 일치를 위해 전체 데이터베이스를 스캔해야 한다는 점에서 본질적으로 비효율적입니다.
mappings 파일은 여러 매핑 테이블을 지원하기 위한 기능을 MTA에 제공합니다. 완전한 와일드카드 기능이 제공되는 것 외에도 다단계 및 반복 매핑 방법을 사용할 수 있습니다. 이 방식은 특히 항목 수가 많을 경우에 데이터베이스를 사용하는 것보다 컴퓨팅 작업이 많이 요구됩니다. 그러나 동일한 데이터베이스에서 대부분의 항목을 불필요하게 만드는 유연성이 있기 때문에 결과적으로 전체 오버헤드가 줄어들 수 있습니다.
imsimta test -mapping 명령을 사용하여 매핑 테이블을 테스트할 수 있습니다. mappings 파일 및 test -mapping 명령의 구문에 대한 자세한 내용은 매핑 파일 및 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.
mappings 파일을 변경한 후 MTA를 다시 시작하거나 imsimta reload 명령을 실행해야 합니다.
옵션 파일 option.dat는 채널 특정 옵션과 달리 전역 MAT 옵션을 지정합니다.
옵션 파일을 사용하면 MTA에 전체적으로 적용되는 다양한 매개 변수의 기본값을 무시할 수 있습니다. 특히 옵션 파일은 구성 및 별칭 파일을 읽어오는 다양한 테이블의 크기를 설정하는 데 사용됩니다. 또한 옵션 파일을 사용하여 MTA가 수락하는 메일의 크기를 제한하고 MTA 구성에 허용되는 채널 수를 지정하며 허용되는 다시 쓰기 규칙 수를 설정하는 등의 작업을 수행할 수 있습니다.
option.dat에서 #, ! 또는 ;으로 시작하는 행은 행이 계속된다는 것을 의미하는 후행 \가 바로 앞 행에 있는 경우에도 주석 행으로 처리됩니다. 이것은 이러한 문자를 포함할 수 있는 긴 옵션(특히 전달 옵션)에서 주의해야 한다는 것을 의미합니다.
일반적으로 # 또는 !로 시작하는 연속 행을 가지는 전달 옵션의 경우 이를 처리할 수 있는 안전하고 간단한 방법이 존재합니다.
옵션 파일의 구문에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.
조정 파일 imta_tailor는 다양한 MTA 구성 요소의 위치를 설정합니다. MTA가 제대로 작동하려면 imta_tailor 파일이 항상 msg_svr_base/config 디렉토리에 상주해야 합니다.
이 파일을 편집하여 특정 설치의 변경 사항을 반영할 수 있지만 이렇게 하려면 주의를 기울여야 합니다. 이 파일을 변경한 후에는 MTA를 다시 시작해야 합니다. MTA를 종료한 상태에서 변경을 수행하는 것이 더 바람직합니다.
꼭 필요한 경우가 아니면 이 파일을 편집해서는 안 됩니다.
이 파일에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.
Job Controller는 메일 전달을 위해 채널 작업을 작성 및 관리합니다이러한 채널 작업은 Job Controller 내의 처리 풀 안에서 실행됩니다. 풀은 채널 작업이 실행되는 “장소”로 생각할 수 있습니다. 풀은 작업 세트가 풀 외부의 작업과 자원을 놓고 경쟁하지 않고도 작동할 수 있는 컴퓨팅 영역을 제공합니다. (Job Controller의 개념과 채널 키워드 구성에 대한 자세한 내용은 Job Controller, 채널 실행 작업의 처리 풀 및 서비스 작업 제한을 참조하십시오.
Job Controller 파일 job_controller.cnf는 다음 채널 처리 정보를 지정합니다.
다양한 풀을 정의합니다.
모든 채널, 마스터 프로그램 이름 및 슬레이브 프로그램 이름(해당 사항이 있을 경우)을 지정합니다.
imta.cnf 파일에서 pool 키워드를 사용하여 job_controller.cnf에서 정의된 프로세스 풀의 이름을 지정할 수 있습니다. 예를 들어, 샘플 job_controller.cnf 파일의 다음 단편은 MY_POOL 풀을 정의합니다.
[POOL=MY_POOL] job_limit = 12
샘플 imta.cnf 파일의 다음 단편은 채널 블록에서 MY_POOL 풀을 지정합니다.
channel_x pool MY_POOL channel_x-daemon
기본 풀 구성과 관련된 매개 변수를 수정하거나 추가 풀을 추가하려는 경우 job_controller.cnf 파일을 편집한 다음 Job Controller를 중지했다가 다시 시작할 수 있습니다.
Job Controller 구성 파일의 첫 번째 풀은 풀 이름을 지정하지 않는 모든 요청에 사용됩니다. MTA 구성 파일(imta.cnf)에 정의된 MTA 채널은 pool 채널 키워드 뒤에 풀 이름을 사용하여 처리 요청을 특정 풀을 향하도록 할 수 있습니다. 풀 이름은 Job Controller 구성의 풀 이름과 일치해야 합니다. Job Controller가 요청된 풀 이름을 인식하지 않을 경우 요청은 무시됩니다.
초기 구성에서는 DEFAULT, LOCAL_POOL, IMS_POOL, SMTP_POOL 풀이 정의됩니다.
일반적으로 일부 채널의 처리를 다른 채널의 처리와 차별화하려는 경우 추가 풀 정의를 Job Controller 구성에 추가합니다. 또한 다른 특성을 가진 풀을 사용할 수도 있습니다. 예를 들어, 일부 채널에서 처리하도록 허용된 동시 요청의 개수를 제어해야 할 수 있습니다. 이렇게 하려면 작업 제한을 가진 새 풀을 만든 다음 pool 채널 키워드를 사용하여 이러한 채널을 더 적절한 새 풀로 향하게 합니다.
풀 정의 외에도 Job Controller 구성 파일은 각 채널에 대해 Job Controller가 요청을 처리하는 데 사용해야 하는 MTA 채널 및 명령 테이블을 포함합니다. 요청의 두가지 유형은 “마스터” 및 “슬레이브”로 한정됩니다. 일반적으로 채널 마스터 프로그램은 채널에 대한 MTA 메일 대기열에 저장된 메일이 있을 때 호출됩니다. 마스터 프로그램은 메일을 대기열에서 제외시킵니다.
슬레이브 프로그램은 채널을 폴하고 해당 채널에 대한 모든 인바운드 메일을 가져오기 위해 호출됩니다. 거의 모든 MTA 채널이 마스터 프로그램을 갖고 있지만 대부분은 경우 슬레이브 프로그램은 갖고 있지 않거나 불필요합니다. 예를 들어, TCP/IP를 통해 SMTP를 처리하는 채널은 슬레이브 프로그램을 사용하지 않는데 이는 임의 SMTP 서버에서 요청할 경우 네트워크 서비스인 SMTP 서버가 받는 SMTP 메일을 수신하기 때문입니다. SMTP 채널의 마스터 프로그램은 MTA의 SMTP 클라이언트입니다.
채널과 관련된 대상 시스템이 한 번에 하나의 메일만 처리할 수 있는 경우 작업 제한이 1인 새로운 유형의 풀을 만들어야 합니다.
[POOL=single_job] job_limit=1
이와 달리 대상 시스템에 충분한 병행성이 있을 경우 작업 제한을 더 높은 값으로 설정할 수 있습니다.
예 10–1은 샘플 Job Controller 구성 파일을 보여 줍니다. 사용 가능한 옵션은 표 10–6에 나와 있습니다.
!MTA Job Controller configuration file ! !Global defaults tcp_port=27442 (1) secret=never mind slave_command=NULL (2) max_life_age=3600 (3) ! ! !Pool definitions ! [POOL=DEFAULT] (4) job_limit=10 (5) ! [POOL=LOCAL_POOL] job_limit=10 ! [POOL=IMS_POOL] job_limit=1 ! [POOL=SMTP_POOL] job_limit=1 ! !Channel definitions ! ! [CHANNEL=l] (6) master_command=msg_svr_base/lib/l_master ! [CHANNEL=ims-ms] master_command=msg_svr_base/lib/ims_master ! [CHANNEL=tcp_*] (7) anon_host=0 master_command=msg_svr_base/lib/tcp_smtp_client |
위 예의 괄호로 묶인 굵은체의 숫자가 표시된 주요 항목은 다음과 같습니다.
이 전역 옵션은 Job Controller가 요청을 수신하는 TCP 포트 번호를 정의합니다.
후속 [CHANNEL] 섹션에 대한 기본 MAX_LIFE_AGE를 설정합니다.
이 [POOL] 섹션은 DEFAULT라는 풀을 정의합니다.
이 [CHANNEL] 섹션은 l이라는 UNIX 로컬 채널에 적용됩니다. 이 섹션에 필요한 유일한 정의는 Job Controller가 이 채널을 실행하기 위해 사용하는 master_command입니다. 채널 이름에 와일드카드가 없기 때문에 채널은 정확하게 일치해야 합니다.
이 [CHANNEL] 섹션은 이름이 tcp_*로 시작하는 모든 채널에 적용됩니다. 이 채널 이름은 와일드카드를 포함하므로 이름이 tcp_로 시작하는 모든 채널과 일치합니다.
Job Controller는 메일 전달을 위해 채널 작업을 작성 및 관리합니다이러한 채널 작업은 Job Controller 내의 처리 풀 안에서 실행됩니다. 풀은 채널 작업이 실행되는 “장소”로 생각할 수 있습니다. 풀은 작업 세트가 풀 외부의 작업과 자원을 놓고 경쟁하지 않고도 작동할 수 있는 컴퓨팅 영역을 제공합니다. job_controller에서 설정된 작업 제한이 해당 풀에만 적용된다는 점을 유의하십시오. 따라서, 예를 들어 job_limit가 10으로 설정된 SMTP_POOL을 정의할 경우 특정 시점에 10개의 tcp_smtp 클라이언트 프로세스만 해당 풀에서 실행될 수 있습니다.
경우에 따라서는 추가 tcp_* 채널을 만드는 것이 필요할 수 있습니다(예: 특히 느린 메일 사이트를 위한 tcp 채널). 이러한 채널은 다른 풀에서 실행하는 것이 좋습니다. 이는 예를 들어, 10개의 다른 tcp_* 채널을 만들어 SMTP_POOL에서 모두 실행할 경우 특정 시점에 각 tcp_* 채널에 대해 하나의 tcp_smtp 클라이언트만 실행될 수 있기 때문입니다(job_limit가 10인 SMTP_POOL을 정의한 경우에 해당하며 메일이 모든 tcp_* 채널을 대상으로 하는지 여부에 따라 달라짐). 시스템의 로드량이 많고 다양한 tcp_* 채널로 나가길 기다리는 메일을 모든 대기열이 갖고 있다고 가정하면 이는 비효율적입니다. 이러한 경우에는 경합이 발생하지 않도록 추가 tcp_* 채널에 대한 추가 풀을 정의할 수 있습니다.
예를 들어, 다음 tcp_* 채널을 설정한다고 가정해 봅니다.
tcp_yahoo smtp mx pool yahoo_pool keyword keyword keyword tcp-yahoo-daemon tcp_aol smtp mx keyword keyword keyword pool aol_pool tcp-aol-daemon tcp_hotmail smtp mx pool hotmail_pool keyword keyword keyword tcp-hotmail-daemon ... tcp_sun smtp mx pool sun_pool keyword keyword keyword tcp-sun-daemon |
각각의 새 채널에 대해 10개의 tcp_smtp_client 프로세스를 추가하기 위해 job_controller.cnf 파일에 다음을 추가할 수 있습니다.
[POOL=yahoo_pool] job_limit=10 [POOL=aol_pool] job_limit=10 [POOL=hotmail_pool] job_limit=10 ... [POOL=sun_pool] job_limit=10 |
풀에 대한 자세한 내용은 채널 실행 작업의 처리 풀을 참조하십시오. Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.
표 10–6 Job Controller 구성 파일 옵션