S.A Studioを支えるNGN用IPv6 PPPoEトンネリングアダプタ

概要

Ubuntu 14.04

IPv4 PPPoE IPマスカレードでルーティング(本稿の範囲外)

IPv6 PPPoE この接続で取得したプレフィックスをLANに配る

IPv6 IPoE(HGW) HGWから降ってくるRAに載ってるプレフィックスをそのまま使う、L2レベルでは本トンネリングアダプタで終端する(ブリッジしない)

実装

PPPoE

+ipv6 オプション(IPv6CP)

DHCPv6-PD

IA(Identity Association)を送ってプレフィックスを得る

取得したプレフィックスをもとにIPアドレスをインターフェイスにセットするか、セットする場合のプレフィックス長をどうするかは任意

ルーティングテーブル

あらかじめNGN側から割り当てられるプレフィックスを持つIPアドレスをLAN側に設定する(デフォルトルートが邪魔なのでRA受け取る設定にはしない)。

NGNに流すべきパケットはNGNに流す

ip -6 route add (フレッツ経路情報で取得できるNGN網IPv6アドレス) via (ONUのリンクローカルアドレス) dev (ONU側インターフェイス名)

ポリシーテーブル

NGNに流すパケットのソースアドレスを正しく設定

ip addrlabel add prefix (フレッツ経路情報で取得できるNGN網IPv6アドレス) label (2001::/32のラベル値よりも大きいラベル値)

プレフィックス変換

netfilterのmangleテーブルに以下のようなイメージで書く

iptables -t mangle -A POSTROUTING -s (PDで取得できるインターネット側のプレフィックス) -d (フレッツ経路情報で取得できるNGN網IPv6アドレス) \
-m physdev --physdev-in eth1 -o br0 -j SNPT --src-pfx (PDで取得できるインターネット側のプレフィックス) --dst-pfx (NGN網から広告されるプレフィックス)

NDP Proxy

NGNのプレフィックスで本アダプタ配下の端末がNGNへ出ていけるように

sysctl.conf等に書く: net.ipv6.conf.(IF名).proxy_ndp = 1

ndppdを入れて設定する NGNプレフィックスに対し static

ファイアウォール(netfilter)

あなたのポリシーに従いご自由にどうぞ

課題

参考

http://www.soum.co.jp/misc/ko/flets-ipv6-pppoe/1.html

http://yudai.arielworks.com/memo/2012/05/08/000441