はじめに
時に、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]  | 
					
以上。
  
  
  
  
