戸隠山(鏡池)


Date/Time: 2014:05:18 12:00:40
Camera: RICOH
Model: GR DIGITAL 4
Exporsure Time: 1/500
FNumber: 4.5
Aperture Value: 4.3
Focal Length: 6.0

Close

y2blog » さくらVPSでIPv6の設定をしてみた

1

08

2014

さくらVPSでIPv6の設定をしてみた

さくらVPSがIPv6対応になったという訳で...


 

さくらインターネットのVPSサービスの一部で2013年10月31日からIPv6対応が始められたようなので、とりあえずゲストOSをIPv6に対応させてみた.ゲストOS(CentOS6.5)のIPv6の設定でほんの少し手間取ったが、さくらのVPSサービスはIPv6対応サーバ構築のテスト・練習環境としては最適な環境だろう.


「さくらのVPS」の一部リージョンにて「IPv6」対応開始

  

この案内を見る限り、まだ全てのVPSサービスがIPv6に対応している訳ではないようだが、とりあえず私がテスト用に使っているVPSサービスがIPv6対応になっているとの事なので、早速ゲストOSをIPv6対応にしてみた.


まだ世間ではIPv6に対応しているサイトは少ないが、将来(そんなに先の話ではないが)の備えとしてIPv6対応の練習をしておきましょう.とは言っても本当にIPv6の時代は来るのだろうか? 


IPv6対応にはサーバだけではなくLANなどのネットワーク環境も含めてトータルにサポートしなければならないので、IPv6への道のりは相当遠いというのが私の正直な感想だ.一般の企業や家庭でネットワークがIPv6に対応しているのは少数派でしょうね.大手の大部分のISPはIPv6対応を済ませているけど、一般の会社や組織内のLANではIPv6で接続できるような環境は希でしょうね.私の所属する某組織もデフォルトではIPv6で外に出られないみたいだし... (eduroam環境ではIPv6でそのまま出られるみたい)
この分だと多分世の中はIPv6には移行しない(できない)のではないかな...

今回の実験環境


 

 

・ VPS 2G HDDプラン(月額1,480円 メモリ:2GB、ディスク容量:200GB、仮想3コア) 石狩リージョン

・ゲストOS : CentOS 6 x86_64 (予め用意されているCentOS6イメージを利用) カーネル: 2.6.32-431.3.1.el6.x86_64

  

CentOS6 をIPv6に対応させる際に、ネット上の情報などを参考にやってみたがデフォルトルートの設定が上手く行かずちょっと手間取ってしまった.後でさくらインターネットのVPSに関するサポート情報を見たら設定で躓いた部分が懇切丁寧に記載されていたので、これからIPv6に挑戦しようとする方は先ず始めにこのサポート情報を見て置くべきだった.


IPv6アドレスの設定方法 http://support.sakura.ad.jp/manual/vps/mainte/ipv6-address.html

 

今回IPv6のネットワーク設定で躓いた箇所


CentOS6(x86_64)では、”eth0″ をIPv4とIPv6のデュアルスタック構成にする際に、”/etc/sysconfig/network” または “/etc/sysconfig/network-scripts/ifcfg-eth0” 設定ファイルに


IPV6_DEFAULTDEV=”eth0″


という記述を入れて置かないとIPv6のデフォルトルートがきちんと設定されないようだ.当初この事に気付かずにデフォルトルートが自動で設定されなかったので、手動でIPv6のデフォルトルートを設定していたが、上記の設定をきちんと記述することで、ネットワーク起動時に自動でIPv6のデフォルトルートが設定されるようになった.

 

IPV6_DEFAULTDEV=”eth0″ の記述が無いと、

 


Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 133.242.171.129 is already in use for device eth0...
ERROR    : [ipv6_set_default_route] Given IPv6 default gateway 'fe80::1' is link-local, but no scope or gateway device is specified
                                                           [  OK  ]

  のようなエラーメッセージが表示されてIPv6のデフォルトルートが設定されない.


[root@y2pub network-scripts]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 52:54:0A:01:03:55  
          inet addr:133.242.171.129  Bcast:133.242.171.255  Mask:255.255.254.0
          inet6 addr: 2401:2500:102:1210:133:242:171:129/64 Scope:Global
          inet6 addr: fe80::5054:aff:fe01:355/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1277208 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8825 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:82178791 (78.3 MiB)  TX bytes:2785883 (2.6 MiB)
[root@y2pub sysconfig]# route -n -A inet6       
Kernel IPv6 routing table
Destination                                 Next Hop                                Flags Metric Ref    Use Iface
2401:2500:102:1210::/64                     ::                                      U     256    0        0 eth0    
fe80::/64                                   ::                                      U     256    0        0 eth0    
::1/128                                     ::                                      U     0      0        1 lo      
2401:2500:102:1210:133:242:171:129/128      ::                                      U     0      0        1 lo      
fe80::5054:aff:fe01:355/128                 ::                                      U     0      0        1 lo      
ff02::12/128                                ff02::12                                UC    0      254       0 eth0    
ff02::1:ff00:1/128                          ff02::1:ff00:1                          UC    0      1        0 eth0    
ff00::/8                                    ::                                      U     256    0        0 eth0    
[root@y2pub sysconfig]# ping6 ipv6.google.com
connect: Network is unreachable

手動でIPv6のデフォルトルートを設定すると、


