Sun Java System Messaging Server 6 2005Q4 관리 설명서

LMTP 전달 구성

LMTP 전달 기법은 릴레이 시스템과 백엔드 저장소 모두에서 구성해야 합니다. 릴레이 시스템에서는 저장소에 전달할 메일이 LMTP 채널에 전달되도록 DELIVERY_OPTIONS MTA 옵션(option.dat에서)을 변경해야 합니다. 백엔드 저장소는 디스패처를 사용하여 구성해야 하지만 Job Controller는 필요하지 않습니다. 디스패처는 LMTP 서버를 실행하도록 구성해야 합니다.

일반적인 다중 계층 배포에서는 서로 다른 백엔드 메시지 저장소 시스템에 사용자가 제공됩니다. 이 백엔드 시스템 중 하나 이상에 LMTP가 설정되지 않을 수 있으므로 프런트엔드 릴레이에서는 LMTP를 인식하는 저장소 시스템을 알고 있어야 합니다. 이는 LMTP 전달을 수락하도록 구성된 메시지 저장소를 명시적으로 지정하는 일반 데이터베이스 기능을사용하면 가능합니다.

ProcedureLMTP를 사용하는 인바운드 MTA 중계 구성

LMTP를 사용하도록 인바운드 MTA 릴레이를 구성하려면 다음을 수행합니다.

단계
  1. imta.cnf 파일을 수정하여 LMTP 다시 쓰기 규칙을 다음과 같이 변경합니다.


    ! lmtp
    .lmtp   $E$F$U%$H.lmtp@lmtpcs-daemon
    .lmtp   $B$F$U%$H@$H@lmtpcs-daemon
    !
    ! lmtp native
    .lmtpn  $E$F$U%$H.lmtpn@lmtpcn-daemon
    .lmtpn  $B$F$U%$H@$H@lmtpcn-daemon
    !
  2. DELIVERY_OPTIONS 메일함을 다음과 같이 설정합니다.


    #*mailbox=@$X.LMTP:$M%$\$2I$_+$2S@lmtpcs-daemon
  3. 원시 DELIVERY_OPTIONS 절을 다음과 같이 설정합니다.


    #*native=@$X.LMTPN:$M+$2S@native-daemon
  4. multigate connectcanonical 채널 키워드를 각 tcp_lmtp* 채널 블록에 추가합니다.

  5. 다음 채널 키워드를 tcp_lmtpcs 채널에 추가합니다.


    fileinto @$4O:$U+$S@$D

    위의 키워드에서 'O'는 숫자 0이 아닌 대문자 O입니다.

  6. 받는 MTA 릴레이 구성 설정은 다음과 같아야 합니다.

    DELIVERY_OPTIONS에 대한 option.dat 항목은 다음과 같아야 합니다.


    !------------------------------------------
    ! Modified DELIVERY_OPTIONS to activate LMTP 
    ! delivery from a frontend to the backend store
    !--------------------------------------------
    !
    DELIVERY_OPTIONS=\
        #*mailbox=@$X.LMTP:$M%$\$2I$_+$2S@lmtpcs-daemon,\
        #&members=*,\
        #*native=@$X.LMTPN:$M+$2S@native-daemon,\
        #*unix=@$X.LMTPN:$M,\
        #*file=@$X.LMTPN:+$F,\
        #&@members_offline=*,\
        #/hold=@hold-daemon:$A,\
        #program=$M%$P@pipe-daemon,\
        #forward=**,\
        #*^!autoreply=$M+$D@bitbucket
    !

    변경 이후 수정된 imta.cnf 다시 쓰기 규칙은 다음과 같아야 합니다.


    ! lmtp
    .lmtp   $E$F$U%$H.lmtp@lmtpcs-daemon
    .lmtp   $B$F$U%$H@$H@lmtpcs-daemon
    !
    ! lmtp native
    .lmtpn  $E$F$U%$H.lmtpn@lmtpcn-daemon
    .lmtpn  $B$F$U%$H@$H@lmtpcn-daemon
    !

    변경된 채널 블록은 다음과 같아야 합니다.


    !
    ! tcp_lmtpcs (LMTP client - store)
    tcp_lmtpcs defragment lmtp  multigate connectcanonical \
       fileinto @$4O:$U+$S@$D port 225 nodns single_sys \
       subdirs 20 maxjobs 7 pool SMTP_POOL dequeue_removeroute
    lmtpcs-daemon
    
    !
    ! tcp_lmtpcn (LMTP client - native)
    tcp_lmtpcn defragment lmtp multigate connectcanonical port 226 \
       nodns single_sys subdirs 20 maxjobs 7 pool SMTP_POOL 
       dequeue_removeroute
    lmtpcn-daemon

LMTP를 사용하고 MTA 없이 백엔드 저장소 구성 방법

LMTP를 통해 메일을 받는 경우 백엔드 저장소에 MTA가 필요하지 않습니다. 이것은 Job Controller가 없고 MTA와 연결된 주소 다시 쓰기 방법이 없음을 의미합니다. 디스패처와 단순 MTA 구성은 여전히 필요합니다. 특히, MTA 구성의 유일한 중요 부분을 구성하는 dispatcher.cnf 파일과 mappings 파일이 필요합니다.

dispatcher.cnf 파일에는 다음이 포함되어 있어야 합니다.


