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

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

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


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

default            E.F.G.H     UGSc            0        0     en1
default            E.F.G.H     UGScI          25        0     en1

(其中 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

在什么情况下会使用第二条路由?或者更一般地,什么时候会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 

顺便说一句:我从以下来源了解到以下信息man netstat

I       RTF_IFSCOPE      Route is associated with an interface scope

但我不明白:(

任何提示都非常感谢!

答案1

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

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

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

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

    ping fe80::1%eth0

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

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

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

相关内容