web-dev-qa-db-ja.com

OpenVPNクライアントのルーティングテーブルを理解する方法

OpenVPNをセットアップするだけで、期待どおりに機能します。しかし、クライアントのルーティングテーブルは、私を完全に混乱させます。これがルートテーブルです:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
54.202.18.143   10.0.2.2        255.255.255.255 UGH   0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

行ごとに分析してみましょう

  1. 10.8.0.5宛てのパケットにはゲートウェイがなく、tun0を使用します
  2. 10.8.0.1宛てのパケットは10.8.0.5経由のゲートウェイとしてtun0を使用します
  3. 54.202.18.143宛てのパケットは10.0.2.2経由のゲートウェイとしてeth0を使用します
  4. 10.0.2.0/24宛てのパケットにはゲートウェイがなく、eth0を使用します
  5. 169.254.0.0の部分は無視しましょう
  6. 他のすべてのパケット(0.0.0.0宛て)は、10.8.0.5経由でtun0をデフォルトゲートウェイとして使用します。 これがデフォルトゲートウェイですよね?
  7. 128.0.0.0/7宛てのパケットは、10.8.0.5を経由してデフォルトゲートウェイとしてtun0を使用します
  8. その他すべてのパケット(0.0.0.0)は、10.0.2.2を介してeth0をデフォルトゲートウェイとして使用します

質問:

  • ポイント6と8を考慮すると、2つのデフォルトゲートウェイがありますか? (ただし、デフォルトゲートウェイは1つしか存在しない可能性があるため、間違っていることはわかっていますが、正当化できません)(おそらく回答されています。以下を参照してください
  • ポイント1と2を考慮すると、10.8.0.1に向かうものは、実際にはtun0経由でゲートウェイを使用していません。これは正しいです?
  • ポイント3と4を考慮すると、54.202.18.143に向かうものはeth0経由のゲートウェイを実際には使用していません。これは正しいです?

更新...

this を読んだ後、さらに情報を見つけました。以下の行は、今では私にとって非常に理にかなっています。

0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0

したがって、1行目は0.0.0.0/128.0.0.0を定義し、2行目は128.0.0.0/128.0.0.0を定義しています。基本的に:

0.0.0.0/128.0.0.0 = 0.0.0.0/1 = 0.0.0.0 TO 127.255.255.255
128.0.0.0/128.0.0.0 = 128.0.0.0/1 = 128.0.0.0 TO 255.255.255.255

したがって、上記の2つのルートはIPv4アドレス範囲[0.0.0.0 TO 255.255.255.255]全体をカバーしています。元のデフォルトルートを置き換えずにデフォルトルートを追加するのはOpenVPNの賢い方法であり、このデフォルトルートはtun0経由でルーティングされます。

だから私は私の最初の質問に対する答えがあると思います:

ポイント6と8を考慮すると、2つのデフォルトゲートウェイがありますか?

いいえ、デフォルトゲートウェイは1つしかありません。

0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0
13
slayedbylucifer

ポイント6と8を考慮すると、2つのデフォルトゲートウェイがありますか? (ただし、デフォルトゲートウェイは1つしか存在しない可能性があるので、私は間違っていることはわかっていますが、正当化できません)(おそらく回答、以下を参照)

6行目は0.0.0.0-127.255.255.255の範囲を定義し、7行目は128.0.0.0-255.255.255.255の範囲を定義しています。

ポイント6と8を考慮すると、2つのデフォルトゲートウェイがありますか?

いいえ、デフォルトゲートウェイは1つしかありません。

0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

ポイント1と2を考慮すると、10.8.0.1に向かうものは、実際にはtun0経由のゲートウェイを使用していません。これは正しいです?

不正解です。10.8.0.1宛てのパケットは10.8.0.5にルーティングされます(これはtun lanで最初の行で設定されているようにアクセスできます)。
ネットマスクが255.255.255.255でなかった場合、あなたは正しかった

ポイント3と4を考慮すると、54.202.18.143に向かうものは、実際にはeth0経由でゲートウェイを使用していません。これは正しいです?

不正解です。54.202.18.143宛てのパケットは10.0.2.2にルーティングされます(これはeth lanの別のホストであり、4行目でアクセスできます)

4
Arash