Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

6to4でIPv6を使ってみる+ip6tables設定@Sakura VPS with CentOS 5

      2011/10/08

Sakura VPS でIPv6を使ってみた。

方法としては 6to4 と 6rd という方法がとれるらしいが、6rdはCentOSだとカーネル入れ替えが必要になるので、今回は6to4というトンネルを選択。接続先はTokyo6to4です。

方法はいたって簡単。

# vi /etc/sysconfig/network
~ 以下を追加 ~
NETWORKING_IPV6=yes
IPV6_DEFAULTDEV=tun6to4
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
~ 以下を追加 ~
IPV6INIT=yes
IPV6TO4INIT=yes
IPV6TO4_RELAY=192.88.99.1

後は一端ネットワークを再起動。

#  /etc/init.d/network restart

再起動すると、以下のようなインタフェースが表示されます。

# ifconfig tun6to4
tun6to4   Link encap:IPv6-in-IPv4
          inet6 addr: 2002:xxxx:xxxx::1/16 Scope:Global
          UP RUNNING NOARP  MTU:1480  Metric:1
          RX packets:89 errors:0 dropped:0 overruns:0 frame:0
          TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:13543 (13.2 KiB)  TX bytes:14628 (14.2 KiB)

ちなみにLinuxでは、ipv6でpingを打つには、ping6を使います。

# ping6 www.iij.ad.jp
PING www.iij.ad.jp(2001:240:bb42:b000::1:80) 56 data bytes
64 bytes from 2001:240:bb42:b000::1:80: icmp_seq=0 ttl=58 time=10.2 ms

さらに、 手元のPCからこのサーバに対して、IPv6通信してみたかったので、Softether社提供の実験を使わせてもらい、手元からも無事接続できました。
Windowsの場合、pingコマンドは、IPv4もIPv6も同じpingコマンドを使います。IPv6で強制的にpingを使いたい場合は、-6オプションを使いましょう。

C:\>ping -6 www.iij.ad.jp
www.iij.ad.jp [2001:240:bb42:b000::1:80]に ping を送信しています 32 バイトのデータ:
2001:240:bb42:b000::1:80 からの応答: 時間 =60ms

ちなみに、IPv6の場合、IPv4のようにarpがありません。iptablesでファイアウォールを設定している場合、最低限pingなどに応答するには以下のように設定するとよいと思います。マルチキャストなども通したい場合は、適宜 –icmpv6-type の定義を増やしてあげてください。全タイプのicmpを通したいならば、–icmpv6-type ○○○ は必要ありません。

# ip6tables -A INPUT -s ::/0 -d ::/0 -i lo -j ACCEPT
# ip6tables -A INPUT -s ::/0 -d ::/0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# ip6tables -A INPUT -s ::/0 -d ::/0 -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j ACCEPT
# ip6tables -A INPUT -s ::/0 -d ::/0 -p ipv6-icmp -m icmp6 --icmpv6-type 129 -j ACCEPT
# ip6tables -A INPUT -s ::/0 -d ::/0 -p ipv6-icmp -m icmp6 --icmpv6-type 133 -j ACCEPT
# ip6tables -A INPUT -s ::/0 -d ::/0 -p ipv6-icmp -m icmp6 --icmpv6-type 134 -j ACCEPT
# ip6tables -A INPUT -s ::/0 -d ::/0 -p ipv6-icmp -m icmp6 --icmpv6-type 135 -j ACCEPT
# ip6tables -A INPUT -s ::/0 -d ::/0 -p ipv6-icmp -m icmp6 --icmpv6-type 136 -j ACCEPT

これで終了と思いきや、これだけではパケットは通らないかもしれません。実は、今回は6to4トンネルを使っているので、IPv4側でファイアウォールが動いている場合は、IPv6がカプセル化されたパケットを許可する必要があります。よって以下のようにipv6パケットは、IPv4側では通過させてあげます。

# iptables -A INPUT -p 41 -j ACCEPT

41というのは、IPv6のプロトコル番号です。これは、/etc/protocols ファイルに記述されていますので、気になる人は覗いてみてください。

 - IT技術, セキュリティ, ネットワーク , ,

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
VNC上の文字化け解消@CentOS 5

一部のアプリケーション、例えばJavaやOracleのインストーラーなどは、VN …

no image
ネットワーク遅延のシミュレーション@CentOS 5

最近のLinux では、簡単にネットワーク遅延をシミュレーションできるようです。 …

no image
キーボードレイアウト、ロケール変更@Ubuntu 14.04 server on VMware Player

VMwareの簡易インストールはOSのインストールが簡単で便利ですが、日本時間に …

no image
KVMを使ってみる@CentOS 5.4

RHEL 5.4からKVMが使えるようになり、それに伴いCentOS 5.4でも …

no image
rubyのirbで補完@cygwin

cygwin上でrubyのirbを動かしている時に、ふと補完ができたら便利だと思 …

no image
プログラミングコンテストの模擬練習(ババ抜き)を解いてみた

以下で紹介されていたプログラミングコンテストの模擬練習問題(ババ抜き)をpyth …

no image
TracのDBのスキーマとチケットレポート作成 @ Trac 0.10.3 on Debian Etch

Tracのチケット のレポートを作成するには、TracのDBのスキーマをある程度 …

no image
プログラミング言語のベンチマーク

プログラミング言語のベンチマークサイトを発見 http://shootout.a …

no image
Fedora 17を19にアップグレードする

Fedora 17 のサポートが気づいたら終わっていたので、最新の19にアップグ …

no image
PS3ファームウェアは3.0に!

PS3のファームウェアが着々と進化してますね。ついに3.0が2009/9/1にリ …