こんにちは!NW部のSです。
今回、Virtual Box上に構築したPPPoEサーバと別途用意したPC(外部PC)でPPPoE接続してIPアドレスの取得をしていきます!
今回用意した環境は、以下になります。
- 仮想化ソフト:Vitual Box 7.1.10
- OS:Ubuntu 24.04.3
PPPoEとは
Virtual BoxでPPPoEの動作検証
PPPoEサーバ側の準備
- NAT
- ホストオンリーアダプタ
sudo apt install openssh-server -y=== インストール完了後 ===systemctl enable ssh.servicesystemctl start ssh.service=== Teratermで接続 ===
sudo apt updatesudo apt install rp-pppoe
apt install build-essntial wgetwget https://downloads.uls.co.za/rp-pppoe/rp-pppoe-4.0.tar.gztar zxvf rp-pppoe-4.0.tar.gzcd rp-pppoe/./configuremakemake install
refuse-pap # PAP認証を拒否するrequire-chap # CHAP認証を要求するlcp-echo-interval 60 # 60秒ごとにLCPエコーパケットを送信(死活監視)lcp-echo-failure 2 # 2回エコー応答がなければ切断mru 1492 # MRU(受信最大フレームサイズ)を1492バイトに設定mtu 1492 # MTU(送信最大フレームサイズ)を1492バイトに設定nopcomp # PPPヘッダ圧縮(Pcomp)を無効化nodeflate # Deflate圧縮を無効化nobsdcomp # BSD圧縮を無効化novj # Van Jacobson TCPヘッダ圧縮を無効化novjccomp # VJ圧縮の圧縮オプションを無効化nopredictor1 # Predictor-1圧縮を無効化ipcp-accept-local # ローカルIPアドレスの提案を受け入れるipcp-accept-remote # リモートIPアドレスの提案を受け入れるnodefaultroute # PPP接続時にデフォルトルートを追加しないms-dns 8.8.8.8 # クライアントへDNSサーバのアドレスを通知ms-dns 8.8.4.4 # クライアントへDNSサーバのアドレスを通知usepeerdns # ピア(クライアント)から提案されたDNSを使用noipdefault # デフォルトルートを設定しないproxyarp # プロキシARPを有効にするnoipx # IPXプロトコルを無効化debug # デバッグ情報をログに出力
user1 * password1 *
PPPoEクライアント側の準備
noauth # 認証不要。ピア側から認証を行わないdefaultroute # PPP接続確立時にデフォルトルート(経路)を自動追加replacedefaultroute # 既存のデフォルトルートをPPP接続のものに置き換えるhide-password # ログ等に接続パスワードを表示しないpersist # 接続が切断されても自動的に再接続を試みるmtu 1492 # MTU(最大転送単位)を1492バイトに設定plugin rp-pppoe.so <インターフェース名> # rp-pppoe.soプラグインを利用し、<インターフェース名>でPPPoE接続user "user1" # PPP認証時に使うユーザー名("user1")
user1 * password1 *
PPPoE接続をテスト
sudo pppoe-server -I enp0s8 -L 192.168.0.100 -R 192.168.0.10 -N 5・ -I 待ち受けるインターフェース ※インターフェース名は、環境ごとに確認してください・ -L PPPoEサーバ用のIPアドレス・ -R 配布するIPアドレスの開始アドレス・ -N 配布するIPアドレスの個数
sudo pon pppoe-client
"Plugin rp-pppoe.so loaded."
ip address
外部PCとPPPoEで接続するテスト
PPPoEサーバ側の追加設定
- NAT # 外部PCがインターネットに出るため
- ブリッジアダプター # 外部PCとVitual Box上のVMとで通信させるため
sudo sysctl -w net.ipv4.ip_forward=1 # 一時的な有効化sudo iptables -t nat -A POSTROUTING -o <外部IF> -j MASQUERADE
外部PCからの接続
1. PPPoEサーバで待ち受けを開始(前述コマンドと同じ)
2. 外部PC(Windowsなど)からPPPoE接続を実施
3. 外部PC側でIPアドレスを取得できているか確認(例:ipconfig /all)
これで、外部PCもインターネット接続ができるようになります。
以上で、VirtualBox上に構築したPPPoEサーバと外部PC間での接続検証は問題なく完了となります。ご参考になれば幸いです。





