26.IPv6でメール送受信してみよう

IPv6でメールサーバを構築する方法と手順を紹介する。
まず、事前にIPv6プロトコルをインストールしておく必要がある。Windows Server 2008 / Windows Server 2008 R2 / Windows 2012 / Windows 2012 R2 では、最初からIPv6プロトコルがインストールされているので、無効にしていない限り、そのまま使うことができる。


netsh コマンドで Interface 番号を確認

IPv6用の設定コマンドとして提供されているのが、netsh コマンドである。他のコンピュータとの接続を確認してみよう。
他のコンピュータとの接続はルートは通常、"ローカル エリア接続"であるが、サービスへの接続は、この接続の Interface 番号を"%4"のように指定する必要があるので、netsh コマンドで Interface 番号が表示されるのを確認しておく。

netsh interface ipv6 show address <CR>
アクティブ状態を照会しています...

Interface 4: ローカル エリア接続

Addr Type DAD State  Valid Life  Pref. Life  Address
--------- ---------- ------------ ------------ -----------------------------
Link    Preferred  infinite   infinite   fe80::212:3fff:fe47:dbd4


さらに、ネットワーク内のコンピュータと自身のコンピュータで接続できるIPv6アドレスは、上の通り、fe80::212:3fff:fe47:dbd4 となっていることがわかるのでメモしておこう。

ここで仮に、ネットワーク上の他のコンピュータのipv6アドレスが fe80::210:5aff:fe85:a3d1 として、pingコマンドで応答するか確認してみることにしよう。
なお、IPv6アドレスのさらに末尾に付け加えて入力している"%4"だが、これは自身のコンピュータの Interface 番号を指定して接続ルートを規定している部分である。メールサーバーへの設定は、この"%<interface 番号>"を含めたIPアドレスで設定すればよいわけである。

ping fe80::210:5aff:fe85:a3d1%4 <CR>

Pinging fe80::210:5aff:fe85:a3d1%4 from fe80::212:3fff:fe47:dbd4%4 with 32 bytes of data:

Reply from fe80::210:5aff:fe85:a3d1%4: time<1ms
Reply from fe80::210:5aff:fe85:a3d1%4: time<1ms
Reply from fe80::210:5aff:fe85:a3d1%4: time<1ms
Reply from fe80::210:5aff:fe85:a3d1%4: time<1ms

Ping statistics for fe80::210:5aff:fe85:a3d1%4:
  Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
  Minimum = 0ms, Maximum = 0ms, Average = 0ms


きちんと応答があったら次に進もう。

IPv6でメール送受信ができるようにメールサーバーを設定

[E-Post Mail Control]の[サービス制御]タブを選択し、各サービス(EPSTRS,EPSTDS,EPSTPOP3S,EPSTIMAP4S)を事前に停止する。

次に、各サービス(EPSTRS,EPSTPOP3S,EPSTIMAP4S)の「詳細」ボタンをクリックし、接続IPアドレスを自身に割り当てられた fe80::210:5aff:fe85:a3d1%5 に設定しなおして、[OK]ボタンをクリックして閉じる。





次に、[ドメイン管理]タブを選択、IPv6も使用可能なように [IP version]を "IPv4/6" に設定する。(デュアルスタックでなくてよいなら "IPv6" に設定)

次に、[運用中のドメイン一覧]から test-sample.jp を選択し、[詳細]ボタンをクリックする。
[詳細]ダイアログボックスが表示されるので、各サービス(SMTP/POP3/IMAP4)の接続IPアドレスを自身に割り当てられた "fe80::210:5aff:fe85:a3d1" に設定し直して、最後に[OK]ボタンをクリックして閉じる。

