PPxPを使ったダイアルアップPPP接続

YAMAMORI Takenori ●yamamori
●デフォルトルートの怪

一般にPPP接続では,接続が完了するとそのPPPのリモート側のIPアドレスが, ネットワーク経路のデフォルトルートとして自動的に設定されるようになっています. これにより,PPP接続が完了すると自動的にインターネットに向けて IPパケットが届くようになるわけです. ところが,PPxPによる接続を行なう前に, すでになんらかのデフォルトルートが設定されていると, PPxPの接続完了時のデフォルトルートの設定がうまくいかない という不具合があります.

具体的には,tkppxpなどを使ってダイアルアップすると, モデムレベルのネゴシエーションはもちろん, PAP/CHAP認証やPPP両端のIPアドレスの割り当て, さらにISP側のDNSサーバのIPアドレスの取得からresolv.confの書換えまで, すべてうまく動作しているのにも関わらず, 実際にはIPパケットが通らず, インターネットにアクセスできないという状態になります.

この時,「netstat -rn」を実行してネットワーク経路を表示すると, デフォルトルートのIPアドレスはPPP接続後のものに書き換わっており, あたかも正しくデフォルトルートが設定されたかのように表示されてしまいます. また,$HOME/.ppxp/log以下のログファイルには,

ERROR: SysIpRoute change: Disc quota exceeded

という,紛らわしいエラーメッセージが出ます. この,「Disc quota exceeded」は, libcのsys_errlist[]内のメッセージと思われますが, これは不適切で,Disc quotaつまりハードディスクの使用可能容量については, エラーの原因とは全く関係ありません.

以上のことから混乱させられ, 実は筆者はこの問題の解決に長時間かけてしまいました. 原因は上記の通り,PPxPでの接続前にすでに別のデフォルトルートが設定されて いたことです.

○デフォルトルートなしに設定

PPxPでの接続前にすでにデフォルトルートが設定されている場合は, 下図のようにしてこれをネットワーク経路から削除します.

・図 デフォルトルートを削除

$ netstat -rn        ← 現在のネットワーク経路を表示
Routing tables

Internet:
Destination    Gateway           Flags  Refs   Use  Netif Expire
default        192.168.1.7       UGSc      0     0   fxp0       ← これが問題
127.0.0.1      127.0.0.1         UH        0    48    lo0
192.168.1      link#1            UC        1     0   fxp0
192.168.1.7    8:0:20:XX:XX:XX   UHLW      2    74   fxp0   1193
(以下省略)

$ su
Password:
# route delete default 192.168.1.7   ← デフォルトルートを削除

次回リブート後もデフォルトルートが設定されないようにするには, /etc/rc.confの中の defaultrouter="IPアドレス" という行を見つけ, これを削除するかまたは「#」でコメントアウトします. FreeBSDのOSのインストール時に, インストーラ上のネットワークの設定画面でデフォルトルートを入力していると, この行が自動的に記述されているはずです.

通常,デフォルトルートが設定されているということは, LAN内にインターネットに通じるルータまたはルータの役割を行なう 別のダイアルアップマシンがすでにあるということであり, その場合はそもそもPPxPを使う必要はないでしょう. 一方,今回のようにPPxPを使用するホストの場合は, 逆にデフォルトルートを設定する必要がないばかりか, 設定してはいけないということになります.


To『PPxPを使ったダイアルアップPPP接続』[index]


このページは、技術評論社 「FreeBSD Expert」 『FreeBSDでPPxPを使ったダイアルアップPPP接続』の原稿を元に、Web 用に再構成したものです。
| Free Solaris 7 | Free Solaris 7(ja) | Solaris 8 | Free UnixWare 7.1 | Vine Linux 1.1 | Linux & FreeBSD | CD-R(cdrecord/mkisofs) | CD-ROM game system | VMware/Bochs | PXE/diskless | gcc | booting PC UNIX | dialup PPxP |

To 謎の処理系 SunOS 4.1.4 with Linux/FreeBSD[Home]
yamamori