WSL2 で pppoe サーバを立ててみようとした。

# 環境

[WSL で Fedora を使う](http://var.blog.jp/archives/81457333.html) を参照して入れた wsl2 上の Fedra に pppoe サーバを入れて、pppoe 設定の練習環境を作る。
![概要.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/edaff8a4-e755-13cc-9589-352652d9cd06.png)
ちょっと修正
![スライド1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/0f0110b2-b1bc-c7a6-83e4-ef83b8a2de64.png)

バージョンなど
Microsoft Windows [Version 10.0.19042.572]
Fedora Remix 32 on WSL2 (Fedora 32)
CISCO 1921 CISCO1921/K9 c1900-universalk9-mz.SPA.156-3.M.bin (ipbase & security)
Configuration register is 0x3962 だったので config-register 0x2102 を実施。

```tcsh:
# uname -a
Linux HINAKO 4.19.84-microsoft-standard #1 SMP Wed Nov 13 11:44:37 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/os-release
...
ID_LIKE=fedora
VERSION_ID=32
...
# /mnt/c/Windows/System32/wsl.exe -l -v
  NAME           STATE           VERSION
* fedoraremix    Running         2
  Debian         Stopped         2
# /mnt/c/Windows/System32/cmd.exe
'\\wsl$\fedoraremix\root'
上記の現在のディレクトリで CMD.EXE を開始しました。
UNC パスはサポートされません。Windows ディレクトリを既定で使用します。
Microsoft Windows [Version 10.0.19042.572]
(c) 2020 Microsoft Corporation. All rights reserved.
C:\Windows>
```

Windows の繋がっている自宅内のネットワーク 192.168.0.0/24
Cisco 1921 (クライアント) のローカル側のネットワーク 172.16.0.1/24
とする。pppoe の両端は IP アドレスを振らない (unnumberd) とする。

# pppoe サーバーのインストール

`dnf search pppoe` で探すと rp-pppoe というのがあるようなのでそれを入れる。

```tcsh:
[root@HINAKO ~]# dnf install -y rp-pppoe
```

## pppoe サーバの設定をする

```config:/etc/ppp/pppoe-server-options
# PPP options for the PPPoE server
# LIC: GPL

# pap は平文でユーザ名、パスワードを流すので chap を使う
# require-pap
refuse-pap
require-chap
# refuse-chap

# chap-interval 5
# chap-max-challenge 10
# login
lcp-echo-interval 60
lcp-echo-failure 2

# FLET's 回線だと MRU, MTU が 1454 なので偽装する
# PPPoE標準は 1492
mru 1454
mtu 1454

## パケット圧縮 (8~15)
# deflate 15,15
# bsdcomp 15,15
## TCP/IP ヘッダ圧縮 (2~16)
# vj-max-slots 16
## Predictor-1 で送出フレームを圧縮する
# predictor1

# 圧縮しない
# 圧縮しない
nopcomp
nodeflate
nobsdcomp
novj
novjccomp
nopredictor1

# ipcp クライアントが、local や remote の IP を指定してきた場合、それを受け入れる
ipcp-accept-local
ipcp-accept-remote
# ipcp ネゴシエーションした後、相手のアドレスを defaultroute に追加しない
nodefaultroute

# クライアントに渡す dns のアドレス
ms-dns 1.1.1.1
ms-dns 8.8.4.4

usepeerdns
# クライアントが明示的に IP アドレスを指定していない場合、IPCP で IP アドレスを渡す
noipdefault

proxyarp

# IPXCP, IPX プロトコルは通さない
noipx

debug
```

## chap のパスワードファイルを作成
テスト用のユーザとパスワードを設定。IP アドレスは * にして pppoe-server に自動生成してもらう。

```config:/etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
user01@test.home	*	pass1	*
user02@test.home	*	pass2	*
user03@test.home	*	pass3	*
user04@test.home	*	pass4	*
```


# CISCO ルータ側の Config を作る (クライアント)

ちょいちょい省略しながら

```CISCO:running-config
hostname HomeRT
interface GigabitEthernet0/0
 no ip address
 pppoe enable group global
 pppoe-client dial-pool-number 1
!
interface GigabitEthernet0/1
 description Home LAN
 ip address 172.16.0.1 255.255.255.0
 ip tcp adjust-mss 1414
!
interface Dialer1
 ip address negotiated
 ip mtu 1454
 encapsulation ppp
 dialer pool 1
 dialer-group 1
 ppp authentication chap callin
 ppp chap hostname user01@test.home
 ppp chap password 0 pass1
!
ip route 0.0.0.0 0.0.0.0 Dialer1 permanent
!
dialer-list 1 protocol ip permit
!
...snip
end
```

# Windows のインターフェイスと Fedora の eth0 を繋ぐ
Windows 10 のスタートメニューを右クリックし「ネットワーク接続(W)」を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/6af6a2a1-2078-9eec-5d2a-14497de0cb1b.png)

「アダプターのオプションを変更する」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/963ab29b-5a4f-f221-543d-4b0018d5437b.png)

インターネットに出られる Windows のインターフェイス「イーサネット 3」と、WSL のインターフェイス 「vErhernet (WEL)」 を選択しブリッジ接続する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/de409887-4a63-f30b-216f-4ad94fe5c8a9.png)

