这道路由协议的基础面试题很多人答错原创网络老技工 博主文章分类网络设计和运维文章标签OSPF 路由表 路由协议 BGP文章分类架构 后端开发阅读数10****©著作权归作者所有来自51CTO博客作者网络老技工的原创作品请联系作者获取转载授权否则将追究法律责任本人在职业生涯中面试过不少网络工程师其中必问一道基础的网络协议相关的问题然而发现能答对甚至事实上点到“考点”的面试者并不多。这道题是这样的“在一个思科设备组成的网络中一台路由器从三个邻居分别接收到同一条路由前缀的eBGP、iBGP、OSPF路由请问哪条路由会被安装到路由表”如下是问题的拓扑图工作中的实际网络图常见下面这样求B1或B2的路由表很多人的回答是eBGP问其理由就是eBGP路由的AD管理距离或者称为路由优先级最小所以是最佳路由因此会被安装进入路由表。显而易见这样回答的人对于BGP协议缺乏基本的理解。这道题的考点有两个第一个是BGP协议的最佳路由best path的选举第二个是不同路由协议之间的最优路由选择。上述回答的应聘者只提到了第二个考点完全没有谈及第一个考点。所以回到问题本身正确的回答是首先BGP内部会进行eBGP和iBGP之间的最佳路由的选举这个过程相对比较复杂本文不展开在确保下一跳有效的前提下比较eBGP和iBGP路由的各种属性但是完全不考虑AD当最优路由选举结束然后再和OSPF路由比较ADAD小的路由被安装到路由表中。上述回答并没有明确说明答案是那条路由因为不同厂家的路由协议的AD是不一定相同的并且大多数厂家都支持路由协议AD值的修改。一旦给定各路由的AD值就可以明确答案但这并不是这道题的关键考察点。资深的网络工程师可能会问一个问题最终答案是否和路由的接收顺序相关不同的接收顺序是否导致不同的结果这是一个很好的问题。事实上在大多数情况下和路由的接收顺序无关。然而在某些特殊场景中确实和接收顺序有关。这里举两个例子。场景一缺省未使能bgp deterministic-med时未使能deterministic-med功能时BGP会按照路由接收的顺序依次进行比较最终选路的结果和路由的接收顺序是相关的。启用 bgp deterministic-med 命令后BGP的选路逻辑会变为分组首先将所有去往同一目标网络的路由根据其 AS_PATH 属性中最左侧最近邻的AS号进行分组。组内比较在同一个组内即来自同一个相邻AS的路由才会进行MED值的比较优选MED值最小的路由。组间比较每个组选出的优胜路由再与其他组的路由按照BGP的标准选路规则如Local Preference、AS_PATH长度等进行最终比较。这种方式确保了无论路由以何种顺序到达只要它们的AS_PATH最左侧AS号相同就会先被归为一组进行MED比较从而得到确定的、可重复的选路结果。这个例子仅仅说明在BGP内部最佳路径选举受路由接收先后影响的一种特殊情况并不影响不同路由协议之间的AD比较。场景二路由邻居建立先后对路由选择的影响先看初始状态路由器A2和B2将相同的路由发布到OSPF路由器A1和B1运行OSPF和BGP同时将OSPF路由单向重发布到BGP然而未建立eBGP邻居。默认AD值eBGP20, OSPF110然后A1和B1之间建立eBGP邻居:并观察A1和B1的路由表会发现都是OSPF路由安装到路由表而非eBGP路由。 但是如果先建立eBGP邻居后建立OSPF邻居你会发现结果又不同。然而这并未违反最优路由选择的规则。当然这种场景通常不太会在实际工作中遇到因为同一条路由不太会起源于两个不同的网络位置。相关文章