1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Fortigate(7.2)を使ってフレッツ光ネクストのIPv6 IPoEから払い出されたPrefixを委譲する

Last updated at Posted at 2023-03-09

やりたいこと

IPoEで払い出されたIPv6 Prefixを、Fortigateを使って下位ネットワークに委譲してみる。
過去記事:https://qiita.com/gaichi/items/e96bf638df642b2a9792

環境・材料

  • NTT西日本フレッツ光ネクスト(ひかり電話付き)
  • ISP契約(ぷらら+IPoEオプション)
  • Fortigate60E(ver7.2)
  • うまく動かなくてもくじけない心

説明

 ひかり電話ありのフレッツ契約の場合、HGWの下部にDHCPv6-PDクライアントに対応するルータを突っ込むとサブネットの分割ができます(IPv6ではサブネットといわないかもしれないけれども)。ルータには、/60が割り振られるようです。この機能を活用して、Fortigateにプレフィックスを委譲し、FortigateのLAN側を/64で分割するよう試してみます。
 なお、IPv4の設定とかDS-liteだとかMAP-Eとか、とにかくIPv4関係は今回は全く触れません。

設計

  • 物理構成

 HGW--(WAN2)Fortigate(Intenal)--下部LAN

設定

Prefix委譲ではない設定であればGUIだけでできるのですが,Prefix委譲の設定をやりきるためにはCLI設定が必要なようです。

  • WAN2インタフェースの設定

 WAN2にはHGWを接続します。HGWからDHCPv6-PDによってIPv6アドレスの割り当てと移譲の権限を取得する設定です。

config system interface
    edit "wan2"
        config ipv6
            set ip6-allowaccess ping
            set dhcp6-prefix-delegation enable
            set autoconf enable
            config dhcp6-iapd-list
                edit 1
                    set prefix-hint ::/60
                next
            end
        end
    next
end
  • Internalインタフェース(LAN側)の設定
config system interface
    edit "internal"
        config ipv6
            set ip6-mode delegated
            set ip6-allowaccess ping
            set ip6-send-adv enable  …①
            set ip6-manage-flag enable
            set ip6-other-flag enable
            set ip6-upstream-interface "wan2" …②
            set ip6-delegated-prefix-iaid 1
            set ip6-subnet ::1:0:0:0:1/64 …③
            config ip6-delegated-prefix-list
                edit 1
                    set upstream-interface "wan2" …②
                    set subnet 0:0:0:1::/64 …④
                    set rdnss-service delegated
                next
            end 

① インタフェースからRA(Router Advertisement)を送出する設定です。
② 上位のネットワークが存在するインタフェースの指定です。今回はWAN2が上位(HGW経由フレッツ経由ISP)なので、WAN2を設定します。
③ 下部のネットワーク側(LAN側)に設定するIPv6アドレスです。例えばHGWが2400:XXXX:YYYY:19D0::/60をFortigateに割り当てた場合、このインタフェースのプレフィックスはこの設定値である::1:0:0:0:1との論理和、つまり2400:XXXX:YYYY:19D1::1/64がInternalのIPv6アドレスになります。
④ サブネットのプレフィックスを設定します。③に合わせて、0:0:0:1::/64としておきます。(論理和の考え方も③と同じ)

  • DHCPv6サーバの設定
    RAに加えて、DHCPv6サーバの設定をします。DNSサーバのアドレスはこの設定が通知されます。(この設定はたぶんステートレス)
config system dhcp6 server
    edit 1
        set dns-service delegated
        set subnet 0:0:0:1::/64
        set interface "internal"
        set upstream-interface "wan2"
        set delegated-prefix-iaid 1
        set ip-mode delegated
    next
end

確認方法

  • IPv6アドレスの確認
# diag ipv6 address list

表示されたIPv6アドレスに、HGWの管理画面からPingで試験すると吉。

  • ネイバーキャッシュの確認方法
# diag ipv6 neighbor-cache list
  • ルーティングテーブルの確認方法
# diag ipv6 route list
  • DHCPv6のリース状態
 exe dhcp6 lease-list

おまけ

LAN側に他のインタフェースがあれば,さらにPrefixの委譲ができます。
別のインタフェースで,③と④を次のように変更します。
理屈的には0:0:0:1::~0:0:0:F::まで使えるはずなので,15個委譲できるはずです(多分)。

…
set ip6-subnet ::2:0:0:0:1/64 …③
…
set subnet 0:0:0:2::/64 …④
…

備考

  • 同一物理インタフェースでPPPoE(IPv4)を同居できません。設定は可能ですが,PPPoEセッション確立した段階で,IPv6アドレスを忘れてしまいます(期待通りに動きません)。なので,IPoE専用の物理ポートを準備してください。
  • HGWの「DHCPv6サーバ払い出し状況」で見えるIPv6アドレスと「diag ipv6 address list」コマンドで出力されるアドレスが微妙に異なります。Forti自身は「diag ipv6 address list」で表示されるアドレスを認識しているので、Pingなどで試験するときはこのアドレスに当ててください。
  • HGWがDHCPv6-PDで払い出したプレフィックスあてのルーティングは、HGW内にルーティングテーブルとして持つようです(でも確認する方法がない…)。
  • DHCPv6-PDクライアントになる他のルータがHGW下部にいる場合、HGWから割り当てられるPrexfixが変わってしまうことがあります(というより、固定できないと思っておいたほうが良い)。その場合に、ホストがIPv6アドレスを複数(古いPrefixと新しいprefix)の二つを持ってしまい、不安定になることがあります。
  • HGWのIPv6セキュリティ設定で、ICMPv6を「双方向」(IPoE→LAN、LAN→IPoE)で許可しておくと切り分けに便利です。ICMPv6だけなら、侵入されてもそんなに悪いことはできないでしょう、きっと。気になるようなら、動作確認後に切っておけばよいです。

独り言

  • HGWのネイバーキャッシュを確認する方法がなくて不便。
  • HGWのルーティングテーブルを確認する方法がなくて不便。
  • HGW内の状態をもう少し見せてほしい…。

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?