这是一个符号问题。
通常,此类条目表示“链接”路由(也称为“连接”路由),即在该接口上无需任何网关即可直接访问的网络。换句话说,是本地子网。
但是,不同的操作系统,甚至不同的用户界面,都有记录这些路由的不同方法。
Solaris和OpenBSD“ netstat -rn”使用接口的本地地址(并且没有'G'标志,指示这是非网关路由)。而且它也不会显示网络掩码。
$ netstat -rn
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
default 192.168.1.1 UG 5 280064959 aggr1
192.168.1.0 192.168.1.7 U 3 11962636 aggr1
但是,在Linux上,相同的“ netstat -rn”使用0.0.0.0代替,因为实际接口存储在单独的字段中。
$ netstat -rn
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eno1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1
FreeBSD和NetBSD将显示网关是一个“链接”:
$ netstat -rn
Destination Gateway Flags Refs Use Mtu Interface
default 192.168.1.1 UGS - - - wm1
192.168.1/24 link#2 UC - - - wm1
192.168.1.8 link#2 UHl - - - lo0
当今的Linux使用一套完全不同的CLI工具。“ ip route show”使用灵活的输出格式,并且在显示此类路由时仅省略了“ via <gateway_addr>”部分。
$ ip -4 route show
default via 192.168.1.1 dev eno1
192.168.1.0/24 dev eno1
思科说“直接连接”:
Windows说“在链接上”:
C:\> route print
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.100 35
192.168.1.0 255.255.255.0 On-link 192.168.1.100 291
Mikrotik RouterOS将接口名称放置在网关字段中(加上显示“ connected”的“ C”标志):
> /ip route print detail
1 A S dst-address=0.0.0.0/0 gateway=192.168.1.1 distance=1
scope=30 target-scope=10
2 ADC dst-address=192.168.1.0/24 pref-src=192.168.1.9 gateway=ether1
distance=0 scope=10
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句