OpenWRTでIPv6をLANに通す(ひかり電話なし)
まえがき
ネット上に情報が割とあるような無いようななのでまとめておく。
当方の環境では、普通 WAN6 である IPv6 WAN インターフェイスが ONU6 という名前になっている
前提条件
その 1 IPv6 が WAN6 にネットワークを割り当てているか確認
Luci(Web 画面)の Network->Interface 画面で、以下のように IPv6-PD が表示されているか確認する。
ひかり電話の契約がない場合、表示されていないはず。

表示されていない場合は、Interfaces 画面の Edit->Advanced Settings の
Custom delegated IPv6-prefix に割り当てられている IP アドレスの前半 4 区切り分 /64 を入力する
例えば aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh であれば、aaaa:bbbb:cccc:dddd/64 である。

保存して反映するなり、OpenWRT を再起動すると IPv6-PD が表示されるようになっているはず。
その 2 LAN の RA, NDP(roxy), dhcpv6 を relay にする
IPv6 を配布したいネットワークの Interfaces 画面の
Edit->DHCP Server 内の IPv6 Settings を以下のようにする。
| 項目 | 設定値 | 
|---|---|
| Router Advertisement-Service | relay | 
| DHCPv6-Service | relay | 
| NDP-Proxy | relay | 
| master | チェックなし | 
その 3 WAN6 の LAN の RA, NDP(roxy), dhcpv6 を relay にする
この設定は Luci からできないので SSH 等で接続する必要がある。
vi /etc/config/dhcp して、以下の設定を追記。
<code class="language-/etc/config/dhcp">config dhcp 'ONU6'
        option ra 'relay'
        option dhcpv6 'relay'
        option ndp 'relay'
        option master '1'
追記後、 uci commit /etc/config/dhcp を実行する
その 4 (必要であれば)DNS サーバー順序の見直し
Network -> DHCP and DNS の General Settings 画面で、DNS Forwardings の上の方に IPv6
DNS サーバーを指定する。IPv4 の DNS サーバーを指定していると、nslookup した時に IPv4 の応答のみが
帰ってきてしまう場合がある。(例えば so-net の IPv4 の DNS は IPv6 の回答をしないとされている)
蛇足
その 1 は CLI で調べる方法がある。
ifstatus ONU6
IPv6-PD がない場合は、ipv6-prefix の中身が空になる。
`	"ipv6-prefix": [
		{
			"address": "240b:10:9181:a200::",
			"mask": 64,
			"class": "ONU6",
			"assigned": {
			}
		}
	],
Discussion