假设在路由表中有下列项:
目的 掩码
1.2.3.4 255.255.255.255
1.2.3.0 255.255.255.0
1.2.0.0 255.255.0.0
这四个路由都含有地址1.2.3.4,但转发包时会选择第一条路由。原则是选择具有最长(最精确)的子网掩码。
换句话说,就是如果有多个匹配,则其掩码大者
比如目的地址是192.168.1.17
路由表里有这样两条路由
192.168.1.0 255.255.255.0 e0
192.168.1.16 255.255.255.240 e1
那么就选择第二条
假设
路由器
现在要去往目的地:172.16.1.0/30这个网段.
那么这台路由器通过了两个
动态路由
学习到了,两个
路由协议
分别是ospf
eigrpG92R'
通过ospf学习到的是
172.16.1.0/24d
通过eigrp学习到的是172.16.0.0/16B
假设现在不存在这个最长匹配,那么肯定是按照
管理距离
最小的走,也就是eigrp(
这个地方
我说的是
假设
).ospf
管理距离是110
eigrp
管理距离是90q]RANh
那么存在最长匹配的时候,就选择通过某个协议学到的,最接近172.16.1.0/30这个网段.就选择那个协议.
由上面的ospf
和
eigrp
可以看出,ospf学到的是172.16.1.0/24比eigrp的172.16.0.0/16更加匹配172.16.1.0/30.那么这个路由器就选择
ospf协议
来发送数据.这个就是最长匹配.
路由器
选路
规则:
先是最长匹配,然后是管理距离,最后是度量值
如果路由表里有多个匹配条目,那么就选择匹配前缀最长的条目。
因为路由归纳的问题有些地址会被归纳为为共享前缀的网络。
第一条是一个主机
第二三条是一个子网。
我拜托上面给的回答里:地一条字网号是 192.168.1.0
第二条子网号是 192.168.1.16 他们不是一个子网。谈不上最大匹配