IPv6のトンネル方式の調査 – 6to4

さくらVPSでIPv6を使いたい!!
ということで、IPv6調査をスタートしました(゚∀゚ )

まずは調査からスタート。
IPv6トンネル方式の一つ6to4を調べました。

6to4基礎

6to4はルータ間の自動トンネリング技術のようです。
さくらVPSのCentosで設定できるような。。
って、Centosをソフトルータと考えるのですね(w

IPv4のグローバルを1個以上持っているルータに対し、
ユニークなIPv6アドレスプリフィクスを割り当てることで
IPv4ネットワークを通じてカプセル化したIPv6パケットを転送します。

IPv4アドレスはご存知32bitsです。そしてIPv6は128bits。
IPv4アドレスに対して、IPv6は十分に長いので、
IPv6アドレスの一部にIPv4アドレスは十分埋まります。

しかも、6to4はIPv6のPrefix(先頭64bits内)に埋め込むので
ルーティングにもそのまま役立ってしまうという感じ。

埋め込みかたは以下!!

■あるIPv6 Prefixがあります
xxxx:xxxx:xxxx::/64
~~~~ <- これが16bits
■6to4の場合
2002:xxxx:xxxx::/64
~~~~+~~~~ <- 32bits = IPv4を埋め込む

このPrefixを使ってルータ間でIPv6をするという訳ですな。
細かいところはさておき、概要はなんとなくさらえた気になっています♪

IPv6小技

さくらインターネット研究所ページを見ていてみつけた小技があります。
これまた、なるほど~っと思ってしまう技?というかコマンドでした。
それはprintfをコマンドラインで使うというやり方です!

printfってC言語でプログラム書くときか、
その他スクリプトでもフォーマットを細かく指定したいときに
使うくらいであまりコマンドラインで使うというイメージなかったのですが、
これまたうまくptintfを使っていました^^

用途はIPv4アドレスから6to4のPrefixを計算する際に使うのですが、
printfのフォーマット指定で値を出力させる感じです。

見たほうが早いかも。

$ printf "2002:%02x%02x:%02x%02x::/48\n" 192 168 10 1
2002:c0a8:0a01::/48  ←コレです!
192.168.10.1 というIPv4が見事に16進にっ!
検算してみるとぉー
192 ... 1100 0000 ... c0
168 ... 1010 1000 ... a8
10  ... 0000 1010 ... 0a
1   ... 0000 0001 ... 01
ま、当然あってます(w

これは便利!
他のモノにも応用できそうですし、スバラシイアイデアです(゚∀゚ )

参考ページ

■Tokyo6to4 Project
http://www.tokyo6to4.net/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8

■さくらインターネット研究所 6to4によるIPv6接続(Linux編)
http://research.sakura.ad.jp/2010/12/27/tunnel-6to4-linux/

カテゴリーIPv6

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です