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
Galaxy S III(SC-06D)のroot再取得@4.1.2(MF1)

ほとんどアップデートしていない root 化されたスマホ SC-06D (4.0 …

no image
遅いネットワークでsshの応答が遅い

遅いネットワーク、特にモバイル端末経由でsshを使ったりする場合、一文字打つのに …

no image
gitで現在の変更を一時的に退避して他の修正をする

ソースコードにある目的をもって機能追加している際、機能とは関係ないバグを見つける …

no image
DockerHubのイメージのタグ一覧をコマンドで取得する

docker コマンドでタグを指定せずにコンテナイメージをpullすると、lat …

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

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

no image
異なるポート間でポートフォワーディング@NEC Aterm のルーター

NEC Aterm系のルーターは、ポートマッピングという機能があります。 通常の …

no image
ログインシェルを変更する@さくらインターネット

今までLinuxを使ってたので、ログインシェルをデフォルトから変えようと思ったこ …

no image
リモートデスクトップでウィンドウ表示と全画面表示を切り替える@Windows 7

最近はクラウドやらなんやらで、Windows 付属のリモートデスクトップ機能を使 …

no image
パイプでつないだコマンドの戻り値を調べる@bash

シェルスクリプトで、実行したコマンドの戻り値を知る方法は有名ですよね。 以下のよ …

no image
PC電源ユニット ENERMAX MODU82+ EMD525AWT購入

PCのATX電源として、Seasonic の”SS-300FS&#8 …