「ネットワークブリッジ」インターフェイスができるので、これをダブルクリックして IP アドレスを振る。
※何故か DHCP で IP を取得することができないので、手動で割り当てが必要。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/51514329-23b4-2e1b-342e-aabff4701e4b.png)

設定が完了すると、最初に「イーサネット 3」の状態欄に表示されていた「COOKING_F」が「ネットワークブリッジ」に表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306041/f7bbc55f-9b12-7108-613c-4b4e25569e80.png)

# Fedora に DHCP でアドレスを貰う
この状態では、WSL 内の Fedora からインターネットに繋ぐことができなくなるので DHCP で IP アドレスを振ってやる。

## ifcfg ファイルを編集
Fedora のインターフェイスを dhcp でアドレスを貰うために /etc/sysconfig/network-scripts/ifcfg-eth0 のファイルを書き換えて dhclient を実行する。

書き替えるファイルの内容 [9.2. インターフェース設定ファイル] (https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/deployment_guide/s1-networkscripts-interfaces) 等を参照。

```bash:/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
DEVICE="eth0"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
ONBOOT="yes"
USERCTL="yes"
```
ダブルクウォートは要らないのですが、色が変わるので付けてみました。

## アドレスを取得
上記内容にファイルを書き換えてから DHCP でアドレスを取得する

```tcsh:
[root@HINAKO ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@HINAKO ~]# ip -4 a show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 172.22.169.198/20 brd 172.22.175.255 scope global eth0
       valid_lft forever preferred_lft forever
[root@HINAKO ~]# dhclient eth0
[root@HINAKO ~]# ip -4 a show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 172.22.169.198/20 brd 172.22.175.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.0.28/24 brd 192.168.0.255 scope global dynamic eth0
       valid_lft 86458sec preferred_lft 86458sec
[root@HINAKO ~]#                            
```
eth0 に inet 192.168.0.28/24 が割り当てられた。

# pppoe-server を起動 (サーバ側)

```tcsh:
[root@HINAKO ~]# pppoe-server -I eth0:1 -S 'Fedora"
```

## CISCO の状態を確認 (クライアント側)

```IOS:
HomeRT#show pppoe session
     1 client session

Uniq ID  PPPoE  RemMAC          Port                    VT  VA         State
           SID  LocMAC                                      VA-st      Type
    N/A      1  0015.5de5.bc3c  Gi0/0                   Di1 N/A        SHUTDOWN
                002c.c8a8.95a0
HomeRT#show log
...snip...
*Oct 17 06:11:51.079: %DIALER-6-BIND: Interface Vi2 bound to profile Di1
*Oct 17 06:11:51.083: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to up
*Oct 17 06:11:51.083: %DIALER-6-UNBIND: Interface Vi2 unbound from profile Di1
*Oct 17 06:11:51.087: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to down
*Oct 17 06:12:13.351: %DIALER-6-BIND: Interface Vi2 bound to profile Di1
*Oct 17 06:12:13.355: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to up
*Oct 17 06:12:13.355: %DIALER-6-UNBIND: Interface Vi2 unbound from profile Di1
*Oct 17 06:12:13.359: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to down
*Oct 17 06:12:35.659: %DIALER-6-BIND: Interface Vi2 bound to profile Di1
*Oct 17 06:12:35.663: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to up
*Oct 17 06:12:35.663: %DIALER-6-UNBIND: Interface Vi2 unbound from profile Di1
*Oct 17 06:12:35.667: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to down
*Oct 17 06:12:57.931: %DIALER-6-BIND: Interface Vi2 bound to profile Di1
*Oct 17 06:12:57.935: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to up
*Oct 17 06:12:57.935: %DIALER-6-UNBIND: Interface Vi2 unbound from profile Di1
*Oct 17 06:12:57.939: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to down
```
mac アドレスが表示されているのに SHUTDOWN 表示で、ログには up/down 表示が出続けている。繋がっていない雰囲気。

## Fedora の状況を確認 (サーバ側)

```tcsh:
[root@HINAKO ~]# ps ax | grep pppoe
  612 ?        S      0:00 pppoe-server -I eth0:1 -S Fedora
  708 pts/2    S+     0:00 grep pppoe
```
プロセスは落ちてないけども、syslogd がなく /var/log にはログが出力されておらず dmesg にも記録なし。何が起こっているか分からないので syslog を取れるようにする。

# Fedora に syslog を設定する
`dnf search syslog` とすると使えるのは `rsyslog` と `syslog-ng` の二つ。syslogd が一番　簡単で良いんだけどなぁ。と思いながらも、どれを選んでも機能に問題ないだろうし、適当に `syslog-ng` にしてみる。

## Fedora へ syslog-ng をインストール
```tcsh:
[root@HINAKO log]# dnf install syslog-ng
```

## 設定ファイルを編集
ppp のログを /var/log/ppp/ppp.log に吐くことにする。
filter f_default は、ppp, pppoe のログを吐かないように修正し、下の 3行を追加。

```syslog-ng.conf:/etc/syslog-ng/syslog-ng.conf
filter f_default    { not (program("pppd") or program("pppoe-server")) and \
                        level(info..emerg) and \
                        not (facility(mail) or facility(authpriv) or facility(cron)); };

destination d_ppp { file("/var/log/ppp/ppp.log"); };
filter f_ppp   { (program("pppd") or program("pppoe-server")) and level(debug..emerg) };
log { source(s_sys); filter(f_ppp); destination(d_ppp); };
```

