VyOSを使ったPPPoE回線システムの構築方法について解説します。
PPPoE回線で拠点間VPNシステム構築する場合、ONUが現地にしかないため、いつも検証に困っていました。
これまでは自社PPPoE回線を使ってVPN疎通試験などをしていましたが、アカウントや固定IP情報を書き換える必要があることから、どうしても現地と同じ設定が出来ませんでした。
今回、VyOSを使ったPPPoE検証システムに切り替えてみたところ、ルーター設定も現地と同一にできるようになり、不具合発生リスクを大幅に減らすことが出来ました。
※注記:CiscoルーターはPPPoEサーバー機能を持っていたのですが、数年前のバージョンから機能削除されてしまいました。Ciscoの旧ファームウェアは保守契約をしていないと手に入れることが出来ず、現在発売されている製品はPPPoEサーバーをサポートしていませんので、事実上Ciscoルーターでの検証はできなくなっています。
前提
検証するシステムは以下の通りとします。
ルーターは手持ちのNEC IXを利用しました。
- OS環境:ProxmoxVE上にVyOSを構築
- VyOSインタフェース:eth0, eth1の2NIC
- センター回線:固定IP契約(10.0.0.1/32を割り当て)
- 拠点回線:動的IP契約(10.0.0.2-4/32を割り当て)

VyOSの構築
VyOSの入手
VyOSはここから入手できます。
rolling releaseがフリー版とのことですので最新版を入手します。
記載の時点でのバージョンは、VyOS 2025.08.03-0023-rollingでした。VyOS Ver1.5に相当するようです。

VyOSのインストール
VyOSは仮想サーバーProxmoxへ構築します。Proxmoxの構築についてはこちらを参照してください。
VyOSをISOファイルで立ち上げ後、ログインします。初回ログインのIP/Passはvyos/vyosです。
ログインが出来たら最初にvyosをインストールします。
$ install image
いくつか質問がありますが、パスワード設定以外は、すべて"y"、または、デフォルト値を選択します。
インストール後、リブートを促されるので、"poweroff"でVyOSをシャットダウンします。
$ poweroff
Proxmox→VyOS→ハードウェアでCD/DVDドライブを削除し、vyosを起動します。
ネットデバイスの割り当てを忘れていた場合は、ここで付け足してもらっても構いません。

インストール作業は以上です。
Proxmoxの操作になれていればすぐに構築できると思います。
SSHでteraterm接続
VyOSに設定を投入する際、Proxmox上のコンソール作業はコピペが出来ません。
コンソール作業では効率が悪いため、TeratermのSSH接続で作業することにします。
ProxmoxのコンソールからVyOSにログイン後、最低限の設定を投入します。
$ configure # set service ssh # set interfaces ethernet eth0 address dhcp # commit
vyosに割り当てられたIPアドレスを調べます。
vyos@vyos:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 fe80::200:ff:fe00:0/64 scope link
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether bc:24:11:ba:36:46 brd ff:ff:ff:ff:ff:ff
altname enp0s18
altname ens18
inet 192.168.10.8/24 brd 192.168.10.255 scope global dynamic eth0
valid_lft 86361sec preferred_lft 86361sec
inet6 fe80::be24:11ff:feba:3646/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether bc:24:11:28:71:2c brd ff:ff:ff:ff:ff:ff
altname enp0s19
altname ens19
inet6 fe80::be24:11ff:fe28:712c/64 scope link
valid_lft forever preferred_lft forever
今回の環境では192.168.10.8であることが分かりました。
以後はWindows端末からTeratermを使って192.168.10.8へSSH接続し、設定投入はコピペで行うようにします。
PPPoEサーバー設定
VyOSのeth1ポートへPPPoEサーバーの設定を投入します。
設定値は以下の通りにしました。
PPPoEのIPアドレス払い出しは/32でネットマスクされており、PPPoEでVyOSと接続するだけでは各拠点ルーター同士は疎通できません。
そのため、gatewayをeth1インタフェースに設定して、各拠点が疎通できるようにします。
- 接続アカウント:4拠点分を登録
- eth1 IPアドレス:10.0.0.254/24
- PPPoE 固定IPアドレス(センター拠点アドレス):10.0.0.1
- PPPoE-DHCP(他拠点アドレス):10.0.0.2 - 10.0.0.4
- PPPoE-GW: 10.0.0.254(eth1のIPアドレス)
- PPPoE-DNS: 設定しない
設定値は、現地ONUのアカウント、IPアドレスに合わせてもらっても構いません。
set interfaces ethernet eth1 address 10.0.0.254/24 set service pppoe-server access-concentrator Falcon1-server set service pppoe-server authentication local-users username falcon1 password 'falcon1-pass' set service pppoe-server authentication local-users username falcon2 password 'falcon2-pass' set service pppoe-server authentication local-users username falcon3 password 'falcon3-pass' set service pppoe-server authentication local-users username falcon4 password 'falcon4-pass' set service pppoe-server authentication local-users username falcon1 static-ip 10.0.0.1 set service pppoe-server authentication mode local set service pppoe-server client-ip-pool Falcon-Pool range 10.0.0.2-10.0.0.4 set service pppoe-server default-pool 'Falcon-Pool' set service pppoe-server gateway-address '10.0.0.254' set service pppoe-server interface eth1 commit
最後のcommitを行わないと設定が反映されませんので注意してください。
vyosの設定は以上です。
NEC IXルーター設定
NEC IXルーターは一度初期化してWeb設定で行うのが最も簡単です。(IXのWeb設定方法はこちらを参照)
IXのWeb設定画面から下図を参考にしてPPPoE接続の設定をします。
IDとパスワードはVyOSに設定したアカウント情報(例:falcon1/falcon1-pass)を投入します。

NEC IXのコンソールに入り、PPPoEポートがping応答するようnapt設定を投入します。
Router(config)# interface GigaEthernet0.1 Router(config-GigaEthernet0.1)# ip napt static GigaEthernet0.1 1 Router(config-GigaEthernet0.1)# exit
NEC IX側の設定は以上です。
接続確認
IX:GE0ポートとVyOS:eth1をLAN接続し、IXのPPPoEランプが点灯することを確認します。
VyOS側からpingで疎通テストを行い応答があることを確認します。
vyos@vyos:~$ ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.162 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.150 ms 64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.144 ms 64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=0.122 ms
VyOSでPPPoEサーバーの状態確認もできます。
vyos@vyos:~$ show pppoe-server sessions ifname | username | ip | ip6 | ip6-dp | calling-sid | rate-limit | state | uptime | rx-bytes | tx-bytes --------+----------+----------+-----+--------+-------------------+------------+--------+----------+----------+---------- ppp0 | falcon1 | 10.0.0.1 | | | 00:60:b9:fd:24:5c | | active | 00:00:15 | 2.6 KiB | 208 B
※注意:YAMAHAルーター(RTXシリーズなど)を使う場合は以下オプションの投入が必要です。YAMAHAルーターはwebで設定を行うとccp(圧縮)が適用されません。
set service pppoe-server ppp-options disable-ccp
pingでの疎通確認がとれれば、センタールータ~拠点ルータ間のVPN構築もできるようになります。
このシステムを構築することで現地と同じ本番設定で検証ができ、現地作業が大幅に軽減できます。
難点としては、VyOSはGUIを持たないことです。FortigateなどのGUIでしか設定をしていない方には少し難しいかもしれません。

