在Windows路由表中,经常会看到网关显示“在链路上”,但是有的网关显示的却是具体的ip地址,在链路上什么意思呢?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
IPv4 路由表
===========================================================================
活动路由:
           网络目标          网络掩码              网关                接口  跃点数
          0.0.0.0          0.0.0.0    25.255.255.254        10.10.10.20  10034
          0.0.0.0          0.0.0.0       192.168.1.1      192.168.1.108     35
         10.8.0.0    255.255.255.0            在链路上          10.8.0.2    281
         10.8.0.2  255.255.255.255            在链路上          10.8.0.2    281
       10.8.0.255  255.255.255.255            在链路上          10.8.0.2    281
       10.10.10.0    255.255.255.0            在链路上       10.10.10.20    291
      10.10.10.20  255.255.255.255            在链路上       10.10.10.20    291
     10.10.10.255  255.255.255.255            在链路上       10.10.10.20    291
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
      169.254.0.0      255.255.0.0            在链路上    169.254.34.172    281
   169.254.34.172  255.255.255.255            在链路上    169.254.34.172    281
  169.254.255.255  255.255.255.255            在链路上    169.254.34.172    281
      192.168.1.0    255.255.255.0            在链路上     192.168.1.108    291
    192.168.1.108  255.255.255.255            在链路上     192.168.1.108    291
    192.168.1.255  255.255.255.255            在链路上     192.168.1.108    291
      192.168.2.0    255.255.255.0          10.8.0.1           10.8.0.2    281
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    331
        224.0.0.0        240.0.0.0            在链路上    169.254.34.172    281
        224.0.0.0        240.0.0.0            在链路上          10.8.0.2    281
        224.0.0.0        240.0.0.0            在链路上     192.168.1.108    291
        224.0.0.0        240.0.0.0            在链路上       10.10.10.20    291
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
  255.255.255.255  255.255.255.255            在链路上    169.254.34.172    281
  255.255.255.255  255.255.255.255            在链路上          10.8.0.2    281
  255.255.255.255  255.255.255.255            在链路上     192.168.1.108    291
  255.255.255.255  255.255.255.255            在链路上       10.10.10.20    291
===========================================================================
永久路由:
  无

“在链路上”英文On-Link,字面意思就是在链路上。表示不需要通过路由器转发,可以直接与其通信的意思。显示在链路上,表示该条路由表的网关IP和接口的IP是一样的,由本机接口直接决定数据包的去向,无需其他路由中转。一般都是目标的ip与本机接口IP在同一个网段。同一个网段,自然不需要路由转发,可以直接与同网段的IP进行通信,那么网关自然是自己本身(自己接口的ip)。广播和组播255.255.255.255,224.0.0.0例外,虽然与接口ip不是同一个网段,但是也不需要其他路由器转发,同样由自己处理

  1. 反例,非”在链路上“

    有路由表: 192.168.2.0 255.255.255.0 10.8.0.1 10.8.0.2 281

    由于目标192.168.2.0/24与接口ip10.8.0.2不在同一个网段,无法直接通信,需要路由转发,所以需要指定网关,指定发往192.168.2.*的数据包的下一跳,由下一跳网关决定数据包的去向。这里我的网关是10.8.0.1

    同理:

    0.0.0.0 0.0.0.0 25.255.255.254 10.10.10.20 100340.0.0.0 0.0.0.0 192.168.1.1 192.168.1.108 35也都指定网关,由网关做路由转发,决定数据包的去向

  2. 正例,在链路上

    有路由表:10.8.0.0 255.255.255.0 在链路上 10.8.0.2 281

    目标10.8.0.8/24与接口10.8.0.2是同一个网段,同个局域网内。假如一个发往10.8.0.3的数据包,由本机接口10.8.0.2处理,由于是同一个网段,所以本机接口10.8.0.2是知道包的去向的,无需路由转发,可以直接发往目标10.8.0.3。所以这里指定网关“在链路上”,意思就是自己这个接口本身就是网关,接口ip即是网关ip,由本机接口直接决定数据包的去向。