インターフェイス範囲(グローバル対リンク)の目的は何ですか?

インターフェイス範囲(グローバル対リンク)の目的は何ですか?

ルーティングテーブルエントリには属性がありますscopeglobalから(またはその逆)変更がlinkネットワークシステムにどのような影響を与えるかを知りたいです。

ベストアンサー1

NIC設定に3つの異なるIP範囲があるとします。

14: ens160: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 36:ee:4c:d0:90:3a brd ff:ff:ff:ff:ff:ff
    inet 172.22.0.1/24 scope host ens160
    inet 172.21.0.1/24 scope link ens160
    inet 172.20.0.1/24 scope global ens160
   

ルーティングテーブルに ens160 パスがあるとします。

172.20.0.0/24 dev ens160  proto kernel  scope link  src 172.20.0.1

ご覧のとおり、NICとルーティングに範囲設定があります。

パスがsrcを指定した場合、この場合、LinuxはパスとNIC設定の範囲設定を完全に無視します。それは完全に無視されます。そして、LinuxはNICから発信するパケットにsrc ip = 172.20.0.1を使用します。

別のルートがあるとしましょう。

4.4.4.4  scope link

src ipがパスに指定されていない場合、Linuxはパスの範囲を確認します。私たちの場合、範囲=リンクです。その後、LinuxはNIC設定に移動し、同じ範囲のIPを検索します。この例では、IP range = link = 172.21.0.1/24です。

したがって、dst ip = 4.4.4.4の場合、Linuxはsrc ip = 172.21.0.1を使用します。

パスに範囲が指定されていない場合は、範囲 = グローバルを意味します。

はい

35.35.35.35 dev ens160

次へ。基本パスを見てみましょう。

default via 172.16.102.1 dev ens160 onlink

範囲を指定しません。これは範囲=グローバルを意味します。

デフォルトパスはsrcを指定しないため、これはLinuxがscope = globalでens160 IPを取得してそれをsrc IPとして使用することを意味します。

次へ。ルートに 1 つの範囲があり、NIC IP に異なる範囲があるとします。はい

ネットワークカード

14: vasya2: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 36:ee:4c:d0:90:3a brd ff:ff:ff:ff:ff:ff
    inet 172.22.0.1/24 scope host vasya2

パス

14.14.14.14  scope link

14.14.14.14 pingをすると何が起こるのか?

ルートには範囲=リンクがありますが、NICには範囲=ホストのIPのみがあります。重要なのは、範囲=ホストであるIPは、範囲=ホストであるパスのバックエンドとしてのみ機能できることです。それ以外の場合、LinuxはそのようなIPを使用できません。したがって、Linuxはsrc ip = 0.0.0.0をdst ip 14.14.14.14として使用します。

(実際には、ネットワークカードが物理的なものか仮想なのかによって異なります。ネットワークカードが仮想の場合、この場合、Linuxは
範囲=グローバルである他のネットワークカードの異なるIPを使用します)

一般規則:パスがsrcを指定しない場合

  1. 範囲=ホストインIPは、範囲=ホストインパスのバックエンドとしてのみ機能できます。
  2. 範囲=リンクインIPは、範囲=ホストまたは範囲=リンクインパスのバックエンドとしてのみ使用できます。
  3. 範囲=グローバルなIPは、すべての範囲のルートのバックエンドとしてのみ機能できます。

こんな不快な建築物にたくさん驚きました。

これらのすべての「範囲項目」を忘れるには、ルーティングテーブルのパスにあるsrcフィールドを使用してください。

おすすめ記事