关于BGP的19个基础面试问题解答,和3种场景问题解答。

以下是针对您列出的BGP面试问题的详细解答,按问题顺序组织:


1. BGP路由聚合(aggregate-address)如何避免路由黑洞?

  • 路由黑洞:当聚合路由覆盖的子路由未全部存在于本地路由表中时,可能导致流量被转发到无具体子路由的设备,从而被丢弃。

  • 解决方案

    • 使用 aggregate-address 命令时,添加 summary-only 参数抑制明细路由的传播。

    • 生成一条指向 Null0 的聚合路由(黑洞路由),确保设备丢弃无法匹配明细路由的流量。

    • 确保聚合路由的下一跳可达,且所有子路由存在于本地路由表中(通过 as-set 参数继承子路由的AS_PATH属性)。


2. 多宿主(Multi-homing)网络中如何优化BGP选路?

  • 方法

    1. 主备链路:通过 LOCAL_PREF 设置主链路的优先级(值越大越优先)。

    2. 负载均衡:配置 maximum-paths 支持多路径,结合 AS-PATH Prepending 在备链路上增加AS_PATH长度以降低优先级。

    3. 基于策略的选路:使用 Community 属性标记路由,通过ISP合作过滤或调整路由。

    4. MED属性:向邻居AS通告链路成本(需邻居AS支持MED比较)。


3. 在数据中心场景中,BGP与Underlay/Overlay网络(如VXLAN EVPN)的协同?

  • Underlay网络:通常使用IGP(如OSPF)或BGP提供IP可达性,负责物理/逻辑链路的基础通信。

  • Overlay网络:通过MP-BGP EVPN扩展(RFC 7432)承载VXLAN隧道信息,BGP传递MAC/IP路由和VTEP(VXLAN Tunnel Endpoint)信息。

  • 协同机制

    • EVPN Control Plane:BGP分发MAC地址和VTEP映射,替代传统ARP广播。

    • 多租户支持:通过RD(Route Distinguisher)和RT(Route Target)隔离不同租户的路由。


4. BGP如何通过AS_PATH属性检测环路?

  • 机制:BGP路由器在发送路由更新时,将自己的AS号添加到AS_PATH列表中。

  • 环路检测:当路由器收到一条路由的AS_PATH中包含自己的AS号时,认为存在环路,丢弃该路由。

  • 类型

    • AS_SEQUENCE:严格按顺序记录经过的AS。

    • AS_SET:无序记录AS集合(用于路由聚合)。


5. 为什么BGP被称为“路径矢量协议”?与传统IGP(OSPF、EIGRP)的核心区别是什么?

  • 路径矢量协议:BGP通过AS_PATH属性记录路由经过的AS路径(类似“矢量”),基于策略而非单纯度量值选路。

  • 核心区别

    特性BGPIGP(OSPF/EIGRP)
    设计目标跨域路由,策略控制域内快速收敛,高效转发
    路由信息携带AS路径、策略属性链路状态或距离矢量
    收敛速度慢(基于TCP,增量更新)快(泛洪或触发更新)
    应用场景互联网骨干网、多宿主网络企业内网、数据中心

6. BGP的典型应用场景

  1. 多宿主网络:企业通过多个ISP接入互联网,实现冗余和负载均衡。

  2. 互联网骨干网:ISP之间通过BGP交换全球路由表。

  3. 数据中心互联(DCI):跨地域数据中心通过BGP同步路由。

  4. MPLS VPN:通过MP-BGP传递VPNv4路由,支持多租户隔离。

  5. 云网络:公有云(如AWS、Azure)使用BGP与客户网络对接(如Direct Connect/ExpressRoute)。


7. BGP的端口号(TCP 179)及协议可靠性(基于TCP)如何影响其会话建立?

  • 端口号:BGP使用TCP端口179,确保可靠传输。

  • 可靠性影响

    • 优点:自动处理丢包重传、流量控制,无需实现可靠性机制。

    • 缺点:依赖TCP可能导致会话建立延迟(如三次握手)。

  • 会话建立流程:通过TCP连接后,交换Open报文协商参数(如AS号、Hold Time)。


8. BGP的报文类型及各自作用

报文类型作用
Open建立BGP邻居关系,协商参数(AS号、Hold Time等)。
Update携带路由信息(新增/撤销路由)。
Keepalive维持邻居关系,默认每60秒发送一次,Hold Time为180秒。
Notification报告错误(如参数不匹配)并终止会话。

9. 什么情况下BGP会话会卡在“Active”状态?如何排查?

  • 原因

    1. TCP连接失败(端口阻塞、ACL过滤、物理链路故障)。

    2. 本地主动尝试连接对方,但对方未监听TCP 179端口。

  • 排查步骤

    1. 检查双方IP连通性(ping/traceroute)。

    2. 验证ACL和防火墙是否放行TCP 179端口。

    3. 确认对端BGP进程已启动且配置正确(如AS号、邻居IP)。


