はじめに
時に、PPPoEできるサーバが欲しい時があります。PPPoEをするルータを納品するとき、とりあえず設定したPPPoEの設定が正しいかだけでも分かると、やはり安心できます。そんなときに試した際の記憶です。
注意
個人的にRedHatに触っていた期間があるので、検証ではAlmaLinuxを使うことが多いです。しかし、AlmaLinuxで構築しようとしたところ、途中で挫折しました。どうも、pppoeができるパッケージが配布されなくなったかなんかで、とにかく「dnfを叩いてconfを編集して速攻サービス起動!!」というお手軽なルートでは出来ず。
ということで、Ubuntuで構築しました。バージョンは22.04 LTS。
※半分備忘録みたいなものなので、説明は雑です。お許しを。
構築
pppoeをインストールします。
1 |
apt-get install pppoe |
/etc/ppp内のファイルを確認。
chap-secretsとoptionsを編集します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
root@pppoe02:/etc/ppp# ll total 92 drwxr-xr-x 8 root dip 4096 Mar 4 15:15 ./ drwxr-xr-x 98 root root 4096 Mar 4 15:11 ../ -rw------- 1 root root 80 Mar 4 15:11 chap-secrets -rwxr-xr-x 1 root root 1757 Feb 23 2022 ip-down* drwxr-xr-x 2 root root 4096 Mar 4 15:11 ip-down.d/ -rwxr-xr-x 1 root root 1807 Feb 23 2022 ip-pre-up* drwxr-xr-x 2 root root 4096 Feb 24 2022 ip-pre-up.d/ -rwxr-xr-x 1 root root 1898 Feb 23 2022 ip-up* drwxr-xr-x 2 root root 4096 Mar 4 15:11 ip-up.d/ -rwxr-xr-x 1 root root 834 Feb 23 2022 ipv6-down* drwxr-xr-x 2 root root 4096 Feb 24 2022 ipv6-down.d/ -rwxr-xr-x 1 root root 974 Feb 23 2022 ipv6-up* drwxr-xr-x 2 root root 4096 Feb 24 2022 ipv6-up.d/ -rw-r--r-- 1 root root 13207 Mar 4 15:15 options -rw-r--r-- 1 root root 13209 Feb 23 2022 options.org -rw------- 1 root root 1628 Mar 4 15:11 pap-secrets drwxr-s--- 2 root dip 4096 Mar 4 15:11 peers/ |
optionsを編集します。編集後に有効されている値を示しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
root@pppoe02:/etc/ppp# cat options | grep -v -e "^#" -e "^\s*$" asyncmap 0 auth crtscts lock hide-password modem +pap +chap proxyarp lcp-echo-interval 30 lcp-echo-failure 4 noipx require-chap |
chap-secretsを編集します。のちのルータ設定に合わせます。
1 2 3 4 |
root@pppoe02:/etc/ppp# tail chap-secrets # Secrets for authentication using CHAP # client server secret IP addresses pppoeuser01 * "password" 1.2.3.4 |
PPPoEがルータのようにルーティングできるようにします。
長く使う場合は、/etc/sysctl.confを編集して永続化したほうがいいです。
1 2 3 4 5 |
root@pppoe02:/etc/ppp# echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward 1 root@pppoe02:/etc/ppp# root@pppoe02:/etc/ppp# cat /proc/sys/net/ipv4/ip_forward 1 |
ルータ側の設定を簡単に載せます。Ciscoの891fjで検証してます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
RT01#sh run | section Dialer1 interface Dialer1 ip address negotiated ip virtual-reassembly in encapsulation ppp ip tcp adjust-mss 1314 dialer pool 1 ppp authentication chap callin ppp chap hostname pppoeuser01 ppp chap password 7 13151601181B0B382F no cdp enable RT01#sh run | section Loopback interface Loopback1 ip address 1.2.3.4 255.255.255.248 RT01#sh run | section GigabitEthernet8 interface GigabitEthernet8 no ip address duplex full speed 1000 pppoe enable group global pppoe-client dial-pool-number 1 |
あとはルータの1.2.3.4を付与するようにサーバ起動コマンドを実行。
1 |
pppoe-server -I ens33 -L 1.2.3.3 -R 1.2.3.4 -N 10 -S myPPPoE -O /etc/ppp/options |
うまくいくと、ルータ側でPPPoEが成功していることを確認できます。
1 2 3 4 |
RT01#sh ppp all Interface/ID OPEN+ Nego* Fail- Stage Peer Address Peer Name ------------ --------------------- -------- --------------- -------------------- Vi2 LCP+ IPCP+ LocalT 1.2.3.3 pppoe02 |
あとはおまけ。サーバ側のtcpdumpコマンドを記載しておきます。
1 |
tcpdump -i ens33 -n -vvv ether proto 0x8863 |
PADI→PADO→PADR→PADSの順にログが出力されていますが、うまくいかないときに、どこで出力が止まるかが分かると、トラシュに役たちます。
細かいことはChatCPTに聞くと答えてくれますので、是非ハマったときは聞いてみてください。
1 2 3 4 5 6 7 8 |
root@pppoe02:/etc/ppp# tcpdump -i ens33 -n -vvv ether proto 0x8863 tcpdump: listening on ens33, link-type EN10MB (Ethernet), snapshot length 262144 bytes 08:02:25.929483 PPPoE PADI [Service-Name] [Host-Uniq 0x5000000900000E0C] 08:02:25.929822 PPPoE PADO [AC-Name "pppoe02"] [Service-Name "myPPPoE"] [AC-Cookie 0xF8044C22A5751D2324882D105EAC894414090000] [Host-Uniq 0x5000000900000E0C] 08:02:25.930744 PPPoE PADO [AC-Name "pppoe02"] [Service-Name "myPPPoE"] [AC-Cookie 0xB4B91E304CF8E71BBA8B1D18105333CEFB080000] [Host-Uniq 0x5000000900000E0C] 08:02:25.931398 PPPoE PADO [AC-Name "pppoe02"] [Service-Name "myPPPoE"] [AC-Cookie 0xBF46FA13AC20DBA0F2A96393358BF0EDB8080000] [Host-Uniq 0x5000000900000E0C] 08:02:27.977357 PPPoE PADR [AC-Name "pppoe02"] [AC-Cookie 0xF8044C22A5751D2324882D105EAC894414090000] [Host-Uniq 0x5000000900000E0C] [Service-Name] 08:02:27.980049 PPPoE PADS [ses 0x3] [Service-Name "myPPPoE"] [Host-Uniq 0x5000000900000E0C] |
以上。