[root@y2pub sysconfig]# ip -6 route add default via fe80::1 dev eth0       
[root@y2pub sysconfig]# route -n -A inet6
Kernel IPv6 routing table
Destination                                 Next Hop                                Flags Metric Ref    Use Iface
2401:2500:102:1210::/64                     ::                                      U     256    0        0 eth0    
fe80::/64                                   ::                                      U     256    0        0 eth0    
::/0                                        fe80::1                                 UG    1024   0        0 eth0    
::1/128                                     ::                                      U     0      1        1 lo      
2401:2500:102:1210:133:242:171:129/128      ::                                      U     0      0        1 lo      
fe80::5054:aff:fe01:355/128                 ::                                      U     0      0        1 lo      
ff02::12/128                                ff02::12                                UC    0      680       0 eth0    
ff02::1:ff00:1/128                          ff02::1:ff00:1                          UC    0      1        0 eth0    
ff00::/8                                    ::                                      U     256    0        0 eth0    
[root@y2pub sysconfig]# ping6 ipv6.google.com
PING ipv6.google.com(2404:6800:4004:809::1011) 56 data bytes
64 bytes from 2404:6800:4004:809::1011: icmp_seq=1 ttl=52 time=22.7 ms
64 bytes from 2404:6800:4004:809::1011: icmp_seq=2 ttl=52 time=20.0 ms
64 bytes from 2404:6800:4004:809::1011: icmp_seq=3 ttl=52 time=20.0 ms
64 bytes from 2404:6800:4004:809::1011: icmp_seq=4 ttl=52 time=20.0 ms


一応IPv6で外部との間で通信できるようになったが、これでは気持ち悪いので、ネットで色々と調べていたら IPV6_DEFAULTDEV=”eth0″ という設定項目が有ることに気付き、この設定を入れてみたらネットワークの起動時に問題無くIPv6デフォルトルートが設定されるようになった.ネット上ではIPV6_DEFAULTDEV を設定するような事例を殆ど見かけなかったので、この項目の存在に気付かずに手間取ってしまった.

 


[root@y2pub sysconfig]# /etc/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 133.242.171.129 is already in use for device eth0...
                                                           [  OK  ]
[root@y2pub sysconfig]# route -n -A inet6
Kernel IPv6 routing table
Destination                                 Next Hop                                Flags Metric Ref    Use Iface
2401:2500:102:1210::/64                     ::                                      U     256    0        0 eth0    
fe80::/64                                   ::                                      U     256    0        0 eth0    
::/0                                        fe80::1                                 UG    1      0        0 eth0    
::1/128                                     ::                                      U     0      0        1 lo      
2401:2500:102:1210:133:242:171:129/128      ::                                      U     0      1        1 lo      
fe80::5054:aff:fe01:355/128                 ::                                      U     0      0        1 lo      
ff02::12/128                                ff02::12                                UC    0      28       0 eth0    
ff00::/8                                    ::                                      U     256    0        0 eth0    

無事ネットワーク起動時にIPv6デフォルトルートが自動で設定されるようになった.

アプリケーション側でのIPv6設定について


Apacheなどのメジャーなアプリケーションは大部前からIPv6対応になっているので特にIPv6だからといって特別な設定をしなくても良いようになってはいるが、IPアドレスなどでのアクセス制限を掛けているような場合は注意が必要だ.


一例として、.htaccessでの設定例を示す.  



order deny,allow
deny from all
allow from localhost
allow from 2001:2f8:200:1::1/64   <=== IPv6のアドレス形式で設定

WEBブラウザでのIPv6アドレス入力について


Apche等のアプリケーションがIPv6対応になっている事を確認するために、WEBブラウザで確認してみるのが良いだろう.IPv6でのアドレス表記は [2401:2500:102:1210:133:242:171:129] のように記述すれば良い.     http://[2401:2500:102:1210:133:242:171:129]/


尤も、こんな面倒なURL表記をしなくてもIPv4の場合と同じようにDNS名を使ってアクセス可能だ.さくらのVPSでは IPv6のアドレスに関してもDNS登録が行われているので、IPv6のDNS名でもアクセス可能だ.さくらのVPSではIPv6のDNS名として予めIPv4のIPアドレスの後に"v6.sakura.ne.jp" を付加した形で登録されているので、

    http://133.242.171.129.v6.sakura.ne.jp/

  のように指定すれば良い.

IPv6 Address Notation
IPv6アドレスを直接入力した場合

IPv6 DNS Name Space
DNS登録されているIPv6アドレスを名前で入力した場合


おまけ1: さくらインターネットのIPv6への取り組みに関する資料


さくらインターネットのIPv6への取り組みに関するプレゼンテーション資料(2013/3/12)がJAIPAのホームページに有ったので、そのURLを紹介しておく.


http://www.jaipa.or.jp/event/CloudCon/130312_sakura.pdf


おまけ2: このブログの IPv6アドレス


このブログ自体はさくらのレンタルサーバを利用しているが、既にIPv6対応がなされているようだ.


% ifconfig
em0: flags=8843 metric 0 mtu 1500
	options=209b
	ether 52:54:00:f4:a5:eb
	inet 219.94.162.75 netmask 0xffffff80 broadcast 219.94.162.127
	inet6 fe80::5054:ff:fef4:a5eb%em0 prefixlen 64 scopeid 0x2 
	inet6 2403:3a00:101:c:219:94:162:75 prefixlen 64 
	nd6 options=21
	media: Ethernet autoselect (1000baseT )
	status: active
pflog0: flags=141 metric 0 mtu 33152
	nd6 options=29
lo0: flags=8049 metric 0 mtu 16384
	options=600003
	inet6 ::1 prefixlen 128 
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 
	inet 127.0.0.1 netmask 0xff000000 
	nd6 options=21
%