💬

pfSenseでフレッツのIPv6を通す(IPv6 NAT)

2021/08/11に公開

はじめに(前提・いいわけ)

  • ひかり電話なし
  • IPv6 NAT してしまうとエンド to エンド通信ができなくてよろしくないみたいなのは一度置いておく
  • pfSense だと ND Proxy がないので普通に IPv6 を通すことは(ひかり電話なしでは)できない
  • 手順といいつつ、終わったあとに書いているので手順がかなり怪しいです。

手順

IPv6 を許可する

System - Advanced - Networking の一番上、All IPv6 traffic will be blocked by the firewall unless this box is checked にチェックが入っていることを確認する

WAN に IPv6 を通す

DS-Lite で接続しているなら既に済んでいるはず。

ONU に向かっている Interface(普通にやっていたら WAN)の IPv6 Configuration TypeSLAACに設定。これでよしなに IPv6 のアドレスを取得してくれる。

pfSense の LAN I/F に IPv6 アドレスを設定

今回は NAT するつもりなので、ここで設定する IPv6 アドレスはローカル限定のもの。

うちの環境では fc00:a::1 /64 とした。 fc00:〜〜〜 はユニークローカルアドレス(IPv4 のプライベートアドレス的なものだと思う)なので何を振ってもよい。

ここで固定 IP アドレスを振っておかないと、あとで DHCPv6 サーバーの設定に失敗する。

RA の設定

LAN に対して RA(Router Advatise)を行うように設定する。これにより LAN 内の端末は、IPv6 のアドレスを得ることができるようになる。

Router modeUnmanaged に変更

Subnetsfc00:a:: /64 と設定。

DNS Configuration DNS Server 1fc00:a::1(pfSense の LAN 向きの IP アドレス)

ひかり電話を契約していれば、ここで上位からもらったアドレス帯(/56)を分割して NAT なしで扱えるのだけれども…

NAT6 の設定

Firewall - NATOutbound タブにルールを追加する。

Outbound NAT ModeHybrid Outbound NAT rule generation. (Automatic Outbound NAT + rules below) を選択している。

しかし、IPv6 の NAT は自動で定義されることはない(そりゃそうだ)

Interface `WAN`
Address Family `IPv6`
Protocol `Any`
Source `Network` `fc00:a::` `/64`
Destination `Any`

Firewall の設定

IPv6 を許可するルールを INTRA (LAN インターフェイス)のルールに追加。

ここまでのテスト

ping6 2001:4860:4860::8888 で ping してみる(宛先は Google public DNS)

OK であれば次へ。

システム DNS の設定

System / General Setup 内の DNS サーバーのところに

2404:1A8:7F01:A::3 2404:1A8:7F01:B::3 を指定する。

(なお、これは NTT 東日本の場合。西日本の場合はおそらく異なると思われる)

DNS の設定

DNS Resolver を有効にする。だけ。

もし、Firewall で弾かれるようであれば(うちはこれに該当した)

Firewall - RulesFloating に次のルールを追加する

Action `Pass`
Interface `INTRA` (LAN のインターフェイス)
Direction `in`
Address Family `IPv4/IPv6`
Protocol `TCP/UDP` (最近の DNS は TCP も使うようなので)
Source `Any`
Destination `This Firewall` Port from `DNS(53)` to `DNS(53)`

DNS のテスト

適当なクライアントから nslookup www.google.com or host www.google.com して

www.google.com has address 172.217.161.68
www.google.com has IPv6 address 2404:6800:4004:80b::2004

IPv6 のアドレスが帰ってくれば OK

その他

  • 一つづつ設定を変えて、ちゃんと IPv6 アドレスが取得できるか? traceroute6 が通るか、と確認しながらやっていった。
  • 正直、NAT してしまって良いのであれば、ND Proxy とか考えるよりこちらの方が話が早いように思える。
  • ただし、外から見たときに pfSense がもっている WAN の IPv6 アドレスが常に見えるのでこれによる不具合が起きる…かもしれない?(IPv6 NAT を意識していないなにかの場合)

Discussion