クレア工房 | ネットワーク

VyOSとフレッツ光

VyOSにはジャンボフレームを安価に収容できるというメリットがあります。 ヤマハルータでも対応は可能ですがRTX1300クラスの製品を買わないとジャンボフレームには対応できません。 IPv6 GUAを配りたいという要求がある場合、 初段でDHCPv6-PDを受けて次段となるルータにリレーする設計は、 ネットワークがきれいにまとまりません。 IPv6が絡むと、1台のルータにまとめたいわけです。 そこでVyOSを用いてフレッツ光を直接収容できないだろうか、 というお題目が発生することになります。

最初にお断りしておきます。 まず、VyOSそれ自身はMAP-EやDS-Liteには対応していません。 MAP-Eは必要な機能が実装されておらず、どうにも対処できません。 DS-LiteについてはIPv4 over IPv6トンネルとして実装できますが、 トンネル端点のアドレス浮動には対応していません。 細かいところまで全自動で動いてほしいなら、ヤマハRTX1300等の専用機を検討してください。

HGW関係

ここではHGWを繋いでいないものとして説明します。 フレッツ光ネクストの場合はひかり電話契約ありでないとDHCPv6-PDは使えません。 フレッツ光ネクストでひかり電話契約がない場合はRA方式となります。 フレッツ光クロスの場合はひかり電話契約の有無に関係なくDHCPv6-PDを使います。

HGWを介在せずにVyOSでIPv6接続性を収容する場合は DHCPv6-PDには56bit prefixを要求します。 HGWを介在して収容する場合は HGWが4bitほど食べてしまうため DHCPv6-PDには60bit prefixを要求します。

NTTが将来どうするかはわかりませんが、今のところ、 ひかり電話はIPv4で動作するインフラです。 IPv6の接続性を他の機器で奪ってしまっても、 ひかり電話それ自体には干渉しません。 ただし、 ひかり電話を受けるためにHGWを介している場合は HGWのDHCPv6-PDを停止できるかどうかが定かでないため、 HGWを介するしかない可能性が高いです。 ヤマハのNVR510はDHCPv6-PDを止めたままひかり電話を受けることができます。

Firewallを定義する

外からLANの中に入れないようにする定義は、 デフォルトと言いますか「全拒否」に任せればよいのでVyOSではさほど難しくありません。

ICMPv6 ND, DHCPv6-PDを使う関係上、 NTTフレッツ網からルータ自身に入ってくるトラヒックをいくらか許可する必要があります。 許可が必要なのはリンクローカルから リンクローカルおよびマルチキャストに対するものです。

DS-Liteを成立させるためにAFTRからルータ自身に出入りするprotocol 4を許可する必要があります。

DHCPv6-PDを収容する

NTTフレッツ光のDHCPv6-PDはDUID-LLを要求します。 DUIDは必ず明示的に設定する必要があります。 例示の eth0 は適当に読み替えてください。

DHCPv6のオプション項目に対して 各LAN側インターフェースに対するグローバルアドレス割り当てを記述します。 SLA-ID 0番をループバックに割り当て、 他のどこにも使わないと仮定しています。 SLA-ID 0番をループバックに指定するのは、 ここで割り当てたIPv6アドレスを 4over6トンネルの始点として利用するためです。

ethernet eth0 {
    dhcpv6-options {
        duid 00:03:00:01:aa:bb:cc:dd:ee:ff
        pd 0 {
            interface lo {
                address 1
                sla-id 0
            }
            (略)
            length 56
        }
    }
    hw-id aa:bb:cc:dd:ee:ff
    (略)
}

DHCPv6-PDではWAN側インターフェースに対するグローバルアドレスの割り当ては行いません。 これはフレッツ光のIPoEに限った話ではなく、PPPoEでも同様です。 IPv6の動作概念としてWAN側インターフェースにグローバルアドレスを割り当てる必要はありません。 なぜなら、NTTフレッツ網に対するゲートウェイの記述は、 システムの内部動作としてリンクローカルアドレスで実施することになるからです。 NTTフレッツ網からCPEルータに対する経路指定もまた、 リンクローカルアドレスで行われることになります。

LAN側インターフェースに対しては、通常はRA方式でアドレスを広報します。 VyOSではマジックナンバーとして「::」が予約されていますので、 これを使ってアドレスを撒きます。 例示の eth1 は適当に読み替えてください。 タグVLANを付けている場合は eth1.1 のような形式になります。

router-advert {
    interface eth1 {
        prefix ::/64 {
        }
    }
}

端末側がSLAACに対応していれば、以上の操作でアドレスが降ってくるものと思います。 なお、DNSサーバのアドレス配布はよしなに解決してください。 通常のご家庭であればRAを頼るまでもなくIPv4 DHCPで解決するものと思います。

DS-Liteを収容する

DS-Liteのトンネル接続先であるAFTRのアドレスは、 本来はNTT側のDNSサーバをクエリして調べます。 DS-Liteを提供しているtransixは ヤマハ動作確認機器 のページでAFTRのDNS名がgw.transix.jpであることを公開しています。 AFTRのIPv6アドレスも一部だけですが公開されています。 NTTフレッツ網のDNSリゾルバにクエリして調べるのが面倒であれば、 transixのサイトを参照するのが良いでしょう。 NTT東西で異なるアドレスになりますので注意してください。

DS-Liteのトンネル接続元である始点アドレスは、 ループバックに割り当てておくと良いでしょう。

tunnel tun0 {
    encapsulation ipip6
    ip {
        adjust-mss clamp-mss-to-pmtu
    }
    mtu 1460
    remote (略)
    source-address (略)
}

DS-Liteのトンネルを成立させるためには、 ファイアウォール定義でprotocol 4を受け入れる必要があります。

NTT局舎工事などで始点IPv6アドレスが変更された場合は、 VyOSのコンフィグを書き換える必要があります。 VyOSはトンネルの始点アドレスの動的変更には対応していませんので、 このあたりの対応は将来のバージョンを待つことになります。 日本国内特有の事情であることからサポートはあまり期待できません。 正直なところヤマハRTX1300を使ったほうが簡単です。

MAP-Eを収容したい

VyOSはMAP-Eプロバイダを収容することができません。 MAP-Eの収容にあたっては、ヤマハRTX1300等の市販のCPEを使うことがお勧めとなります。


This is copyrighted material. Copyright © 2026 clare. All rights reserved.