![](https://habrastorage.org/storage2/3d7/b04/923/3d7b0492392e55e60afa25b4c421c9c3.jpeg)
はじめに
pptp-serverとしてのアクセスサーバーには、最新の安定バージョン(1.3.4)のテスト済みPoptopがありました。 そして、すべては問題ありませんが、関税の速度を上げた後にのみ、負荷が増加するとサーバーのパフォーマンスが低下し始めました。 また、このpptp-serverはカーネルモードではなくユーザーモードで動作するため、非常に重要です。 パケットの継続的なコピーと、計算リソースを必要とする直接関連するコンテキストスイッチング操作により、送信トラフィック量が増加すると、サーバーのパフォーマンスが大幅に低下しました。 行動する必要がありました。
設置
私はすでにaccel-pptpについて聞いて、それについて肯定的なレビューを読みましたが、今は試してみる時です。
すべてのアクションは、OC CentOS 5.7 x86_64で実行されます。
Accel-pptpはソースコードで配布されます。 プロジェクト自体はSourceForgeでホストされているため、プロジェクトのWebサイトにアクセスし、最新バージョンをダウンロードします(これらの行の執筆時点では0.8.5)。 pptpサーバーを展開するOSでは、pppが既にインストールされている必要があります。また、ソースコードやカーネルヘッダーファイルなど、ソースからビルドするために必要なすべてのものがインストールされている必要があります。
yum install kernel-headers kernel-devel
インストールされているカーネルとインストールされているパッケージのバージョンの対応を確認することを忘れないでください。 それ以外の場合は、カーネルを更新するか、インストールされているカーネルのパッケージバージョンを検索してインストールする必要があります。 これは、OSが長期間更新されておらず、新しいバージョンのパッケージがリポジトリにある場合に発生します。
その後、ソースアーカイブのあるディレクトリに移動して解凍します。
tar xjf accel-pptp-0.8.5.tar.bz
次に、解凍したディレクトリに移動します。
cd accel-pptp-0.8.5
READMEファイルには、原則として、システムの要件とインストールに関する十分な情報が含まれています。 Makefile自体を調べて、正確にビルドおよびインストールされるものを確認できます。 pptpサーバーをコンパイルするには、次のコマンドを実行します。
make server
サーバーをインストールするには、次を実行します。
make server_install
実行可能ファイルはデフォルトでディレクトリ/ usr / local / sbinに配置されます
どのように組み立てられ、インストールされたかを確認します。
/usr/local/sbin/pptpd -v
次のような行が表示されます。
accel-pptpd v0.8.5 compiled for pppd-2.4.4, linux-2.6.18-308.4.1.el5
pppdのバージョンとカーネルがここにリストされます。 しかし、それだけではありません。 64ビットバージョンのOSでは、pppd共有ライブラリは/usr/lib64/pppd/2.4.4にあり、pptpサーバーをインストールすると、pppdライブラリは/usr/lib/pppd/2.4.4にコピーされます。 / usr / lib / pppdの内容を/ usr / lib64 / pppdにコピーし、 / usr / lib64 / pppdへのシンボリックリンクを作成します(そうしないと、接続は確立されず、ログにはpptp.soライブラリがないとscります)。
ln -s /usr/lib64/pppd /usr/lib/pppd
カスタマイズ
その後、構成を調整できます。
/etc/pptpd.conf :
option /etc/ppp/options debug connections 498 localip 172.16.190.1 remoteip 172.16.190.2-250,172.16.191.2-250
/ etc / ppp /オプション :
auth refuse-pap refuse-chap require-mschap require-mschap-v2 ms-dns 82.179.90.1 mtu 1400 mru 1400 nobsdcomp novj novjccomp logfile /var/log/ppp/ppp.log #plugin radius.so #plugin radattr.so
ユーザーを/ etc / ppp / chap-secretsに追加して、サーバーの動作を確認します。
test * password *
(人のさまざまなオプションとパラメータの意味を調べます-すべてが十分に詳細にあり、明確に説明されています)
このpptpサーバーはカーネルモードでほとんどすべての作業を行うため、主な機能はロードする必要のあるモジュールに含まれています。
depmod; modprobe pptp
したがって、モジュールを再起動するたびに独立して接続し、実行可能ファイル/etc/sysconfig/modules/pptp.modulesを作成してそこに書き込みます
modprobe pptp
サーバー上のネットワークインターフェイス間のパケット転送を有効にし、ポート1723で接続を受け入れるようにファイアウォールを構成し、ルーティングとNATも構成します。
結果(合計ではなく)
本番環境では、pptpサーバーは課金システムのRADIUSサーバーに接続され、ユーザーを認証します。 わかりやすくするために、CPU負荷のグラフを示します。
![](https://habrastorage.org/storage2/dad/049/91f/dad04991fec0c519ae7801ff0f84a6b7.png)
このグラフは、関税率が2倍になったために4月の初めからプロセッサー負荷インジケーターがどのように増加したかを明確に示しています。 ユーザー数はそれほど変化していません。
![](https://habrastorage.org/storage2/416/3fe/e53/4163fee53801a8aecbb44e3536bdfbaa.png)
1秒あたりのコンテキストスイッチング操作の数を15000-25000から1000-2000に削減
PS
コメントや追加を待っています