
私は次のネットワーク シナリオを備えた Debian マシンを持っています:
- eth0- ローカルルーター経由のインターネット接続 (172.20.1.x)
- 0 ...- インターネットのないネットワークへのダイヤルアップ (10.xxx)
pppd を設定して、ルーティング テーブルにデフォルト ルートを追加しないようにしました。システムの起動後、ルーティング テーブルは次のようになります。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.20.1.1 0.0.0.0 UG 0 0 0 eth0
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
172.20.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
この構成では、google.com にpingしかし、10.0.0.1 や 10.0.0.2 などの IP を持つマシンにはアクセスできません。
これを修正しようとして(私の乏しい知識で)、/etc/network/interfaces
ファイルを次のように変更しました。
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto ppp0
iface ppp0 inet ppp
pre-up sleep 5
provider vfp
post-up /sbin/route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.64.64.64
pre-down /sbin/route del -net 10.0.0.0 netmask 255.0.0.0 gw 10.64.64.64
post-up /sbin/route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.64.64.64
しかし、どうやらルートを追加して動作させるコマンドが有効になっていないようで、ルーティング テーブルは何も変更されていません。
何が足りないのでしょうか? / どうすればこれを修正できますか? ありがとうございます ;)
PS:route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.64.64.64
システムの起動後に実行すると、システムから google.com と 10.0.0.1 の両方に ping を実行できます。
答え1
接続のルートを追加または削除するために、ppp
このファイルは使用しません。代わりに、それぞれとinterfaces
にスクリプトを追加します。コマンドを使用して、そこにスクリプトを配置するだけです。/etc/ppp/ip-up.d
/etc/ppp/ip-down.d
route