## syslog-ng を起動
`syslog-ng -s` で設定ファイルに間違いがないことを確認して `syslog-ng` を起動。 (WSL2 では systemctl は使えない模様)

```tcsh:
[root@HINAKO log]# syslog-ng -s
[root@HINAKO log]# syslog-ng
```

# 再び Fedora の状況を確認 (サーバ側)

```tcsh:
[root@HINAKO log]# cat /var/log/ppp/ppp.log
...
Oct 17 06:22:11 HINAKO pppoe-server[932]: Session 61 created for client 00:2c:c8:a8:95:a0 (10.67.15.61) on eth0:1 using Service-Name ''
Oct 17 06:22:11 HINAKO pppd[932]: Warning: couldn't open ppp database /var/run/ppp/pppd2.tdb
Oct 17 06:22:11 HINAKO pppd[932]: pppd 2.4.7 started by root, uid 0
Oct 17 06:22:11 HINAKO pppd[934]: Fatal signal 11
Oct 17 06:22:11 HINAKO pppd[934]: Exit.
Oct 17 06:22:11 HINAKO pppd[932]: Couldn't get channel number: Input/output error
Oct 17 06:22:11 HINAKO pppd[932]: Script /usr/sbin/pppoe -n -I eth0:1 -e 61:00:2c:c8:a8:95:a0 -S '' finished (pid 934), status = 0x7f
Oct 17 06:22:11 HINAKO pppd[932]: Exit.
Oct 17 06:22:11 HINAKO pppoe-server[612]: Session 61 closed for client 00:2c:c8:a8:95:a0 (10.67.15.61) on eth0:1
Oct 17 06:22:11 HINAKO pppoe-server[612]: Sent PADT
Oct 17 06:22:11 HINAKO pppoe-server[612]: PADT for session 61 received from 00:2C:C8:A8:95:A0; should be from 00:00:00:00:00:00
Oct 17 06:22:33 HINAKO pppoe-server[936]: Session 62 created for client 00:2c:c8:a8:95:a0 (10.67.15.62) on eth0:1 using Service-Name ''
Oct 17 06:22:33 HINAKO pppd[936]: Warning: couldn't open ppp database /var/run/ppp/pppd2.tdb
Oct 17 06:22:33 HINAKO pppd[936]: pppd 2.4.7 started by root, uid 0
Oct 17 06:22:33 HINAKO pppd[938]: Fatal signal 11
Oct 17 06:22:33 HINAKO pppd[938]: Exit.
Oct 17 06:22:33 HINAKO pppd[936]: Couldn't get channel number: Input/output error
Oct 17 06:22:33 HINAKO pppd[936]: Script /usr/sbin/pppoe -n -I eth0:1 -e 62:00:2c:c8:a8:95:a0 -S '' finished (pid 938), status = 0x7f
Oct 17 06:22:33 HINAKO pppd[936]: Exit.
Oct 17 06:22:33 HINAKO pppoe-server[612]: Session 62 closed for client 00:2c:c8:a8:95:a0 (10.67.15.62) on eth0:1
Oct 17 06:22:33 HINAKO pppoe-server[612]: Sent PADT
Oct 17 06:22:33 HINAKO pppoe-server[612]: PADT for session 62 received from 00:2C:C8:A8:95:A0; should be from 00:00:00:00:00:00
```
pppd が Signal 11 で落ちてますねぇ。SEGV ですかぁ。もう枯れてる技術だと思ったんですが、そうでもないんでしょうか。

# pppd を自前でビルドする
Signal 11 というと、その昔 gcc4 の頃に最適化が腐ってて -O2 でコンパイルすると Signal 11 が頻発することがありました。そんな過去の記憶から、最適化を外してコンパイルしてみます。

## SRPM をダウンロード
ソースファイルはどこにあるのかな？と思いましたが。よく考えると dnf は rpm ですから SRPM を拾ってきたらいいのか！と気づき実行。iij さんの ftp サーバをうろうろしてたら見つけました。これですね。ダウンロード！

```tcsh:
[root@HINAKO ~]# curl -O http://ftp.iij.ad.jp/pub/linux/Fedora/fedora/linux/updates/31/Everything/SRPMS/Packages/p/ppp-2.4.7-35.fc31.src.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:11 --:--:--     0
curl: (6) Could not resolve host: ftp.iij.ad.jp
[root@HINAKO ~]# ip route show                                                                      2020-10-18 5:21:21
default via 192.168.0.254 dev eth0
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.30
[root@HINAKO ~]# ping 192.168.0.254                                                                 2020-10-18 5:22:04
PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data.
From 192.168.0.30 icmp_seq=1 Destination Host Unreachable
From 192.168.0.30 icmp_seq=2 Destination Host Unreachable
From 192.168.0.30 icmp_seq=3 Destination Host Unreachable
^C
--- 192.168.0.254 ping statistics ---
5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 4190ms
pipe 4
```
おや？どうやら Windows で組んだブリッジがおかしくなったようです。まぁ、今は関係ないので、Wi-Fi で繋いで Windows からダウンロード、コピーします。(ここで Wi-Fi をブリッジも繋げるとネットに繋がらなくなります。デバイスマネージャで「ハードウェア更新のスキャン」とかするとデバイスマネージャの応答が無くなります。えぇ、Windows のブリッジはバグってます。使えません。)

