ipv6とtlsでトラブル発覚

Sakura VPSにおいてあるマシンから、自ドメイン宛にメールを送信した際、
Sakura側のmtaとして使っているexam4に以下のログが残っていたので調査
(送信後,5分ほど経過してから受信していたので、何かおかしいんだろうなと
思ってはいたものの放置してた。)

2017-10-10 08:31:05 1e1hQz-000487-Cd H=mta [mta ipv6 addr] TLS error on connection (gnutls_handshake): timed out

結果として,根本的な原因は不明なままだが,
mtaへipv4で接続すれば,見た所はエラーは解消した為,
dnsのエントリからmtaのAAAAレコードを削除することで対処した。

追記:
自ドメイン側でipv6 Path MTU Blackholeを発生させていたことが原因でした.
ルータの設定を見直して対処完了です。恥ずかしい x)

以下は、調査履歴と泣き言。

tlsのハンドシェイクがタイムアウトしているみたいなので
調査のため、vpsにgnutls-binパッケージをいれて自ドメインのmtaに対して、
下記のコマンドを実行してstarttlsの動作確認
自ドメインのmtaにもtls関係のログを出力するようにしておく.

> gnutls-bin -s -p 25 (自ドメインのmta)
ehlo vps
starttls
(ctrl+d)

ハンドシェイクが通っているなら、ずらずら証明書情報が流れば、とりあえずOKとする.

条件:
vps -> mta ( ipv6でのアドレス解決 )
結果:
ctrl+dのあと、何も反応なくtimeoutで終了
mta側のログには writeした後のreadで何も返ってきていない感じ.

vpsの出力
*** Fatal error: The operation timed out
*** Handshake has failed

mta側のログ
Oct 10 10:02:18 mta postfix/smtpd[9203]: setting up TLS connection from vps[vps ipv6 addr]
Oct 10 10:02:18 mta postfix/smtpd[9203]: vps[vps ipv6 addr]: TLS cipher list “aNULL:-aNULL:HIGH:MEDIUM:+RC4:@STRENGTH”
Oct 10 10:02:18 mta postfix/smtpd[9203]: SSL_accept:before SSL initialization
Oct 10 10:02:19 mta postfix/smtpd[9203]: SSL_accept:before SSL initialization
Oct 10 10:02:19 mta postfix/smtpd[9203]: SSL_accept:SSLv3/TLS read client hello
Oct 10 10:02:19 mta postfix/smtpd[9203]: SSL_accept:SSLv3/TLS write server hello
Oct 10 10:02:19 mta postfix/smtpd[9203]: SSL_accept:SSLv3/TLS write certificate
Oct 10 10:02:19 mta postfix/smtpd[9203]: SSL_accept:SSLv3/TLS write key exchange
Oct 10 10:02:19 mta postfix/smtpd[9203]: SSL_accept:SSLv3/TLS write server done
Oct 10 10:02:59 mta postfix/smtpd[9203]: SSL3 alert read:fatal:internal error
Oct 10 10:02:59 mta postfix/smtpd[9203]: SSL_accept:error in SSLv3/TLS write server done
Oct 10 10:02:59 mta postfix/smtpd[9203]: SSL_accept error from vps[vps ipv6 addr]: -1
Oct 10 10:02:59 mta postfix/smtpd[9203]: warning: TLS library problem: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:../ssl/record/rec_layer_s3.c:1399:SSL alert number 80:
Oct 10 10:02:59 mta postfix/smtpd[9203]: lost connection after STARTTLS from vps[vps ipv6 addr]
Oct 10 10:02:59 mta postfix/smtpd[9203]: disconnect from vps[vps ipv6 addr] ehlo=1 starttls=0/1 commands=1/2

意味不明 :p

mtaと同一ネットワーク上のマシンでテスト( ipv6でのアドレス解決 )
条件:
同一LAN上host -> mta ( ipv6でのアドレス解決 )
結果:
証明書情報が流れて、データ待機 OK

ネットワークの問題かなと考えて、mtaにipv4で問い合わせするために、vps側の/etc/hosts に直接アドレスを書いてテスト
条件:
vps->mta ( ipv4でのアドレス解決 )
結果:
証明書情報が流れて、データ待機 OK

ipv4だとちゃんと繋がるようで・・・mta <-> vps 間の接続の問題と考えたけど、不明なので
dnsからmtaのipv6設定を外して様子見をすることにする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です