mac的路由表中link#4是什么意思?

Jic*_*hao 13 routing macos

jichaodeiMac:~ jichaoyang$ netstat -r
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            openwrt.lan        UGSc           10        0     en0
127                localhost          UCS             1        0     lo0
localhost          localhost          UH              2       54     lo0
169.254            link#4             UCS             1        0     en0
192.168.1          link#4             UCS             2        0     en0
192.168.1.1/32     link#4             UCS             2        0     en0
openwrt.lan        46:94:fc:63:fc:7   UHLWIir        11     3610     en0   1200
192.168.1.125/32   link#4             UCS             2        0     en0
jichaodeimac.lan   d0:50:99:14:b7:a3  UHLWIi          1        1     lo0
yangjicdeiphone.la link#4             UHLWIi          1        0     en0
224.0.0            link#4             UmCS            1        0     en0
255.255.255.255/32 link#4             UCS             1        0     en0
Run Code Online (Sandbox Code Playgroud)

link#4表中的含义是什么?

Mar*_*iae 18

表达式link#x,其中x是某个数字,用于表示相应的地址是link-level address,仅在主机物理连接到的网络上运行的地址。

因此,这些地址用于访问本地网络之外的主机,或者,用技术术语来说,它们是不可路由的:一旦具有这些地址的数据包到达网关(两个或多个不同网络之间的连接点),网关就会丢弃它们。随之而来的是,这些地址不需要任何网关,因为它们甚至不应该逃避到不同的网络。

链路级地址属于所谓的链路层,它是 OSI 第 1 层(物理)和 OSI 第 2 层(数据链路层)概念的混合体。一些有用的协议在链路层级别运行,如ARP、OSPF、PPP、MAC(包括以太网)。

基本上,在链路层级别,您不需要路由,因为发往其他主机的数据包在线路上发送给任何人都可以收听;物理连接上的所有主机接收到数据包,没有寻址到的主机丢弃它,而只有真正的收件人保留它以读取它。

真正的路由通过发往远程主机的数据包封装到发往路由器的第 2 层数据包中来利用第 2层,路由器将其从第 2 层封装中解开,检查它是否发往不同的网络,将其移动到一个面向外的接口,并将其作为第 2 层数据包再次发送到外部本地网络上,目的地为下一跳路由器。等等。

  • 这是一个很好的答案,但我仍然想知道 x 的含义是什么。`link#4` 是否表示与 `link#5` 不同的_特定_链接(即网络接口)?如果是这样,那么有没有办法知道_哪个_接口`link#4`指定?例如,`ifconfig` 报告的接口是否有自然排序,因此 `link#4` 只是这个排序的第四个接口? (4认同)
  • @Marius,当我们在上面的示例中看到“169.254”时,这是否意味着“169.254.0.0”作为网络 ID?如果是,由于未指定,子网掩码是什么? (2认同)

小智 8

关于你的第二个问题,有没有办法知道link#4指定的是哪个接口?,可以将netstat命令与-i开关(接口状态)一起使用。[注意:我netstat不喜欢解析 IP 地址,因此除了感兴趣的开关之外,我通常还包括-n]。所以样本(部分)输出将是:

][ netstat -ni 
Name  Mtu   Network       Address            Ipkts Ierrs    Opkts Oerrs  Coll
lo0   16384 <Link#1>                       2030140     0  2030140     0     0
lo0   16384 127           127.0.0.1        2030140     -  2030140     -     -
lo0   16384 ::1/128       ::1              2030140     -  2030140     -     -
Run Code Online (Sandbox Code Playgroud)

在此示例Link#1中,与环回接口相关联,该接口lo0127具有地址127.0.0.1::1/128网络(AF_NET 系列--IP4)和具有地址的网络(AF_NET6 系列--IP6)上运行::1