```tcsh:
[root@HINAKO ~]# mv ~jp_yen/winhome/Downloads/ppp-2.4.7-35.fc31.src.rpm .
[root@HINAKO ~]# ls -l ppp-2.4.7-35.fc31.src.rpm
-rwxr--r-- 1 jp_yen jp_yen 789162 Oct 18 05:26 ppp-2.4.7-35.fc31.src.rpm
```
取得完了。

## ビルド！...の前に
よしコンパイルしてやるぞ！

```tcsh:
[root@HINAKO ~]# rpmbuild --rebuild ppp-2.4.7-35.fc31.src.rpm
Installing ppp-2.4.7-35.fc31.src.rpm
setting SOURCE_DATE_EPOCH=1586217600
error: Failed build dependencies:
        glib2-devel is needed by ppp-2.4.7-35.fc32.x86_64
        libpcap-devel is needed by ppp-2.4.7-35.fc32.x86_64
        systemd-devel is needed by ppp-2.4.7-35.fc32.x86_64
[root@HINAKO ~]# dnf install glib2-devel libpcap-devel systemd-devel
```
と思ったら、色々足りませんと言ってきやがります。まとめてインストールしてやんよ...あ、Fedora からネットに繋がらなくなってた。再起動するか。
気を取り直して、再起動後ブリッジを設定、dhcp でアドレスを取得。からの dnf で必要なヘッダなどをインストール。

```tcsh:
[root@HINAKO ~]# dnf install glib2-devel libpcap-devel systemd-devel                                2020-10-18 7:47:39
Last metadata expiration check: 0:02:01 ago on Sun 18 Oct 2020 07:46:13 AM JST.
Dependencies resolved.
========================================================================================================================
 Package                          Architecture           Version                          Repository               Size
========================================================================================================================
Installing:
 glib2-devel                      x86_64                 2.64.6-1.fc32                    updates                 460 k
 libpcap-devel                    x86_64                 14:1.9.1-3.fc32                  fedora                  136 k
 systemd-devel                    x86_64                 245.8-2.fc32                     updates                 362 k
Installing dependencies:
 libblkid-devel                   x86_64                 2.35.2-1.fc32                    updates                  16 k
 libffi-devel                     x86_64                 3.1-24.fc32                      fedora                   24 k
 libmount-devel                   x86_64                 2.35.2-1.fc32                    updates                  18 k
 libselinux-devel                 x86_64                 3.0-5.fc32                       updates                 115 k
 libsepol-devel                   x86_64                 3.0-4.fc32                       updates                  40 k
 pcre2-devel                      x86_64                 10.35-7.fc32                     updates                 473 k
 pcre2-utf32                      x86_64                 10.35-7.fc32                     updates                 199 k

Transaction Summary
========================================================================================================================
Install  10 Packages

Total download size: 1.8 M
Installed size: 6.2 M
Is this ok [y/N]: y
```
なんか、色々入れるか？と聞いてきたので「おーよ」。と答えて SRPM のビルドへ。

## 改めてビルド！

```tcsh:
[root@HINAKO ~]# rpmbuild --rebuild ppp-2.4.7-35.fc31.src.rpm
...
gcc -Wall -O2 -g -pipe -Wall -Werror=format-security ...
```
あ、-O2 でコンパイルしてる...調べてみると、/etc/rpmrc や ~/.rpmrc でコンパイルオプションが指定できるらしい。

```tcsh:
[root@HINAKO ~]# echo optflags: x86_64 -O0 -g > ~/.rpmrc
[root@HINAKO ~]# cat ~/.rpmrc
optflags: x86_64 -O0 -g
```
SRPM のパッチファイルを見てみると -O となっているものも -O2 となっているものも `${RPM_OPT_FLAGS}` に置換して、まとめて `${RPM_OPT_FLAGS}=-O2 -g` とされてる。-O の所はパッチが当たらないようにするだけで治るかも。
今回は上記の変更で `${RPM_OPT_FLAGS}=-O0 -g` としておく。

```tcsh:
[root@HINAKO ~]# rpmbuild --rebuild ppp-2.4.7-35.fc31.src.rpm
...
gcc -Wall -O0 -g -pipe -Wall -Werror=format-security ...
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/ppp-2.4.7-35.fc32.x86_64
Wrote: /root/rpmbuild/RPMS/x86_64/network-scripts-ppp-2.4.7-35.fc32.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ppp-devel-2.4.7-35.fc32.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ppp-debuginfo-2.4.7-35.fc32.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ppp-2.4.7-35.fc32.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ppp-debugsource-2.4.7-35.fc32.x86_64.rpm
...
```
上手くいった。なので、出来た rpm で再インストールする。

