Ubuntu桌面环境下IP路由表条目解析及相关疑问咨询
嗨,我来帮你拆解这些IP路由条目,搞清楚每个字段的含义,还有你提到的几个疑问~
首先先解答你最关心的问题:10.42.0.0/24不是源地址段,10.42.0.1也不是目标地址。这条路由的意思是:当你的系统要访问目标地址属于10.42.0.0/24这个网段的设备时,会通过cni0网卡发送数据包,并且数据包的源地址会使用10.42.0.1(也就是你的系统在cni0网卡上的IP)。
接下来咱们逐个解析每个路由字段的含义,以及你贴出的所有路由条目:
路由字段通用解析
先把路由条目中常见的字段含义说明白:
dev <网卡名>:指定这条路由使用的网络接口(网卡)proto <协议>:表示这条路由是通过什么协议生成的,比如:proto dhcp:由DHCP服务器自动分配的路由proto static:手动配置的静态路由proto kernel:由内核自动生成的路由(通常是当网卡配置IP后,内核自动添加的同网段路由)
scope <范围>:限定这条路由的生效范围:scope link:表示这条路由仅对当前局域网(同一链路)内的地址生效,不需要经过网关scope global(默认没写的话就是全局):可以用于访问任意外部地址
src <IP>:指定使用这条路由时,数据包的源IP地址metric <数值>:路由优先级,数值越小优先级越高,系统会优先选择metric值小的路由onlink linkdown:表示对应的网卡当前处于断开状态(linkdown),这条路由暂时无法使用
逐个解析你的路由条目
default via 192.168.0.1 dev wlo1 proto dhcp metric 600
这是一条优先级更高的默认路由(因为metric=600更小),意思是:所有没有匹配到其他具体路由的数据包,都会通过wlo1(无线网卡)发送到网关192.168.0.1,这条路由是DHCP自动分配的。default via 192.168.1.1 dev br0 proto static metric 20100 onlink linkdown
这是另一条默认路由,但优先级很低(metric=20100),而且对应的br0网桥网卡当前处于断开状态(linkdown),所以系统不会优先使用它,甚至当前根本用不了,这条是手动配置的静态路由。10.42.0.0/24 dev cni0 proto kernel scope link src 10.42.0.1
前面已经解释过:当访问10.42.0.0/24网段的设备时,直接通过cni0网卡(通常是Kubernetes/容器相关的虚拟网卡)发送,源IP用10.42.0.1,这条路由是内核自动生成的。10.121.173.0/24 dev mpqemubr0 proto kernel scope link src 10.121.173.1 linkdown
类似上面的条目,针对10.121.173.0/24网段,但对应的mpqemubr0网卡(可能是QEMU虚拟机相关的网桥)当前处于断开状态,暂时无法使用。169.254.0.0/16 dev virbr1 scope link metric 1000
这是APIPA(自动私有IP地址)网段的路由,当系统无法获取DHCP地址时,会自动分配这个网段的IP,这条路由表示访问同网段的APIPA地址时,通过virbr1(虚拟机相关的虚拟网桥)发送,优先级较低(metric=1000)。
另外补充一下:ip route help确实比较简洁,如果你想更详细了解路由相关的命令,可以试试man ip-route,里面会有更全面的参数说明。
备注:内容来源于stack exchange,提问作者MikiBelavista

