MAP-E
https://ascii.jp/img/2020/09/30/3100533/o/c69da19db0cf23d0.jpg
Fletsで使われるipv4 over ipv6で使わる仕組みの一つ JPNEのv6プラスはMAP-Eを利用してipv4 over ipv6を実現している
要はNAT系の技術
ユーザーはIPv4とIPv6のデュアルスタック
ユーザーからのipv4パケットはホームゲートウェイで予め割り振られたグローバルIPv4へNAT
NATされたipv4パケットを予め構築したipv6トンネル経由でISP(MAP BR)へ送る
MAP BRでipv6をほどいてipv4にパケットを流すだけ
ipv6パケットはそのままipv6インターネットへルーティング
ds-liteとはNATするポイントが違う
ds-liteはCGN側でカプセル化解除 + グローバルアドレスipv4へNAT
MAP-EはユーザーのMAP CE(ホームゲートウェイ)でグローバルipv4 NAT
MAP BRではカプセル化を解除するだけ
MAP CEごとに利用可能なグローバルIPとポートセットが割り当てられる
ipv4グローバルIPは複数ユーザーで共有
ポートセットはTCP,UDPボート番号の集合
ポートセットは連番のポート番号の場合もあれば、とびとびのポート番号の場合もある
ポートセットのポートをNAT時に送信元ポートとして利用
ポートセットはCEごとにユニークに割り当てられる
MAP BRではグローバルIPとポートをみるとMAP CEが特定できる
戻りのパケットをどのMAP BRに返すべきかの判別が可能
ポートセットについてはPSIDと呼ばれる識別子からアルゴリズムGMA(RFC7597 appendisxB)で自動生成
基本的にはMAC CEにPSIDが1:1に紐づけられる
PSIDを元にポートセット、果てはMAP CEのipv6アドレスも生成されている
予めPSID, MAPルールと呼ばれるMAP CE、MAP BRの共有情報しておく
MAPルールには次の情報がある
Basic Mapping Rule
Fowarding Mapping Rule
Default Mapping Rule
メリット
ds-liteと違いユーザー側でのポート開放がしやすい
NAT部分がユーザー側にあり、どのグローバルIP、ポートを使うかが予め静的に決まっているので
事業者によっては必ずできるわけでもないらしいが
キャリアとしてもstate管理をする必要のあるCGNをおかなくてよい。
NAT部分がホームゲートウェイ側にあるので。
キャリア側はどのアドレス、ポートのパケットをどのMAP CEに戻すかという静的な情報だけよい
デメリット
基本的には静的なマッピングで成り立つ仕組みなので柔軟な運用はしにくい
共有するグローバルIPがキャリア側で柔軟に変更できない
どのMAP CEにどのグローバルIPなのかはMAP CE , MAP BR共に共有されていないといけない
これは静的な設定情報なので、柔軟に動的なグローバルIP割り当てがやりにくい
予めユーザー毎に利用可能なポートセットが決定されているので、セッション数が頭打ちしやすい
一つのMAP CEの下に大量のユーザーがいると利用可能なポートが簡単に枯渇してしまう
最近はIOT等の常時通信するデバイスも多いので以外にポートは枯渇しがち
ほかのMAP CEに割り当てた未使用なポートを柔軟に割り当てるといった運用は難しい
CGNをおくタイプの技術だと通信毎に必要な分だけのポート割り当てになるので全体的に効率よく使える
便利な分full stateなセッション情報の管理という問題があるのだが
CGNだと全ユーザーのNAT情報になりその規模がでかいのでなおさらキツイ