10. iBGP邻居间为何需要全互联(Full Mesh)或使用路由反射器(Route Reflector)?

  • 全互联问题:iBGP默认不将学到的路由通告给其他iBGP邻居,导致路由黑洞。

  • 解决方案

    1. 全互联:所有iBGP路由器两两建立邻居,确保路由同步。

    2. 路由反射器(RR):指定一个或多个RR,允许其向其他iBGP邻居反射路由,减少全互联需求。


11. eBGP默认的TTL值(1)如何影响跨跳邻居配置?如何修改?

  • 默认TTL=1:eBGP邻居需直连(单跳),否则会话无法建立。

  • 跨跳场景(如通过路由器连接):

    • 修改方法:在邻居配置中设置 ebgp-multihop <ttl>(如Cisco:neighbor x.x.x.x ebgp-multihop 2)。

    • 风险:需确保中间设备允许BGP流量通过。


12. BGP如何实现MD5认证?是否支持更高级的安全机制(如BGPsec)?

  • MD5认证:在邻居配置中启用TCP MD5签名(如Cisco:neighbor x.x.x.x password <key>)。

  • 高级安全机制

    • BGPsec:基于PKI的扩展,验证AS_PATH真实性(尚未大规模部署)。

    • RPKI:通过ROA(Route Origin Authorization)验证前缀与AS号的绑定关系。


13. 公认必遵属性的作用

属性作用
AS_PATH记录路由经过的AS路径,用于防环和选路。
NEXT_HOP指定数据包转发的下一跳IP地址。
ORIGIN标识路由来源(IGP/EGP/Incomplete)。

14. 公认自决属性如何影响选路

属性影响
LOCAL_PREF值越高优先级越高(仅在iBGP邻居间传递)。
ATOMIC_AGGREGATE标记聚合路由可能导致信息丢失(需谨慎使用)。

15. 可选属性的应用场景

属性应用场景
MED向邻居AS建议入口优先级(需邻居AS比较MED)。
Community标记路由(如地域、客户类型),便于策略过滤和调度。
WeightCisco私有属性,本地优先级(值越大越优先)。

16. BGP的13个选路规则

  1. 最高 Weight(Cisco私有)。

  2. 最高 LOCAL_PREF

  3. 本地起源路由(如 network 或聚合)。

  4. 最短 AS_PATH

  5. 最低 ORIGIN 类型(IGP < EGP < Incomplete)。

  6. 最低 MED

  7. 优选 eBGP 路由(而非iBGP)。

  8. 到 NEXT_HOP 的IGP度量最小。

  9. 负载均衡(maximum-paths 开启时)。

  10. 最旧的路由(避免路由震荡)。

  11. 最低邻居路由器ID。

  12. 最低邻居IP地址。


17. 如何通过策略人为干预选路?

  • 工具

    • Route-map:修改属性(如 set local-preference 200)。

    • Filter-list:基于AS_PATH过滤路由。

    • Prefix-list:基于前缀过滤路由。

  • 示例

    bash

    复制

    route-map SET_LP permit 10
     set local-preference 200
    router bgp 100
     neighbor 1.1.1.1 route-map SET_LP in

18. 利用BGP Community属性实现流量调度

  • 步骤

    1. 标记路由:为特定路由添加Community值(如 100:200)。

    2. 策略匹配:ISP根据Community值执行动作(如优先转发、过滤)。

  • 示例

    bash

    复制

    route-map SET_COMMUNITY permit 10
     set community 100:200 additive
    router bgp 100
     neighbor 2.2.2.2 send-community
     neighbor 2.2.2.2 route-map SET_COMMUNITY out

19. MED属性在跨AS流量控制中的注意事项

  • 注意事项

    • MED仅在相邻AS间比较,非传递属性。

    • 默认不比较来自不同AS的MED(需配置 bgp always-compare-med)。

    • 需确保邻居AS接受并处理MED(可能被忽略)。


场景题答案

基础题
  1. Keepalive报文作用:维持BGP邻居关系,默认间隔60秒,Hold Time 180秒。

  2. iBGP vs eBGP下一跳处理

    • eBGP将下一跳改为自身接口IP。

    • iBGP保留原始下一跳(需确保IGP可达)。

场景题
  1. 路由未被优选

    • 检查路由是否有效(show bgp <prefix>)。

    • 验证属性(LOCAL_PREF、AS_PATH、MED)。

    • 确认下一跳可达(show ip route <next-hop>)。

  2. 多宿主主备切换

    • 主链路设置高 LOCAL_PREF,备链路使用 AS-PATH Prepending 或低 MED

    • 结合BGP Conditional Advertisement 触发备份链路激活。

高阶题
  1. BGP-LS与SDN:BGP-LS将网络拓扑抽象为链路状态信息(节点、链路、前缀),供SDN控制器(如ONOS)全局视图。

  2. EVPN中的BGP:通过MP-BGP EVPN传递MAC/IP路由(Type 2)、VTEP信息(Type 3),支持L2/L3互通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他不爱吃香菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值