見出し画像

【全文無料】VyOSをPPPoEサーバーにしてみよう(バージョンによるConfig比較もあるよ)

意外と久し振りになったネットワークネタです。
IPv4でインターネットに繋いだ事のある皆様であれば、
そのつもりはなくても一度はお世話になっているであろう PPPoE 。
略さずに言うと Point-to-Point Protocol over Ethernet 。
頭文字を取って PPPoE 。
読み方は普通に「ぴーぴーぴーおーいー」

普通に Linux 系サーバーでも実装できなくはないのですが、
パッケージをインストールして設定ファイル弄って起動させてと
基本そう言う物ばっかりですけど意外と面倒。(ンドクセッ)
勿論 C 社製品等のアプライアンス製品を
PPPoE サーバーとして使用するのも良いのですが、
VM や Docker で実装出来たら新たに導入しなくても良いですよね。

そんなワケで、我らが VyOS にPPPoEサーバーとして働いてもらおう、
と言うのが今回の趣旨です。
VyOS をインストールしたらパッケージを導入したりする必要もなければ
設定をちょろっと入れるだけ、commit してしまえば
当たり前のように起動してくれるのでより簡単です。

とは言えヨソでもこんなネタは普通にありそうなので、
ウチでは 1.3 系 と 1.4 系で Config 体系の違いを含めて紹介します。


1.3 系の PPPoE サーバー機能設定例

早速紹介します。

set service pppoe-server authentication local-users username client1@example.com password 'foobar'
set service pppoe-server authentication mode 'local'
set service pppoe-server client-ip-pool start '198.51.100.101'
set service pppoe-server client-ip-pool stop '198.51.100.200'
set service pppoe-server gateway-address '198.51.100.1'
set service pppoe-server interface eth1
set service pppoe-server name-server '198.51.100.2'

他にも色々オプションはありますが最低限これだけあれば大丈夫です。
一応一つずつ説明していきます。

set service pppoe-server authentication local-users username client1@example.com password 'foobar'

長いから2行に見えますけど1行のコマンドです。

ユーザーIDとパスワードの設定です。読んで頂ければその通りだよね、
としか表現のしようがないので以上です。

set service pppoe-server authentication mode 'local'

認証モードの設定です。「 local 」もしくは「 radius 」が選べます。
今回の例では「 local 」ですが別途 RADIUS サーバーを構築して
そちらに認証機能を任せるのも手です。
と言うより、世の中の ISP 事業者は殆どそうしているはずです。
二次 ISP 事業者とかその辺は知らんすけど。

set service pppoe-server client-ip-pool start '198.51.100.101'
set service pppoe-server client-ip-pool stop '198.51.100.200'

クライアントに払い出す IP アドレスの範囲を指定します。
今回の事例では「198.51.100.101 ~ 198.51.100.200」としています。
始点が「 start 」、終点が「 stop 」。そのままですね。

set service pppoe-server gateway-address '198.51.100.1'

クライアントに払い出すデフォゲの指定です。
PPPoE の認証が完了したクライアントはデフォゲを
上記指定のアドレスに向けます。
なお、「 AD 値 = 210 」なので何も考えずに他のルーティングプロトコルで
デフォルトルートを設定した場合はそちらが優先されます。
AD 値は値の小さい方が優先されるのは言わずもがなですが、
C 社基準ですけど AD 値的に一番弱い iBGPでも AD=200 ですからね。
PPPoE インターフェースにデフォゲを向けたいか、
別途違うデフォゲが必要かはケースバイケースなので
その時に意思に委ねましょう。

set service pppoe-server name-server '198.51.100.2'

クライアントに払い出す名前解決サーバーの指定です。
こちらもクライアント側で別途名前解決サーバー指定したいと言った
パターンもあるでしょうから、その時々で最適解を見つけて下さい。
因みに設定例では「 198.51.100.2 」と設定しましたが、
別途 DNS サーバーを建てたわけではないので悪しからず。
以前在籍した会社の検証環境では建ててましたが。

1.4 系の PPPoE サーバー機能設定例

こちらもサクッと紹介します。
一意のパラメーターは 1.3 系の時と同様です。

set service pppoe-server authentication local-users username client1@example.com password 'foobar'
set service pppoe-server authentication mode 'local'
set service pppoe-server client-ip-pool Tunaboy-pool range '198.51.100.101-198.51.100.200'
set service pppoe-server default-pool 'Tunaboy-pool'
set service pppoe-server gateway-address '198.51.100.1'
set service pppoe-server interface eth1
set service pppoe-server name-server '198.51.100.2'

基本的には 1.3 系と大きく変わっている箇所はないです。
唯一の変更点は

set service pppoe-server client-ip-pool Tunaboy-pool range '198.51.100.101-198.51.100.200'
set service pppoe-server default-pool 'Tunaboy-pool'

と、クライアントに払い出す IP アドレスの範囲指定が
スタート~ストップではなくワンライナーでレンジ指定になります。
且つ IP プールに名称を付ける必要が出て来ており、付けた名称を
「 default-pool 」と言う引数にて指定する必要もあります。
と表現すると面倒に聞こえますが要は
そういうもんになった」程度の解釈で問題ないと思います。

固定IPオプション

こちらは 1.3 系も 1.4 系も変わらず以下の通りです。

set service pppoe-server authentication local-users username client201@example.com static-ip 198.51.100.201

読めばその通り過ぎて特筆すべきものはないのですが、
普段お使いの ISP 事業者の固定 IP オプションって
こんな感じで設定しているんだねー、と言う気分を味わえるかと思います。
実際にはもっと複雑ですが。

一応クライアント設定も

こちらもシンプルなもんです。

set interfaces pppoe pppoe0 authentication password 'foobar'
set interfaces pppoe pppoe0 authentication username 'client1@example.com'
set interfaces pppoe pppoe0 source-interface 'eth1'

VyOS は ABC 順に Config が並ぶのでパスワードの後にユーザー ID が
来てしまいますけど、その辺を設定した上で「 source-interface」で
PPPoE を喋るインターフェースを指定してあげるだけです。

たったこれだけでぇ~(何とかボーイ風)

vyos@vyos@v:~$ sho int pppoe
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
pppoe0           198.51.100.101/32                 u/u
vyos@vyos:~$

クライアントとして IP アドレスを貰えます。
本番環境であればここからインターネッツの海に飛び込むわけですね。

まとめ

前述の通り、現実的に ISP 事業者が提供するサービスで
RADIUS 認証やっていない事は殆どないはずです。
勿論 RADIUS 認証周りの検証をしたいと言うのであれば実装すべきですが
RADIUS サーバー自体の構築まで話を広げなくてはならなかったり
その他諸々必要な技術が出て来てしまうので省略させて頂きました。

ただ、クライアントであるルーターの挙動を確認するとか、
PPPoE サーバーから払い出された IP アドレスを使用して
VPN 接続するための環境を整えたいと言った
サービスとしての検証用途であれば
充分、その要件は満たしていると思いますのでご参考になれば幸いです。

最後にいつもの頂けるとも思っていないお気持ち乞食で〆たいと思います。
何卒っ。あ、スキは普通に欲しいです、励みになりますので。

ここから先は

0字

¥ 100

Amazon Payで支払うと最大2%還元のチャンス! 9/30まで

この記事が気に入ったらチップで応援してみませんか?