KITA Eng.

北海道でサーバー技術者として歩み出したひとが綴るblog。

Conoha VPSでipv6利用時に気を付けたいPostfixの設定

ConohaのVPSは、ipv6が標準で、1個+16個ついてきて楽し気です。 が、思わずはまることもあります。

はまったこと

Postfixipv6を有効にしていると、Gmailなんかにはipv6でつなぎに行くのですが、 その時に以下のようなエラーが記録されて送信できないことがあります。

Mar  8 06:25:09 conoha-vps postfix/cleanup[31246]: B58C1526A: message-id=<20180307212509.B1E605846@conoha-vps>
Mar  8 06:25:09 conoha-vps postfix/qmgr[1703]: B58C1526A: from=<>, size=7598, nrcpt=1 (queue active)
Mar  8 06:25:09 conoha-vps postfix/local[31254]: B1E605846: to=<root@conoha-vps>, relay=local, delay=0.03, delays=0.01/0/0/0.01, dsn=2.0.0, status=sent (forwarded as B58C1526A)
Mar  8 06:25:11 conoha-vps postfix/smtp[31255]: B58C1526A: to=<xxxxxxxxxxx@gmail.com>, orig_to=<root@conoha-vps>, relay=gmail-smtp-in.l.google.com[2404:6800:4008:c01::1b]:25, delay=1.9, delays=0.01/0/1.2/0.7, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[2404:6800:4008:c01::1b] said: 550-5.7.1 [2400:8500:1302:851:a150:95:xxx:xxx] The IP address sending this 550-5.7.1 message does not have a PTR record setup. As a policy, Gmail does not 550-5.7.1 accept messages from IPs with missing PTR records. Please visit 550-5.7.1  https://support.google.com/mail/answer/81126#authentication for more 550 5.7.1 information. 13-v6si13594494ple.157 - gsmtp (in reply to end of DATA command))
Mar  8 06:25:11 conoha-vps postfix/qmgr[1703]: B58C1526A: removed

どうやら、ipv6のときは、IPの逆引き結果が登録されていて、なおかつ正引きと一致する必要があるようです。 標準のメインとなる1個のものに対しては一致するように登録していたのですが、+16個の方がそうではなかったので、ダメだったようです。

解決策

NICへのIP割り当てが以下のようになっていて、メインの2400:8500:1302:851:150:95:xxx:xxxに対して適当な逆引きが設定されている(正引きと一致する)場合。

username@conoha-vps:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 150.95.xxx.xxx/23 brd 150.95.xxx.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxxf/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxxe/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxxd/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxxc/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxxb/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxxa/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx9/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx8/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx7/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx6/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx5/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx4/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx3/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx2/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx1/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:a150:95:xxx:xxx0/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2400:8500:1302:851:150:95:xxx:xxx/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::1:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

以下のように、/etc/postfix/main.cfに追記してあげることで、該当のipv6アドレスからGmailサーバーなどipv6対応のメールサーバーにつなぎに行ってくれます。

smtp_bind_address6 = 2400:8500:1302:851:150:95:xxx:xxx