「0.0.0.0/1」と「デフォルト」の違いは何ですか?

「0.0.0.0/1」と「デフォルト」の違いは何ですか?

スタッフの皆様、下記のルーティングテーブルをご覧ください。 dev ens160 は、172.17.4.x からの着信 ping 要求を受け入れ、dev tun0 を介して応答します。

  • 「0.0.0.0/1」と「デフォルト」の違いは何ですか?
  • 172.17.4.xからens160までのトラフィックに応答するにはどのような変更が必要ですか?

ホスト:172.31.4.225
Lan:172.31.4.0/24
GW:172.31.4.1
tun0:インターネットにアクセスするためのトンネル(openvpn)
ens160:仮想マシンネットワークインターフェイス
リモートクライアント:172.17.4.x

# ip route
0.0.0.0/1 via 10.z.0.1 dev tun0
default via 172.31.4.1 dev ens160 proto dhcp src 172.31.4.225 metric 100
10.z.0.0/16 dev tun0 proto kernel scope link src 10.z.0.6
128.0.0.0/1 via 10.23.0.1 dev tun0
172.16.0.0/16 via 172.31.4.1 dev ens160
172.31.4.0/24 dev ens160 proto kernel scope link src 172.31.4.225
172.31.4.1 dev ens160 proto dhcp scope link src 172.31.4.225 metric 100
u.w.x.y via 172.31.4.1 dev ens160
192.168.19.0/24 dev br-<snip> proto kernel scope link src 192.168.19.1
192.168.68.0/24 dev docker0 proto kernel scope link src 192.168.68.1 linkdown

答え1

0.0.0.0/1 via 10.z.0.1 dev tun0
128.0.0.0/1 via 10.z.0.1 dev tun0

これらの 2 つの規則は、合計0.0.0.0/0(0.0.0.0 から 127.255.255.255 までの最初の IP アドレス、128.0.0.0 から 255.255.255.255 までの 2 番目の IP アドレス) をカバーし、次に優先します.

default via 172.31.4.1 dev ens160 proto dhcp src 172.31.4.225 metric 100

ルールは範囲が狭いためにdefault存在します。0.0.0.0/0

openvpnこれらは、少なくともあなたがそれらを使用するときに追加されます--redirect-gateway def1

マニュアルページから:

定義1 0.0.0.0/0 の代わりに 0.0.0.0/1 と 128.0.0.0/1 を使用してデフォルトゲートウェイをオーバーライドするには、このフラグを使用します。これは元のデフォルトゲートウェイを上書きしますが消去しないという利点があります。

答え2

注目すべき重要な点は、/1最初少量IPアドレスはでなければなりません0。最初の数字がに設定されているIPアドレスは1一致しません。一致する他のルールがない場合、デフォルトのルールはすべてのIPアドレスと一致します。実際、これは0.0.0.0/1IPアドレスがローカルループバックであり、ルーティングされていないため、実際には...にのみ一致する0.0.0.0ことを意味します。デフォルトルールが適用されるため、すべてのIPアドレスと一致します。127.x.x.x0.0.0.0126.x.x.x127.x.x.x0.0.0.0/0

ルーティングテーブルにもルールがあることに注意してください128.0.0.0/1。すべてのIPv4アドレスは次のいずれかに一致するため、デフォルトの0.0.0.0/1ルール128.0.0.0/1は使用されません。

172.17.4.xからens160までのトラフィックに応答するにはどのような変更が必要ですか?

172.17.4.0/24ルーティングする別のルールを追加します。これens160172.31.4.1しなければならないこのルーティングテーブルは既に172.31.4.1許容可能なデフォルトゲートウェイを考慮しているため、許容可能です。この結果を得る理由は、最初の3バイト(3×8ビット)が/24()の最初の3バイトと一致する必要があり、4番目のバイトは気にしないからです。172.31.4.0172 31 4x

関連情報