私は このガイド を使用してVPNサーバー(pptp)に接続しました。これは、多くのチュートリアルで機能した唯一のガイドです。
VPNサーバーに接続した後、ルートテーブルは次のようになり、最後の2行だけになることもあります(非常にランダムです。理由があると確信しています)。
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 255.255.255.255 UGH 0 0 0 ppp0
192.168.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
私の設定:(IPは例で簡単にするために変更されました)
ただし、192.168.0.2からのすべてのトラフィックを192.168.0.1(vpnサーバー)経由でルーティングする必要があります。現在、ローカルインターネットを使用しています。
私は非常に多くのバリエーションを試しましたが、正しく理解できません。
route add default ppp0
以前は機能していましたが、ルートテーブルが破壊されると、機能しなくなります。
ルートテーブルはどのように表示されますか?
192.168.0.2
に到着するトラフィックの送信元アドレスは35.100.100.35
であると想定しているため、これには別のルーティングテーブルをお勧めします。発生している問題は、35.100.100.35
がルーティングテーブルにリストされていないため、デフォルトが使用されていることです。
あなたは次のような簡単なことで逃げることができるかもしれません:
ip route add 35.0.0.0/8 via 192.168.0.1 dev ppp0
そのため、マシンが35
アドレスに応答しようとすると、ppp0
インターフェイスで応答します。
より堅牢で手の込んだバージョンが続きます。
注:ルーティングテーブルに加えた一時的な変更をクリアするには、マシンを再起動する必要があります。
十分に単純なルーティングルールは、特定のIPまたはサブネットとの間で送受信されるトラフィックを使用して、別のルーティングテーブルを使用することです。
ip rule add from [interface ip]/[netmask] tab [table number] priority [priority]
ip rule add to [interface ip]/[netmask] tab [table number] priority [priority]
この場合、192.168.0.2
(ppp0
デバイスIP)に到着するトラフィックが心配です。ファイルに/etc/iproute2/rt_tables
を追加して、新しいルーティングテーブルを作成する必要があります。構文は[table number] [table name]
です。私は通常、インターフェイス名をテーブル名として使用します。物事を単純にしてください。
echo "168 ppp0" >> /etc/iproute2/rt_tables
ip rule add from 192.168.0.2/32 tab 168 priority 101
ip rule add to 192.168.0.2/32 tab 168 priority 101
これにより、192.168.0.2
にアドレス指定されたすべてのトラフィックがルーティングテーブル168
と一致し、そのテーブルのトラフィックに応答するすべてのトラフィックが一致するはずです。
これで、トラフィックをそのルーティングテーブル168
に転送しましたが、空になります。デフォルトルートを追加するだけで済みます。
ip route add default via 192.168.0.1 dev ppp0 table 168
これにより、デフォルトルートがテーブル168
に追加されます。つまり、インターフェイスppp0
を使用します。
最終的なルーティングテーブルは、おそらく次のようになります。
# ip route show
default dev eth0 proto static metric 1024
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20
192.168.0.0/24 dev ppp0 proto kernel scope link src 192.168.0.2
これは標準のルーティングテーブルであり、通常はトラフィックに使用されます。ここでのルートについては、おそらく最初に定義したデフォルトであり、次の2つはインターフェイスのIPアドレスに基づいて推測されます。
# ip rule show
0: from all lookup local
101: from 192.168.0.2 lookup ppp0
101: from all to 192.168.0.2 lookup ppp0
これはルーティングルールを一覧表示します。形式は「[priority]:[rule] lookup [table]」です。この例では、通常、ローカルルーティングテーブルを使用することを示しています。トラフィックが192.168.0.2との間で送受信される場合は、ppp0
という名前のルーティングテーブルを使用します。
# ip route show table ppp0
default via 192.168.0.1 dev ppp0
これは、ppp0
という名前のルーティングテーブルを示しています。これは、すべてのトラフィックをppp0
から送信するだけです。
この結果、トラフィックがppp0
インターフェイスのIPに出入りするときに、ppp0
と呼ばれるルーティングテーブルが使用されます。ルーティングテーブルppp0
は、すべてのトラフィックをデバイスppp0
に送信するだけです。
route add -net 192.168.0.0/24 gw 192.168.0.1 dev ppp0