Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Pppdのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Pppd
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{Lowercase title}} [[Category:ネットワーク]] [[en:Pppd]] [[ru:Pppd]] '''ppp''' (Paul's PPP Package) は [[Wikipedia:ja:Point-to-Point Protocol|Point-to-Point Protocol]] (PPP) を実装する Linux と Solaris システム用のオープンソースパッケージです。''pppd'' デーモンとして実装されており {{Pkg|xl2tpd}}, {{Pkg|pptpd}}, [[netctl]] のバックエンドとして動作します。 [[Wikipedia:ja:第3世代移動通信システム|3G]], [[Wikipedia:ja:Layer 2 Tunneling Protocol|L2TP]], [[Wikipedia:ja:PPPoE|PPPoE]] 接続は内部的に PPP プロトコルに基づいているため ppp で処理することができます。 == インストール == [[公式リポジトリ]]の {{Pkg|ppp}} を[[インストール]]してください。 カーネルに PPPoE サポートが組み込まれていることを確認してください (デフォルトのカーネルには存在します): {{hc|1=$ zgrep CONFIG_PPPOE /proc/config.gz| 2=CONFIG_PPPOE=m}} == 設定 == === PPPoE === 接続設定ファイルの作成: {{hc|/etc/ppp/peers/''your_provider''| plugin rp-pppoe.so # rp_pppoe_ac 'your ac name' # rp_pppoe_service 'your service name' # network interface eth0 # login name name "''someloginname''" usepeerdns persist # Uncomment this if you want to enable dial on demand #demand #idle 180 defaultroute hide-password noauth}} {{ic|usepeerdns}} オプションを使用すると、''pppd'' は {{ic|/etc/ppp/resolv.conf}} ファイルを作成して接続の確立時に DNS アドレスを取得します。デフォルトでは、{{ic|/etc/ppp/ip-up.d/00_dns}} フックスクリプトがこのファイルを {{ic|/etc/resolv.conf}} に移動して、システムがネームサーバーを使えるようにします。この挙動が望ましくない場合 (例: ローカルのキャッシュ DNS を使う場合)、必要に応じて {{ic|/etc/ppp/ip-up.d/00_dns.sh}} を編集してください。 ISP が使用している認証方法に合わせて以下のような行を {{ic|/etc/ppp/pap-secrets}} か {{ic|/etc/ppp/chap-secrets}} に記述してください。両方のファイルに記述しても問題ありません、''pppd'' は自動的に適切な方を使います: ''someloginname'' * ''yourpassword'' 次のコマンドを使えば接続を開始できます: # pppd call ''your_provider'' もしくは、次のコマンドを使ってください: # pon ''your_provider'' ''your_provider'' は {{ic|/etc/ppp/peers}} のオプションファイルの名前に置き換えてください。 PPPoE 接続が正しく開始されたかどうか確認するには、システムログの ''pppd'' の出力を見て下さい: # journalctl -b --no-pager | grep pppd 接続が成功していれば、以下のようなメッセージが表示されます: Jul 09 22:42:33 localhost pppd[239]: Plugin rp-pppoe.so loaded. Jul 09 22:42:33 localhost pppd[239]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.6 Jul 09 22:42:33 localhost network[184]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.6 Jul 09 22:42:33 localhost pppd[239]: pppd 2.4.6 started by root, uid 0 Jul 09 22:42:39 localhost pppd[239]: PPP session is 292 Jul 09 22:42:39 localhost pppd[239]: Connected to a0:f3:e4:4f:e3:b0 via interface enp4s0 Jul 09 22:42:39 localhost pppd[239]: Using interface ppp0 Jul 09 22:42:39 localhost pppd[239]: Connect: ppp0 <--> enp4s0 Jul 09 22:42:39 localhost pppd[239]: CHAP authentication succeeded: CHAP authentication success Jul 09 22:42:39 localhost pppd[239]: CHAP authentication succeeded Jul 09 22:42:39 localhost pppd[239]: peer from calling number A0:F3:E4:4F:E3:B0 authorized Jul 09 22:42:39 localhost pppd[239]: Cannot determine ethernet address for proxy ARP Jul 09 22:42:39 localhost pppd[239]: local IP address 10.6.2.137 Jul 09 22:42:39 localhost pppd[239]: remote IP address 10.6.1.1 Jul 09 22:42:39 localhost pppd[239]: primary DNS address 10.6.1.1 Jul 09 22:42:39 localhost pppd[239]: secondary DNS address 210.21.196.6 デフォルトでは {{ic|/etc/ppp/peers/provider}} の設定がデフォルトとして扱われます。"your_provider" をデフォルトにしたい場合は、以下のようなリンクを作成することができます: # ln -s /etc/ppp/peers/''your_provider'' /etc/ppp/peers/provider これで次を実行するだけで接続を開始できます: # pon 接続を終了するには、次のコマンドを使用: # poff ''your_provider'' === 簡単なウィザード設定 === {{Aur|pppconfig}} には pppd を簡単に設定できるダイアログインターフェイスが入っています。root で {{ic|pppconfig}} を実行して指示に従うだけで設定が作成されます: # pppconfig --dialog 作成された設定は上のように {{ic|pon}} で呼び出すことができ、{{ic|poff}} で終了できます。 === ブート時に pppd を起動 === * {{ic|ppp_generic}} モジュールをブート時にロードするように設定してください。詳しくは[[カーネルモジュール]]を参照。 * systemd のサービスを[[有効化]]してください: # systemctl enable ppp@''your_provider''.service == ヒントとテクニック == === 自動リダイヤル === ''pppd'' が実行中の場合、{{ic|SIGHUP}} シグナルをプロセスに送ることで強制的に接続をリセットできます: # export PPPD_PID=$(pidof pppd) # kill -s HUP $PPPD_PID これで接続がリダイアルされます。 {{Note|{{ic|/etc/ppp/peers/provider}} タブで {{ic|persist}} オプションが有効になっていることを確認してください。また、{{ic|holdoff 0}} を設定することで待機しないで再接続するようになります。}} === 24時間後に ISP と自動で切断 === {{Note|コンピュータを常時 (24時間365日) 動作させるのではない場合、このセクションはスキップしてかまいません。}} If you use a flat-rate always-on connection on a computer, some providers restart your connection after 24h. That makes sure that the IP is rotated every 24h. To compensate, you can use an dynamic DNS service in combination with {{AUR|inadyn}}{{Broken package link|{{aur-mirror|inadyn}}}} to compensate for the rotating IP address. But to avoid disconnects when you do not need it, you might try to restart the connection using a cron job or [[systemd#Timers|systemd]] timer at a time of day you know no one will be using the connection (e.g. at 4 AM). ==== cron を使う ==== {{Note|[[cron]] の実装はいくつか存在しますが、ベースシステムは [[systemd/タイマー]]を使用しているためデフォルトでは何もインストールされていません。}} root で以下の手順に従ってください: 以下のような bash スクリプトを作成して名前を付けて下さい (例: {{ic|pppd_redial.sh}}): #!/bin/bash message="Restarting the PPP connection @:" $(date) pppd_id=$(pidof pppd) kill -s HUP $pppd_id echo $message 実行権限を与えて root から実行できるパスに配置します。 次に {{ic|crontab -e}} を使って cron ジョブを作成して下さい。コマンドが失敗する場合は {{ic|EDITOR}} 環境変数が設定されているか確認してください。crontab に以下を記述します: 0 4 * * * /bin/bash /root/pppd_redial.sh {{ic|cronie}} サービスが動くことを確認してください。動かない場合は、サービスを[[有効化]]して[[起動]]してください。 保存して終了です。これで PPPoE 接続は毎日朝4時に再起動します。 ==== systemd タイマーを使う ==== [[systemd/タイマー|systemd]] タイマーと ''poff'' スクリプト (特に {{ic|-r}} オプション) を使って強制的に再接続する方法もあります。同じ名前の ''.service'' と ''.timer'' ファイルを作成してください: {{hc|ppp-redial.timer|<nowiki> [Unit] Description=Reconnect PPP connections daily [Timer] OnCalendar=*-*-* 05:00:00 [Install] WantedBy=multi-user.target </nowiki>}} {{hc|ppp-redial.service|<nowiki> [Unit] Description=Reconnect PPP connections [Service] Type=simple ExecStart=/usr/bin/poff -r </nowiki>}} タイマーを[[有効化]]して[[起動]]すれば systemd が特定時刻に再起動するようになります。 == トラブルシューティング == === デフォルトルート === ''pppd'' が起動する以前から設定済みのデフォルトルートがある場合、デフォルトルートは維持されるため {{ic|/var/log/errors.log}} を見て以下のような出力がないか確認してください: pppd[nnnn]: not replacing existing default route via ''xxx.xxx.xxx.xxx'' {{ic|xxx.xxx.xxx.xxx}} は正しいルートではない可能性があります。 * {{ic|/etc/ppp/ip-pre-up.d}} に以下の内容で新しいスクリプトを作成してください: {{hc|/etc/ppp/ip-pre-up.d/10-route-del-default.sh| #!/bin/sh /usr/bin/route del default }} {{Note|Make sure you have a script named 'ip-pre-up' which launches *.sh in 'ip-pre-up.d' like other launch scripts do.}} * {{ic|pppd}} サービスを[[再起動]]してください。 === マスカレードが動作しているのにサイトが動かない === pppoe における MTU は1492バイトです。ほとんどのサイトで使われている MTU は1500です。そのため、小さい MTU を要求するために ICMP 3:4 (fragmentation needed) パケットが送信されますが、サイトによってはファイアウォールでブロックされてしまうことがあります。 [[iptables]] で PMTU クランプを有効にすることで問題は解決します: iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu しかしながら、作成された iptables の設定を ''iptables-save'' で保存して、後から読み込んでも、何らかの理由で上手く行きません。他の iptables 設定がロードされた後に実行する必要があります。以下の systemd ユニットを使うことで解決できます: {{hc|pmtu-clamping.service|<nowiki> [Unit] Description=PMTU clamping for pppoe Requires=iptables.service After=iptables.service [Service] Type=oneshot ExecStart=/usr/bin/iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu [Install] WantedBy=multi-user.target </nowiki>}} そして[[有効化]]してください。 === pppd が ppp_generic カーネルモジュールをロードできない === PPTP クライアント起動時に、"pppd" プロセスが適切なモジュールを見つけることができない場合: Couldn't open the /dev/ppp device: No such device or address Please load the ppp_generic kernel module. 解決方法は、{{ic|/etc/modprobe.d/modules.conf}} ファイルを変更します: alias char-major-108 ppp を以下のように変更します: alias char-major-108 ppp_generic そのような alias が存在しない場合は追加してください。 再起動することで正しいモジュールがロードされるようになります。
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Aur
(
ソースを閲覧
)
テンプレート:Aur-mirror
(
ソースを閲覧
)
テンプレート:Broken package link
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Lowercase title
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
Pppd
に戻る。
検索
検索
Pppdのソースを表示
話題を追加