## 自前でビルドした pppd をインストール
```tcsh:
[root@HINAKO ~]# ls -l `which pppd`
-rwxr-xr-x 1 root root 402528 Apr  7  2020 /usr/sbin/pppd*
[root@HINAKO ~]# dnf reinstall rpmbuild/RPMS/x86_64/ppp-2.4.7-35.fc32.x86_64.rpm
Last metadata expiration check: 0:48:03 ago on Sun 18 Oct 2020 07:46:13 AM JST.
Dependencies resolved.
========================================================================================================================
 Package               Architecture             Version                            Repository                      Size
========================================================================================================================
Reinstalling:
 ppp                   x86_64                   2.4.7-35.fc32                      @commandline                   357 k

Transaction Summary
========================================================================================================================

Total size: 357 k
Installed size: 1.1 M
Is this ok [y/N]: y
...snip
Reinstalled:
  ppp-2.4.7-35.fc32.x86_64

Complete!
[root@HINAKO ~]# ls -l `which pppd`
-rwxr-xr-x 1 root root 444584 Oct 18 08:28 /usr/sbin/pppd*
[root@HINAKO ~]#
```
はい、再インストールできました。

# 再度、接続試験
では、Fedora で pppoe を立ち上げて Cisco1921 から接続してもらいましょう。

```tcsh:Fedora
[root@HINAKO ~]# pppoe-server -I eth0:1 -S 'Fedora'
```

Cisco の電源を入れてインターフェイスを up します。

```IOS:Cisco1921
HomeRT#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
HomeRT(config)#int gi0/0
HomeRT(config-if)#no shut
HomeRT(config-if)#end
HomeRT#
*Oct 18 08:53:16.819: %SYS-5-CONFIG_I: Configured from console by console
*Oct 18 08:53:17.667: %LINK-3-UPDOWN: Interface GigabitEthernet0/0, changed state to down
*Oct 18 08:53:22.231: %LINK-3-UPDOWN: Interface GigabitEthernet0/0, changed state to up
*Oct 18 08:53:23.231: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up
*Oct 18 08:53:47.083: %DIALER-6-BIND: Interface Vi2 bound to profile Di1
*Oct 18 08:53:47.087: %LINK-3-UPDOWN: Interface Virtual-Access2, changed state to up
*Oct 18 08:53:47.135: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access2, changed state to up
...
HomeRT#show pppoe session
     1 client session

Uniq ID  PPPoE  RemMAC          Port                    VT  VA         State
           SID  LocMAC                                      VA-st      Type
    N/A      1  0015.5dd1.4250  Gi0/0                   Di1 Vi2        UP
                002c.c8a8.95a0                              UP
HomeRT#sho ip int br
Interface                  IP-Address      OK? Method Status                Protocol
Embedded-Service-Engine0/0 unassigned      YES unset  administratively down down
GigabitEthernet0/0         unassigned      YES unset  up                    up
GigabitEthernet0/1         172.16.0.1      YES NVRAM  administratively down down
Dialer1                    10.67.15.1      YES IPCP   up                    up
Virtual-Access1            unassigned      YES unset  up                    up
Virtual-Access2            unassigned      YES unset  up                    up
HomeRT#show ip route
...snip
Gateway of last resort is 0.0.0.0 to network 0.0.0.0

S*    0.0.0.0/0 is directly connected, Dialer1
      10.0.0.0/32 is subnetted, 2 subnets
C        10.0.0.1 is directly connected, Dialer1
C        10.67.15.1 is directly connected, Dialer1
HomeRT#ping 10.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
```
上がりました！pppoe セッションが見えて、Dialer1 のインターフェイスに IP アドレスが割りあてられ...(略)
NAT してないし、Fedora からの帰りのルートを設定していないのでネットワークとしてはまだですが、繋がりました。

```tcsh:pppd&nbsp;&&nbsp;pppoe-server&nbsp;の&nbsp;log
Oct 18 08:43:40 HINAKO pppoe-server[4917]: Session 1 created for client 00:2c:c8:a8:95:a0 (10.67.15.1) on eth0:1 using Service-Name ''
Oct 18 08:43:40 HINAKO pppd[4917]: pppd 2.4.7 started by root, uid 0
Oct 18 08:43:40 HINAKO pppd[4917]: using channel 1
Oct 18 08:43:40 HINAKO pppd[4917]: Using interface ppp0
Oct 18 08:43:40 HINAKO pppd[4917]: Connect: ppp0 <--> /dev/pts/4
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [LCP ConfReq id=0x1 <magic 0x2ccb8a59>]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [LCP ConfReq id=0x1 <mru 1492> <auth chap MD5> <magic 0xdcde1729>]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [LCP ConfAck id=0x1 <magic 0x2ccb8a59>]
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [LCP ConfNak id=0x1 <mru 1500>]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [LCP ConfReq id=0x2 <auth chap MD5> <magic 0xdcde1729>]
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [LCP ConfAck id=0x2 <auth chap MD5> <magic 0xdcde1729>]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [LCP EchoReq id=0x0 magic=0xdcde1729]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [CHAP Challenge id=0xc4 <223a642dcac5577c49028136db5a3ec5f9>, name = "HINAKO"]
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [LCP EchoRep id=0x0 magic=0x2ccb8a59]
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [CHAP Response id=0xc4 <63692af6202e36f55d1df69cefa112ff>, name = "user01@test.home"]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [CHAP Success id=0xc4 "Access granted"]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [IPCP ConfReq id=0x1 <addr 10.0.0.1> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [IPCP ConfNak id=0x1 <addr 10.67.15.1>]
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [proto=0x8207] 01 01 00 04
Oct 18 08:43:40 HINAKO pppd[4917]: Unsupported protocol 'Cisco Discovery Protocol Control' (0x8207) received
Oct 18 08:43:40 HINAKO pppd[4917]: sent [LCP ProtRej id=0x3 82 07 01 01 00 04]
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [IPCP ConfRej id=0x1 <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [IPCP ConfReq id=0x2 <addr 10.0.0.1>]
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [IPCP ConfReq id=0x2 <addr 10.67.15.1>]
Oct 18 08:43:40 HINAKO pppd[4917]: sent [IPCP ConfAck id=0x2 <addr 10.67.15.1>]
Oct 18 08:43:40 HINAKO pppd[4917]: rcvd [IPCP ConfAck id=0x2 <addr 10.0.0.1>]
Oct 18 08:43:40 HINAKO pppd[4917]: Cannot determine ethernet address for proxy ARP
Oct 18 08:43:40 HINAKO pppd[4917]: local  IP address 10.0.0.1
Oct 18 08:43:40 HINAKO pppd[4917]: remote IP address 10.67.15.1
Oct 18 08:43:40 HINAKO pppd[4917]: Script /etc/ppp/ip-up started (pid 4920)
Oct 18 08:43:40 HINAKO pppd[4917]: Script /etc/ppp/ip-up finished (pid 4920), status = 0x0
```

CISCO の gi0/1 に適当なケーブルを繋いで up させてから Fedora でルートを切ってやる。

```tcsh:Fedora
[root@HINAKO ~]# ip route show
default via 192.168.0.254 dev eth0
10.67.15.1 dev ppp0 proto kernel scope link src 10.0.0.1
172.30.96.0/20 dev eth0 proto kernel scope link src 172.30.111.99
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.26
[root@HINAKO ~]# ip route add 172.16.0.0/24 dev ppp0 proto kernel scope link src 10.0.0.1
[root@HINAKO ~]# ip route show
default via 192.168.0.254 dev eth0
10.67.15.1 dev ppp0 proto kernel scope link src 10.0.0.1
172.16.0.0/24 dev ppp0 proto kernel scope link src 10.0.0.1
172.30.96.0/20 dev eth0 proto kernel scope link src 172.30.111.99
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.26
[root@HINAKO ~]# ping -c 4 172.16.0.1                                                               2020-10-18 9:46:42
PING 172.16.0.1 (172.16.0.1) 56(84) bytes of data.
64 bytes from 172.16.0.1: icmp_seq=1 ttl=255 time=1.88 ms
64 bytes from 172.16.0.1: icmp_seq=2 ttl=255 time=3.12 ms
64 bytes from 172.16.0.1: icmp_seq=3 ttl=255 time=3.09 ms
64 bytes from 172.16.0.1: icmp_seq=4 ttl=255 time=1.90 ms

--- 172.16.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 1.882/2.497/3.115/0.604 ms
[root@HINAKO ~]# tracepath 172.16.0.1                                                               2020-10-18 9:46:52
 1?: [LOCALHOST]                      pmtu 1454
 1:  10.67.15.1                                           25.069ms reached
 1:  10.67.15.1                                            1.907ms reached
     Resume: pmtu 1454 hops 1 back 1
```

ちゃんと届きますね。
Fedora の方でルーティングを切るスクリプトを書いておきます。

```sh:/etc/ppp/ip-up.local
#!/bin/bash
PPP_IF="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"

# 接続先の IP とその先のネットワークを組みで書いておく
IPREMOTE_1=10.0.10.1
IPREMOTE_NET_1=192.168.0.0/24
IPREMOTE_2=10.0.10.3
IPREMOTE_NET_2=192.168.1.0/24
# 接続先が一つで、ネットワークが複数の場合は、複数書けばいい。
IPREMOTE_3=10.0.10.5
IPREMOTE_NET_3=192.168.2.0/24
IPREMOTE_4=10.0.10.5
IPREMOTE_NET_4=192.168.3.0/24

# IP forwaard ON
echo 1 > /proc/sys/net/ipv4/ip_forward

# 無条件で追加するルーティング (接続先が一つならこれで良い)
/usr/sbin/ip route add 172.16.0.0/24 dev ${PPP_IF} proto kernel scope link src ${PPP_LOCAL}

count=1
while :
do

        if [ $(eval echo '${'IPREMOTE_${count}'}') = "$PPP_REMOTE" ]; then

                # /usr/sbin/ip route add 172.16.0.0/24 dev ${PPP_IF} proto kernel scope link src ${PPP_LOCAL}
                printf "/usr/sbin/ip route add %s dev ${PPP_IF} proto kernel scope link src ${PPP_LOCAL}\n" `eval echo '$'IPREMOTE_NET_${count}`
        fi

        let count++
        [ $(eval echo '${'IPREMOTE_${count}:-NULL'}') = "NULL" ] && break
done

exit 0
```

対地が複数ある場合、chap-secrets でユーザ (地点) 毎にアドレスを決めておき、PPP_REMOTE で判断して、必要な route を足すことで上手くいくと思います。

# 再起動したらまた Signal 11

```tcsh:pppd&nbsp;&&nbsp;pppoe-server&nbsp;の&nbsp;log
Oct 18 10:41:13 HINAKO pppoe-server[415]: Session 17 created for client 00:2c:c8:a8:95:a0 (10.67.15.17) on eth0:1 using Service-Name ''
Oct 18 10:41:13 HINAKO pppd[415]: Warning: couldn't open ppp database /var/run/ppp/pppd2.tdb
Oct 18 10:41:13 HINAKO pppd[415]: pppd 2.4.7 started by root, uid 0
Oct 18 10:41:13 HINAKO pppd[417]: Fatal signal 11
Oct 18 10:41:13 HINAKO pppd[417]: Exit.
Oct 18 10:41:13 HINAKO pppd[415]: Couldn't get channel number: Input/output error
Oct 18 10:41:13 HINAKO pppd[415]: Script /usr/sbin/pppoe -n -I eth0:1 -e 17:00:2c:c8:a8:95:a0 -S '' finished (pid 417), status = 0x7f
Oct 18 10:41:13 HINAKO pppd[415]: Exit.
Oct 18 10:41:13 HINAKO pppoe-server[320]: Session 17 closed for client 00:2c:c8:a8:95:a0 (10.67.15.17) on eth0:1
Oct 18 10:41:13 HINAKO pppoe-server[320]: Sent PADT
Oct 18 10:41:13 HINAKO pppoe-server[320]: PADT for session 17 received from 00:2C:C8:A8:95:A0; should be from 00:00:00:00:00:00
Oct 18 10:41:35 HINAKO pppoe-server[418]: Session 18 created for client 00:2c:c8:a8:95:a0 (10.67.15.18) on eth0:1 using Service-Name ''
Oct 18 10:41:35 HINAKO pppd[418]: Warning: couldn't open ppp database /var/run/ppp/pppd2.tdb
Oct 18 10:41:35 HINAKO pppd[418]: pppd 2.4.7 started by root, uid 0
Oct 18 10:41:35 HINAKO pppd[420]: Fatal signal 11
Oct 18 10:41:35 HINAKO pppd[420]: Exit.
Oct 18 10:41:35 HINAKO pppd[418]: Couldn't get channel number: Input/output error
Oct 18 10:41:35 HINAKO pppd[418]: Script /usr/sbin/pppoe -n -I eth0:1 -e 18:00:2c:c8:a8:95:a0 -S '' finished (pid 420), status = 0x7f
Oct 18 10:41:35 HINAKO pppd[418]: Exit.
Oct 18 10:41:35 HINAKO pppoe-server[320]: Session 18 closed for client 00:2c:c8:a8:95:a0 (10.67.15.18) on eth0:1
Oct 18 10:41:35 HINAKO pppoe-server[320]: Sent PADT
Oct 18 10:41:35 HINAKO pppoe-server[320]: PADT for session 18 received from 00:2C:C8:A8:95:A0; should be from 00:00:00:00:00:00
```
また繋がらなくなりました。

```tcsh:
[root@HINAKO ~]# ls -l `which pppd`
-rwxr-xr-x 1 root root 444584 Oct 18 08:28 /usr/sbin/pppd*
```

pppd のバイナリも変わっている雰囲気はない。

# strace してみた

pppd を strace するスクリプトに置き換えてログを取る。

```sh:
[root@HINAKO sbin]# cp /usr/sbin/pppd /usr/sbin/pppd.orig
[root@HINAKO sbin]# cat <<___QWERTY > /usr/sbin/pppd
#!/bin/sh
logger -p local2.err strace-pppd go
/usr/bin/strace /usr/sbin/pppd.orig "$@" >& /tmp/strace.log
___QWERTY
```

出力されたログ

```strace:/tmp/strace.log
....
rt_sigaction(SIGHUP, {sa_handler=0x559cf5b2b3e5, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x559cf5b2b446, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x559cf5b2b446, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x559cf5b2b4a6, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGUSR1, {sa_handler=0x559cf5b2b4d9, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGUSR2, {sa_handler=0x559cf5b2b524, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGABRT, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGALRM, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGFPE, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGILL, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGIO, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGPROF, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGSYS, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGTRAP, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGVTALRM, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGXCPU, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGXFSZ, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fd99a547a70}, {sa_handler=0x559cf5b2b55a, sa_mask=[HUP INT USR2 TERM CHLD], sa_flags=SA_RESTORER, sa_restorer=0x7fd99a547a70}, 8) = 0
getpid()                                = 3771
openat(AT_FDCWD, "/dev/ptmx", O_RDWR|O_CLOEXEC) = 6
ioctl(6, TIOCGPTN, [4])                 = 0
chmod("/dev/pts/4", 0600)               = 0
ioctl(6, TIOCSPTLCK, [0])               = 0
openat(AT_FDCWD, "/dev/pts/4", O_RDWR|O_NOCTTY|O_CLOEXEC) = 7
ioctl(7, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(7, SNDCTL_TMR_CONTINUE or TCSETSF, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(7, TIOCMBIS, [TIOCM_DTR])         = -1 EINVAL (Invalid argument)
ioctl(7, TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(7, SNDCTL_TMR_CONTINUE or TCSETSF, {B38400 -opost -isig -icanon -echo ...}) = 0
dup(3)                                  = 8
close(8)                                = 0
pipe([8, 9])                            = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fd99a47d510) = 3772
close(9Fatal signal 11
)                                = 0
read(8, "", 1)                          = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3772, si_uid=0, si_status=127, si_utime=0, si_stime=0} ---
rt_sigreturn({mask=[]})                 = 0
...
```
うーん？プロセスもフォークしてるから良く分からない。
しかしまぁ、もう一度 `dnf reinstall rpmbuild/RPMS/x86_64/ppp-2.4.7-35.fc32.x86_64.rpm` したら動くのよねぇ。難しい。

# glibc を自前ビルドして入れなおしてみた
<details><summary>失敗</summary><div>

```tcsh:
[root@HINAKO ~]# dnf provides libnss_files.so.2
Last metadata expiration check: 4:21:31 ago on Sun Oct 18 18:58:28 2020.
glibc-2.31-2.fc32.i686 : The GNU libc libraries
Repo        : fedora
Matched from:
Provide    : libnss_files.so.2

glibc-2.31-4.fc32.i686 : The GNU libc libraries
Repo        : @System
Matched from:
Provide    : libnss_files.so.2

glibc-2.31-4.fc32.i686 : The GNU libc libraries
Repo        : updates
Matched from:
Provide    : libnss_files.so.2
```
```tcsh:
[root@HINAKO ~]# curl -O ftp://ftp.iij.ad.jp/pub/linux/Fedora/fedora/linux/updates/32/Everything/SRPMS/Packages/g/glibc-2.31-4.fc32.src.rpm
[root@HINAKO ~]# rpmbuild --rebuild glibc-2.31-4.fc32.src.rpm
Installing glibc-2.31-4.fc32.src.rpm
setting SOURCE_DATE_EPOCH=1594771200
error: Failed build dependencies:
        audit-libs-devel >= 1.1.3 is needed by glibc-2.31-4.fc32.x86_64
        bison >= 2.7 is needed by glibc-2.31-4.fc32.x86_64
        gd-devel is needed by glibc-2.31-4.fc32.x86_64
        glibc-static is needed by glibc-2.31-4.fc32.x86_64
        libpng-devel is needed by glibc-2.31-4.fc32.x86_64
        libstdc++-static is needed by glibc-2.31-4.fc32.x86_64
        python3-devel is needed by glibc-2.31-4.fc32.x86_64
        python3dist(langtable) is needed by glibc-2.31-4.fc32.x86_64
        texinfo >= 5.0 is needed by glibc-2.31-4.fc32.x86_64
        valgrind is needed by glibc-2.31-4.fc32.x86_64
[root@HINAKO ~]# dnf install audit-libs-devel bison gd-devel  glibc-static libpng-devel libstdc++-static python3-devel 'python3dist(langtable)' texinfo valgrind
...
[root@HINAKO ~]# rpmbuild --rebuild glibc-2.31-4.fc32.src.rpm
...
[root@HINAKO ~]# dnf reinstall rpmbuild/RPMS/x86_64/{glibc-2.31-4.fc32.x86_64.rpm,glibc-common-2.31-4.fc32.x86_64.rpm,glibc-headers-2.31-4.fc32.x86_64.rpm,glibc-devel-2.31-4.fc32.x86_64.rpm,glibc-static-2.31-4.fc32.x86_64.rpm,glibc-langpack-ja-2.31-4.fc32.x86_64.rpm}
Last metadata expiration check: 0:06:06 ago on Mon 19 Oct 2020 02:13:04 AM JST.
Dependencies resolved.
========================================================================================================================
 Package                          Architecture          Version                       Repository                   Size
========================================================================================================================
Reinstalling:
 glibc                            x86_64                2.31-4.fc32                   @commandline                3.3 M
 glibc-common                     x86_64                2.31-4.fc32                   @commandline                1.7 M
 glibc-devel                      x86_64                2.31-4.fc32                   @commandline                1.0 M
 glibc-headers                    x86_64                2.31-4.fc32                   @commandline                457 k
 glibc-langpack-ja                x86_64                2.31-4.fc32                   @commandline                407 k
 glibc-static                     x86_64                2.31-4.fc32                   @commandline                1.5 M

Transaction Summary
========================================================================================================================

Total size: 8.3 M
Installed size: 36 M
Is this ok [y/N]:y
```
→ Signal 11 失敗

# libcap-ng のビルド

```tcsh:
[root@HINAKO ~]# rpmbuild --rebuild libcap-ng-0.7.11-1.fc32.src.rpm
Installing libcap-ng-0.7.11-1.fc32.src.rpm
setting SOURCE_DATE_EPOCH=1598140800
error: Failed build dependencies:
        swig is needed by libcap-ng-0.7.11-1.fc32.x86_64
[root@HINAKO ~]# dnf list --installed libcap-ng
Installed Packages
libcap-ng.x86_64                                         0.7.11-1.fc32
```
ん？良く分からん。

失敗

</div></details>

# 今後

→ LDFLAGS に -static を指定してスタティックライブラリにしてみる。
→ 駄目なら `ldd pppd` して、関連するライブラリを自前ビルド

諦めて、起動する度に `dnf reinstall` するか...


※メモ
WSL の中から Windows の表のインターフェイスの IPv4 アドレスを知るコマンド

```tcsh:
% /mnt/c/Windows/System32/netsh.exe interface ipv4 dump | sed -ne 's/.*ethernet.*address=\([^ ]*\).*/\1/p'
```

syslog-ng の vim syntax ファイル
https://github.com/oxo42/vimrc/blob/master/syntax/syslog-ng.vim