BGP基础
1. BGP 概述
AS之间可能是不同的机构、公司,相互之间无法完全信任,使用IGP可能存在暴露AS内部的网络信息的风险。
2. BGP的基本概念
BGP(边界网关协议)是用于大规模网络环境中的一种重要路由协议,它有一些关键特点。让我们逐条进行举例说明,以帮助理解这些特性。
1. BGP使用TCP作为传输层协议(端口号为179),使用触发式路由更新,而不是周期性路由更新
- 举例:BGP的邻居之间通过TCP端口179建立连接进行路由信息的传输。比如,两个BGP路由器R1和R2在建立BGP邻居关系后,使用TCP连接来发送路由更新。BGP不会像RIP等协议一样定期发送更新,而是当有路由变化时才发送更新。假设R1的网络发生变化,它会通过TCP连接即时将这些变化通知R2。
- 解决问题:TCP能够保证数据可靠传输,而触发式更新避免了不必要的路由更新,减轻了网络负担。
2. BGP能够承载大批量的路由信息,能够支撑大规模网络
- 举例:在互联网骨干网中,BGP承载着全网的全球路由表(IPv4和IPv6路由),目前全球BGP路由表的数量高达数十万条。例如,互联网服务提供商(ISP)的边界路由器可能会处理几十万条路由,而BGP通过路径向量协议的方式,能够处理和管理这些大规模的路由信息。
- 解决问题:BGP设计用于处理大规模路由表,并通过优化算法来支持大型网络环境中的路由计算和传播。
3. BGP提供了丰富的路由策略,能够灵活地进行路由选路,并能指导对等体按策略发布路由
- 举例:假设有两个ISP,ISP1和ISP2之间通过BGP进行路由交换。ISP1希望通过ISP2传输部分流量,但它不希望传递某些特定前缀,比如某些低优先级的网段。ISP1可以使用BGP的路由策略过滤特定的路由或调整路由的优先级(例如使用BGP属性,如
AS_PATH
或LOCAL_PREF
),从而实现灵活的路由选择和发布控制。 - 解决问题:BGP能够根据不同的业务需求,自定义路由的优先级和路径选择,以适应复杂的网络环境。
4. BGP能够支撑MPLS/VPN的应用,传递客户VPN路由
- 举例:在MPLS VPN中,BGP用于在服务提供商网络中传递客户的VPN路由。比如,一家公司有多个分支机构,通过MPLS VPN互联。BGP传递分支机构之间的VPN路由,使得这些分支能够通过服务提供商的网络互相通信。这里BGP承载的不是传统的互联网路由,而是带有标签的MPLS VPN路由。
- 解决问题:BGP为MPLS/VPN等应用提供了跨网络传递VPN路由的能力,确保不同客户的网络隔离和安全。
5. BGP提供了路由聚合和路由衰减功能用于防止路由振荡,通过这两项功能有效地提高了网络稳定性
- 路由聚合举例:假设BGP接收到多个前缀相近的路由(比如192.168.0.0/24, 192.168.1.0/24等)。BGP可以将这些前缀聚合成一个更大的路由(如192.168.0.0/16),减少路由表中的条目数量。这样做不仅能减少路由信息的传播量,还能降低路由器的处理负担。
- 路由衰减举例:路由衰减是指当某条路由频繁出现波动时,BGP会暂时降低它的优先级。例如,如果R1路由器的某条路由经常在R1和R2之间上下波动,BGP会通过衰减机制减少这条路由的传播,直到它的状态稳定下来。
- 解决问题:通过路由聚合和衰减,BGP能够减少不必要的路由更新,避免路由振荡,提升网络的整体稳定性。