into the void

ソフトウェアに関する雑多な調査日記

さくらVPSにIPv6アドレスをつけてPCからアクセスしてみる

さくらVPSのサーバにIPv6アドレスをつけて、自宅のPC(Mac)からアクセスしてみる。
まずは自宅ルータにて、普段はオフにしているIPv6設定をオンにする。
Macのターミルでifconfig en0して、IPv6のグローバルアドレスが付いていることを確認する。
IPv6 Ready なサイトにSafariからアクセスすると、確かにIPv6でのインターネット通信ができるようになっていることがわかる。

IPv6 test - IPv6/4 connectivity and speed test
https://ipv6.google.com/?gws_rd=ssl

次にさくらVPSにインストールしたUbuntuIPv6アドレスを設定する。IPv6アドレスは、さくらのVPSコントロールパネルに表示されているものを使う。
IPv6アドレスの設定方法|さくらインターネット公式サポートサイト

設定したら一度再起動して、ifconfigやip -6 routeコマンドでIPv6のアドレスが付いていることと、ルーティング設定がされていることを確認する。

次に、MacのターミナルからIPv6アドレスを使ってサーバに接続してみる。
まずはping6で。次にsshで。
sshは特にIPv6であることを指定しなくても、パラメータとして渡すアドレスをIPv4からIPv6に変えるだけで繋がる。

サーバ側でnetstatをみて、Macから22番ポートにTCP6での接続があることが確認できる。

$ netstat -an | grep tcp6
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 XXXX:XXXX:XXXX:XXXX:XXXX:22 XXXX:XXXX:XXXX:XXXX:XXXX ESTABLISHED

サーバ側にWebサーバを入れてアクセスしてみる。Webサーバはlighttpdを使うことにした。
apt-get install lighttpdでインストールした後、lighttpd.confを編集してIPv6でのリスンができるようにする。ついでに、アクセスログもとれるように変更しておく。

こんな感じ。
追加したのは、server.modulesのところのmode_accesslogと、accesslog.filenameとinclude_shellのipv6の項目のコメントアウトを削除した3点。

# cat /etc/lighttpd/lighttpd.conf 
server.modules = (
	"mod_access",
	"mod_alias",
	"mod_compress",
 	"mod_redirect",
#       "mod_rewrite",
	"mod_accesslog"
)

server.document-root        = "/var/www"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80

accesslog.filename	= "/var/log/lighttpd/access.log"



index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )

# default listening port for IPv6 falls back to the IPv4 port
## Use ipv6 if available
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

今度はサーバからMacにping6を打ってみる。ルータでフィルタされているようで届かない。
ルータの設定を変更して、サーバのIPv6アドレスからの通信を許可してみると、届くようになった。