哪些流量使用接口绑定路由(RTF_IFSCOPE 标志)?

sch*_*and 8 routing osx-lion network-interface

对于我在 unix.stackexchange.com 上找到的一个问题,我有一个后续问题(请参阅下面的链接)。


以下两个路由表条目有什么区别:

default            E.F.G.H     UGSc            0        0     en1
default            E.F.G.H     UGScI          25        0     en1
Run Code Online (Sandbox Code Playgroud)

(其中 EFGH 是某个网关 IP 地址。)具体来说 RTF_IFSCOPE 标志对路由表条目有什么影响?

来源:路由表:RTF_IFSCOPE 标志的作用是什么?


接受的答案是第二条路由“绑定到特定接口”,这可用于“创建指向同一目的地的多条路由,仅通过哪个接口在运行来区分”

好的,但这意味着什么?假设我有以下内容(正如我所做的那样,只更改了 IP):

default            192.168.1.1        UGSc           14        0     en2
default            192.168.0.1        UGScI           1        0     en0
Run Code Online (Sandbox Code Playgroud)

在什么情况下会使用第二条路线?或者更一般地说,什么时候会使用 " I" 路线?“真正的”默认路由似乎是没有“ I”的路由。因为:

$ route get 8.8.8.8
    route to: google-public-dns-a.google.com
destination: default
       mask: default
    gateway: 192.168.1.1
  interface: en2
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 
Run Code Online (Sandbox Code Playgroud)

顺便说一句:我知道以下内容man netstat

I       RTF_IFSCOPE      Route is associated with an interface scope
Run Code Online (Sandbox Code Playgroud)

但我不明白:(

任何提示都非常感谢!

har*_*ymc 3

使用route命令的-ifscope选项将路由绑定到特定接口,该接口在带有I标志的netstat输出中显示。

何时使用第二条路由将取决于其 IP 地址和指标,或者是否直接请求。如果 IP 地址重复,则选择最佳路由,该路由可能不是通过绑定接口进行的。存在强制使用给定接口的语法,但我不确切知道哪些操作系统或实用程序支持此语法。这通常更适用于 iPv6。

有关如何指定范围信息的示例:

  • 当范围信息是接口名称时:

    ping fe80::1%eth0

  • 当范围信息是接口索引时:

    ping fe80::9:47:100:112%65541

十进制值 65541 由操作系统根据其算法进行解释(这不是一个好主意)。