設定が完了したら、[サービス制御]タブを選択し、各サービス(EPSTRS,EPSTDS,EPSTPOP3S,EPSTIMAP4S)を開始させる。
サービスが開始されたら、telnet コマンドを使って、IPv6のアドレスを利用してメール送信(SMTP)ができるか実際に行ってみよう。なお、下の例ではSMTP認証を利用しているが、実際にはツールの助けを得なければエンコードされたパスワードを作り出すのは難しいので、SMTP認証なしの設定で試すとよいだろう。

telnet fe80::210:5aff:fe85:a3d1%4 smtp<CR>       ←自分で入力する内容
220 test-sample.jp E-POST ESMTP Receiver (4.xx)...... →SMTPサービスが応答を返す
EHLO<CR>          ←拡張SMTPであることを宣言
250-sun.test-sample.jp Hello [fe80::210:5aff:fe85:a3d1], pleased to meet you
250 AUTH PLAIN LOGIN CRAM-MD5   →SMTP認証可能であることを回答
AUTH PLAIN AFVzZXIxQHRlc3Qtc2FtcGxlLmpwAHVzZXIxMjM0
                          ←PLAINでアカウントとパスワード送信
235 Authentication successful.   →SMTP認証OK
mail from: <user1@test-sample.jp><CR>  ← user1@test-sample.jp から
250 <user1@test-sample.jp>... Sender ok. →送信者OK
rcpt to: <user1@test-sample.jp><CR>    ← user1@test-sample.jp あてへ
250 <user1@test-sample.jp>... Recipient ok. →送信先OK
data<CR>                ←ヘッダと本文の書き始め
354 Start mail input;id <BXXXXXXXXXX> end with <CRLF>.<CRLF> 
subject: test<CR>                 ←ヘッダ行
from: <user1@test-sample.jp><CR>    :
to: <user1@test-sample.jp><CR>      :
<CR>                    ←ヘッダと本文の区切り
auto forward test.<CR>      ←本文
.<CR>                   ←データ終わりのピリオド
250 Message received ok.     →メールを受け付けたことを示す
quit<CR>                 ←接続終了
221 test-sample.jp closing connection. 


次に、同様の手順で telnet コマンドを使って、IPv6のアドレスを利用してメール受信(POP3)を行ってみる。

telnet fe80::210:5aff:fe85:a3d1%4 pop3<CR>       ←自分で入力する内容
+OK E-POST POP3 Server ......                   →POP3サービスが応答を返す
USER user1@test-sample.jp<CR>      ←取り出したいアカウント名
+OK Password required for user1@test-sample.jp
PASS pass1234<CR>                ←POP3パスワード
+OK user1@test-sample.jp's mailbox has 2 message(s) ... →メールボックスオープンメッセージ
retr 1<CR>       ←1番目のメッセージ
   :
.
retr 2<CR>       ←2番目のメッセージ
   :
.
QUIT<CR>        ←接続終了
+OK test-sample.jp POP3 server signing off (2 messages left)


最後に、同様の手順で telnet コマンドを使って、IPv6のアドレスを利用してメール受信(IMAP4)を行う。

telnet fe80::210:5aff:fe85:a3d1%4 imap4<CR>     ←自分で入力する内容
* OK E-POST IMAP4rev1 Server....               →IMAP4サービスが応答を返す
. LOGIN user1@test-sample.jp user1234<CR>      ←取り出したいアカウント名
. OK LOGIN completed            →メールボックスオープンメッセージ
. SELECT INBOX<CR>
* 2 EXISTS
* 2 RECENT
* OK [UNSEEN 2] Message 2 is first unseen
* OK [UIDVALIDITY XXXXXXXXX] UIDs valid
* OK [UIDNEXT XXXX] Predicted next UID
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
. OK [READ-WRITE] SELECT completed
. FETCH 1:2 rfc822<CR>      ←1、2番目のメッセージをまとめて取り出す
   :
   :
. OK FETCH completed
. LOGOUT<CR>             ←接続終了
* BYE E-POST IMAP4rev1 Server terminating connection
. OK LOGOUT completed



書籍『E-Post Mail Server完全ガイド』ご案内