eth0 および ppp0 のルーティングテーブルが破損しています。

eth0 および ppp0 のルーティングテーブルが破損しています。

使ったこのガイド私の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.1.20で実行されているローカルマシン(centos)
  • これは35.100.100.35(インターネット)の外部VPN(ubuntu)に接続し、内部VPNローカルIPは192.168.0.1です。
  • centos が接続されると、インターフェイス ppp0 が IP 192.168.0.2 として追加されます。

ただし、192.168.0.2から192.168.0.1(VPNサーバー)までのすべてのトラフィックをルーティングする必要があります。現在、ローカルインターネットを使用しています。

私は多くのバリエーションを試しましたが、正しく取得できませんでした。

route add default ppp0以前は機能していましたが、ルーティングテーブルが破損しているため、動作しなくなりました。

ルーティングテーブルはどのように見えるべきですか?

ベストアンサー1

あなたの質問

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

ルーティングルールは、「[優先順位]:[ルール]照会[テーブル]」の形式でここにリストされています。この例では、ローカルルーティングテーブルの一般的な使用方法を示します。トラフィックが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

おすすめ記事