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 层数据包再次发送到外部本地网络上,目的地为下一跳路由器。等等。
小智 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中,与环回接口相关联,该接口lo0在127具有地址127.0.0.1的::1/128网络(AF_NET 系列--IP4)和具有地址的网络(AF_NET6 系列--IP6)上运行::1。
| 归档时间: |
|
| 查看次数: |
13487 次 |
| 最近记录: |