VyOSでPPPoE回線のルーター検証システムを構築

Telecommunication

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でしか設定をしていない方には少し難しいかもしれません。

タイトルとURLをコピーしました