○ ppp/rp-pppoeのインストール (kernelモード) 4 Router

・rp-pppoe ADSLによるインターネット接続(kernelモード)
・ppp-2.4.7, rp-pppoe-3.12のインストールと設定を行います
・pppのupdateはppp.gitのsummaryを参考にします
・既存のrpmパッケージには、CentOS 独自の改良が加えられています
・既存を削除し、オリジナルのソースファイルからインストールします
・make はメンテナンスマシンで行っています
・必要なければ行わなくて良いです

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:ppp-2.4.7.tar.gz (http://ppp.samba.org/)
:ppp.git (http://git.ozlabs.org/)
:rp-pppoe-3.12.tar.gz (http://pkgs.fedoraproject.org/repo/pkgs/rp-pppoe/)

○参照ファイル

パッケージの追加
最初の設定 (Router)

○インストール環境

:OS CentOS 6.9
:selinux permissive
:インストール先 
:作業 ~/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

・メンテナンスの場合は一般ユーザから行います



○kernelの対応

・kernelの.configファイル (menuconfigで表示した場合)
・kernelによりconfigファイルの構成が異なるので注意

Device Drivers  --->

  -*- Network device support  --->
        {M}   PPP (point-to-point protocol) support
        [*]     PPP multilink support (EXPERIMENTAL)
        [*]     PPP filtering
        <M>     PPP support for async serial ports
        <M>     PPP support for sync tty ports
        <M>     PPP Deflate compression
        < >     PPP BSD-Compress compression
        <M>     PPP MPPE compression (encryption) (EXPERIMENTAL)
        <M>     PPP over Ethernet (EXPERIMENTAL)
        <M>     PPP over ATM
        <M>     PPP over L2TP (EXPERIMENTAL)

      Character devices  --->
        [*] Non-standard serial port support
        <M>   HDLC line discipline support

○ppp-2.4.7/rp-pppoe-3.12

○最新pppの取得 (必要な場合)

・クライアントマシンでrsyncで取得します
・圧縮してサーバに転送します

[sola@mars ~]
$ mkdir ppp
$ rsync -avz rsync://cvs.samba.org/ftp/unpacked/ppp/ ~/ppp
$ cp -a ppp ppp-2.4.7
$ rm -rf ppp-2.4.7/.git
$ tar jcvf pppdev-160529.tar.bz2 ppp-2.4.7/

○旧rp-pppoe・pppの削除

[root@venus:~]
# rpm -e rp-pppoe ppp

○ヘッダーファイルの修正

[root@venus:~]
# ln -s /usr/include/pcap-bpf.h /usr/include/net/bpf.h

○pppのインストール

# cd ~/src
[root@venus:~/src]
# tar zxf ppp-2.4.7.tar.gz
# chown -R root:root ppp-2.4.7
# cd ppp-2.4.7
[root@venus:~/src/ppp-2.4.7]

・パッチを当てます (下記参照)
・~/srcにパッチファイルを置きます

# patch -p1 < ../ppp-centos6.patch
# make dist-clean
# ./configure

・コンパイル(エラーを書き出す)

# make 2>error.log

・error.logの確認

# cat error.log

・インストール

# make install

# cd ..
[root@venus:~/src]
# tar jcvf ppp-2.4.7-160529.tar.bz2 ppp-2.4.7/

・rp-pppoeのmakeが終わるまでppp-2.4.7ディレクトリを削除しないこと

ppp-centos6.patch

・全体に CFLAGSオプションをつけるためです
・CentOSのrpm-build用のパッチファイルを一部修正してあります
・{make,pie,fix,pppatm.make,local,ipv6-accept-remote}.patchを参考にしています
・opensslの設定に注意、ソースからインストールしたファイルの配置に合わせてあります
・patchは開発版に合わせてあります

○rp-pppoeのインストール

・--enable-plugin オプション pppd/pppd.hヘッダファイルが
・/usr/includeまたは/usr/local/includeに存在する場合に働きます

# cd ~/src
[root@venus:~/src]
# tar zxvf rp-pppoe-3.12.tar.gz
# chown -R root:root rp-pppoe-3.12
# cd rp-pppoe-3.12/src
[root@venus:~/src/rp-pppoe-3.12/src]
# make distclean

・CFLAGS="-O2 -march=i686 -mtune=atom" (CPU最適化オプション)
・該当しない場合は指定しない
・オプションは半角を入れて続けて記入した方が良い

# ./configure CFLAGS="-O2 -march=i686 -mtune=atom" \
--enable-plugin

・ヘッダファイルが捜せない場合、pppのソースファイルを指定します
・--enable-plugin=~/src/ppp-2.4.7 (配置は各自の環境に合わせる)
・オプションは半角を入れて続けて記入した方が良い

# ./configure CFLAGS="-O2 -march=i686 -mtune=atom" \
--enable-plugin=~/src/ppp-2.4.7

・KERNEL_PPPOEの確認

# grep KERNEL config.h
#define HAVE_LINUX_KERNEL_PPPOE 1

・コンパイル(エラーを書き出す)

# make 2>error.log

・error.logの確認

# cat error.log

・インストール

# make install

# cd ~/src
[root@venus:~/src]
# tar jcvf rp-pppoe-3.12-160529.tar.bz2 rp-pppoe-3.12/

○rp-pppoe.so (plugin-module) のロード方法

・/etc/ppp/pppoe.confを修正します
・rp-pppoe.soの存在を確認すること

:/etc/ppp/pppoe.conf (pppdのplugin-moduleを使う場合)

LINUX_PLUGIN=/usr/lib/pppd/2.4.7/rp-pppoe.so

:/etc/ppp/pppoe.conf (rp-pppoeのplugin-moduleを使う場合)

LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so

・以降の作業は rp-pppoe (ユーザモード) のインストールを参照

○ Copyright(c) 528p.com All Rights Reserved.