! rfc 2033 LMTP server - store 
!
[SERVICE=LMTPSS]
PORT=225
IMAGE=IMTA_BIN:tcp_lmtp_server
LOGFILE=IMTA_LOG:tcp_lmtpss_server.log
PARAMETER=CHANNEL=tcp_lmtpss
STACKSIZE=2048000
! Uncomment the following line and set INTERFACE_ADDRESS to an 
! appropriate host IP (dotted quad) if the dispatcher needs to 
! listen on a specific interface (e.g. in a HA environment).
! INTERFACE_ADDRESS=!
! rfc 2033 LMTP server - native
!
[SERVICE=LMTPSN]
PORT=226
IMAGE=IMTA_BIN:tcp_lmtpn_server
LOGFILE=IMTA_LOG:tcp_lmtpsn_server.log
PARAMETER=CHANNEL=tcp_lmtpsn
STACKSIZE=2048000
! Uncomment the following line and set INTERFACE_ADDRESS to an 
! appropriate host IP (dotted quad) if the dispatcher needs to 
!listen on a specific interface (e.g. in a HA environment).
!INTERFACE_ADDRESS=
         

기본적으로 dispatcher.cnf 파일의 LMTP 서비스는 주석 처리됩니다. LMTP가 작동하려면 이러한 주석 처리를 제거해야 합니다.

MAX_CONNS, MAX_PROCS, MAX_LIFE_CONNSMAX_LIFE_TIME의 일반 디스패처 옵션을 지정할 수 있습니다. 그럴 경우 해당 하드웨어에 맞게 설정해야 합니다.

PORT_ACCESS 매핑이 중요합니다. 백엔드 서버에 대한 LMTP 구현은 Sun Java System Messaging Server 릴레이 시스템과 백엔드 저장소 사이의 개인 프로토콜로 사용됩니다. PORT_ACCESS 매핑을 사용하여 그런 릴레이만 이러한 서비스에 연결될 수 있도록 확인해야 합니다. 매핑 파일의 모양은 다음과 같습니다.


PORT_ACCESS

  TCP|*|225|1.2.3.4|* $Y
  TCP|*|226|1.2.3.4|* $Y
  TCP|*|225|1.2.3.5|* $Y
  TCP|*|226|1.2.3.5|* $Y
  TCP|*|*|*|*   $N500$ Do$ not$ connect$ to$ this$ machine
         

PORT_ACCESS 매핑 테이블에 지정된 샘플 IP 주소를 백엔드 저장소에 연결되는 네트워크에 있는 릴레이 시스템의 IP 주소로 바꾸어야 합니다.

imta.cnf 파일이 있어야 하지만 이것만으로 완벽한 구성이 이뤄지지는 않습니다. 최소 imta.cnf 파일은 다음 채널 정의로 구성됩니다.

! tcp_lmtpss (LMTP server - store)
tcp_lmtpss lmtp 
tcp_lmtpss-daemon

!
! tcp_lmtpsn (LMTP server - native)
tcp_lmtpsn lmtp 
tcp_lmtpsn-daemon

기본적으로 LMTP 채널 정의는 주석 처리됩니다. LMTP를 작동하려면 LMTP의 주석 처리를 제거해야 합니다.

LMTP를 통해 메일 저장소와 전체 MTA를 갖는 백엔드 시스템에 메일을 보내도록 중계 구성

백엔드 저장소에 MTA의 전체 기능을 제공하면서 LMTP를 사용하여 로드를 절약해야 하는 경우가 있습니다. 예를 들어, 백엔드 저장소에서 프로그램을 전달할 수 있습니다. 이 경우에는 위의 LMTP를 사용하는 인바운드 MTA 중계 구성에서 설명한 대로 릴레이를 구성해야 합니다.

전체 MTA가 있는 백엔드 메일 저장소 시스템의 LMTP 구성

백엔드 저장소 메시징 시스템 구성은 LMTP를 사용하여 저장소에 직접 전달하는 구성에서 dispatcher.cnf 파일의 끝에 다음 행이 추가되는 점만 다릅니다.


! rfc 2033 LMTP server - store
![SERVICE=LMTPSS]
PORT=225
IMAGE=IMTA_BIN:tcp_lmtp_server
LOGFILE=IMTA_LOG:tcp_lmtpss_server.log
PARAMETER=CHANNEL=tcp_lmtpss
STACKSIZE=2048000
! Uncomment the following line and set INTERFACE_ADDRESS to an 
! appropriate host IP (dotted quad) if the dispatcher needs to 
! listen on a specific interface (e.g. in a HA environment).
!INTERFACE_ADDRESS=
!
! rfc 2033 LMTP server - native
!
[SERVICE=LMTPSN]
PORT=226
IMAGE=IMTA_BIN:tcp_lmtpn_server
LOGFILE=IMTA_LOG:tcp_lmtpsn_server.log
PARAMETER=CHANNEL=tcp_lmtpsn
STACKSIZE=2048000
! Uncomment the following line and set INTERFACE_ADDRESS to an 
! appropriate host IP (dotted quad) if the dispatcher needs to 
! listen on a specific! interface (e.g. in a HA environment).
!INTERFACE_ADDRESS=
!
         

기본적으로 dispatcher.cnf 파일의 LMTP 서비스는 주석 처리됩니다. LMTP가 작동하려면 이러한 주석 처리를 제거해야 합니다. 또한 LMTP 포트 번호는 예일 뿐이므로 사용자가 선택한 임의의 번호가 될 수 있습니다.

백엔드 저장소를 LMTP에 대해서만 구성할 경우에는 위에서 설명한 dispatcher.cnf 파일과 동일합니다. 또한, 매핑 파일에는 LMTP 전용 백엔드 저장소에 대해 설명한 PORT_ACCESS 매핑이 필요합니다.