2017年06月18日

v6プラスのIPアドレス&ポートの計算方法

【各アドレスの解説】
[CE IPv6アドレス]
v6プラス内で用いるユーザ側ルータのIPv6アドレス。
IPv4 over IPv6トンネルのユーザ側の端点となる。
通常、網側からはRAやDHCPv6でIPv6アドレスを取得するがそれとは別で、後述の計算によって導かれる。

[BR IPv6アドレス]
v6プラス内で用いられる事業者側ルータのIPv6アドレス。
IPv4 over IPv6トンネルの事業者側の端点となる。
JPNEの場合は『 2404:9200:225:100::64 』らしい。

[MAP-E IPv4アドレス]
v6プラス内で用いるユーザ側ルータのIPv4アドレス。
IPv4 over IPv6トンネルの中で使用される。
後述の計算によって導かれる。

[MAP-Eポート]
v6プラス内で各ユーザが使用することができるポート。
後述の計算によって導かれる。


【MAP-E関連アドレス/ポートの計算ルール】
網側からRAやDHCPv6で取得するIPv6プレフィックスから計算する。
取得したプレフィックスを以下の様に分解する。

[IPv6プレフィックス]
240b:XXXX:QQRR:SS00::/64
 240b:XXXX::/32 → IPv4プレフィックス(アドレス上位16ビット)へのマッピング
 QQRR → MAP-E IPv4アドレスの下位16ビット
 SS → PortSet ID(PSID)


[MAP-E IPv4アドレス算出用のマップルール]
非公開情報と思われるのだが、2ch v6プラス スレに書いてあったので転記。
おそらくISPの中の人あたりが漏らしたと思われる。

240b:10::/31 (Rule IPv6 prefix), 106.72.0.0/15 (Rule IPv4 prefix)
240b:12::/31 (Rule IPv6 prefix), 14.8.0.0/15 (Rule IPv4 prefix)
240b:250::/31 (Rule IPv6 prefix), 14.10.0.0/15 (Rule IPv4 prefix)
240b:252::/31 (Rule IPv6 prefix), 14.12.0.0/15 (Rule IPv4 prefix)

なお、これは実際は事業者(VNE)が用意するマップ配信サーバから配信される情報のため、将来的に変更の可能性がある。



[CE IPv6アドレス計算ルール]
v6-plus_CE-IPv6-Address.jpg


[MAP-Eポートの計算ルール]
プレフィクスから抜き出したPSIDをSSとすると、MAP-Eポートは下記のルールから計算できる。

mSSn (16進数)
SS: 00〜FF
m: 1〜F
n: 0〜F



【計算例】
上記のルールだけだとよく分からないと思うので、具体的な例をあげて説明する。

[IPv6プレフィックス]
網側からRAで取得したプレフィックスを以下のものとする。

240b:10:abcd:ef00::/64


[MAP-E IPv4アドレス]
まず、上位16ビットはマップルールから

106.72.0.0

であることが分かり、下位16ビットは

16進数:ab cd
 ↓
10進数:171.205

となる。

結果、MAP-E IPv4アドレスは

106.72.171.205

となる。


[CE IPv6アドレス]
IPv6プレフィックスとMAP-E IPv4アドレス、PSIDから構成される。

まず、MAP-E IPv4アドレスを16進数に変換する。

10進数:106.72.171.205
 ↓
16進数:6a 48 ab cd


これをCE IPv6アドレス計算ルールに割り当てると、

240b:10:abcd:ef00:6a:48ab:cd00:ef00

となる。


[MAP-Eポート]
PSIDは『 ef 』なので、

(16進数) (10進数)
 1ef0   7920
 1eff   7935

 2ef0  12016
 2eff  12031

※中略

 fef0  65264
 feff  65279

という風に計算できる。excel等の表計算ソフトで計算するのが楽です。


【参考にさせてもらったページ】
Mapping of Address and Port with Encapsulation (MAP) draft-ietf-softwire-map-03
v6プラス関連の覚え書き(風柳メモ)

ラベル:V6プラス
posted by BB at 00:00| Comment(0) | TrackBack(0) | PC・ハードウェア | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック