pppd
PPPoEでプロバイダに接続できます。
kernel config
Device Drivers --->
[*] Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP over Ethernet
カーネルサポートが必要です。
Buildroot
Target packages --->
Networking applications --->
[*] pppd
でビルドすればインストールできます。
初期状態で設定ファイルを置くディレクトリがありません。
# mkdir /etc/ppp
# mkdir /etc/ppp/peers
/etc/ppp/peers/provider
plugin rp-pppoe.so
eth0
name "プロバイダの接続ID"
usepeerdns
defaultroute
persist
ファイル名は好きなもので。接続の際にファイル名を指定します。
PPPoE接続の場合は"plugin rp-pppoe.so"が必要です。
eth0は終端装置に接続しているLAN。
nameがプロバイダのID。
usepeerdnsでプロバイダのDNSが利用できます。
defaultrouteでデフォルトゲートウェイとなります。
persistは切断した場合に再接続。
/etc/ppp/chap-secrets /etc/ppp/pap-secrets
プロバイダの接続ID * プロバイダの接続パスワード
2つのファイルはプロバイダの認証方式がCHAPの場合とPAPの場合で使い分けられますが、両方に書いておけばいいです。
# pon provider
で接続します。
ppp0(ネットワークインターフェイス)が出てきます。
providerは/etc/ppp/peers以下にあるファイル名です。
# poff provider
切断。
/etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
post-up pon provider
pre-down poff provider
自動起動。
これで多くのページは見れるのですが、IP通信ではデータを1,500byte単位でフレーム化(MTU)して通信が行われ、
PPPoEではパケット内に追加データが入るためMTUを変更しないと見れないページがあります。
フレッツ接続の場合のMTUは最大で1454になります。
また、ルーター化する場合、クライアントのMTUは通常の1500なのでルーターが変換する必要があり、
nftablesで
# nft add rule ip filter forward oiftype ppp tcp flags syn tcp option maxseg size set 1414
とするとMSSを1414に変換できます。
MSSはMTUから40引いた値です。